Python小游戏——孔明棋
规则简介
孔明棋又叫法国独立钻石,是一种单人棋,下法规则简单,棋子只能跳过相邻的棋子到空位上,并且把被跳过的棋子吃掉。棋子可以沿格线横、纵方向跳,但是不能斜跳,当棋盘内所有棋子均无法跳动时,游戏结束,最后剩下的棋子数越少越好。更详规则点击标题百度。
小游戏代码(仅供娱乐)
#coding:UTF-8
kmq=[["*","*","*","*","*","*","*","*","*"],
["*","*","*","a","b","c","*","*","*"],
["*","*","*","d","e","f","*","*","*"],
["*","g","h","$","3","4","i","j","*"],
["*","k","l","5","0","6","m","n","*"],
["*","p","r","7","8","9","s","t","*"],
["*","*","*","u","v","w","*","*","*"],
["*","*","*","x","y","z","*","*","*"],
["*","*","*","*","*","*","*","*","*"]]
#这里棋盘上棋子的代号我用的是字母加数字加$,1和l只取l,2和z取z,0和o取0,q和9取9,以防混淆
def abs(g):
if g<0:
return -g
if g>0:
return g
def pd(e):
if e=="0" or e=="*":
return 0
return 1
def End():
print("最后剩余 "+str(sum)+" 个子")
print("级别称号",end=":")
if sum==1:
print("大师")
if sum==2:
print("人才")
if sum==3:
print("聪明")
if sum==4:
print("很好")
if sum==5:
print("颇好")
if sum>=6:
print("一般")
def find():#若棋盘中没有棋子两两挨着,则游戏一定停止,此外仍有其他结束情况,正常玩的话很少遇到,若遇到强制结束即可
w=0
for i in range(9):
for j in range(9):
if pd(kmq[i][j])==1:
if pd(kmq[i-1][j])==1 or pd(kmq[i+1][j])==1 or pd(kmq[i][j-1])==1 or pd(kmq[i][j+1])==1:
w=1
return w
def Print():
print("----------------------------")
for i in range(9):
for j in range(9):
print(kmq[i][j] , end=" ")
print()
print("----------------------------")
print("-----------玩家须知-----------")
print("孔明棋规则:")
print("\t棋子只能跳过相邻的棋子到 \n 空位上,并且把被跳过的棋子吃 \n 掉。棋子可以沿格线横、纵方向 \n 跳,但是不能斜跳,当棋盘内所 \n 有棋子均无法跳动时,游戏结束\n")
print("每次输入a \\n b(相邻棋子,符合要求),\n则a跳过b到b边上的空位,b变为0")
sum=0
Print()
while True:
a=input()
if a=="stop":
End()
print("强制结束")
break
b=input()
for i in range(8):
for j in range(8):
if a==kmq[i][j]:
xa=i
ya=j
if b==kmq[i][j]:
xb=i
yb=j
if abs(xa-xb)==1 and ya==yb:
c=kmq[xb-(xa-xb)][ya]
if c=="0":
kmq[xb-(xa-xb)][ya]=a
kmq[xa][ya]=kmq[xb][yb]="0"
else:
print("请遵守规则")
Print()
elif abs(ya-yb)==1 and xa==xb:
c=kmq[xa][yb-(ya-yb)]
if c=="0":
kmq[xa][yb-(ya-yb)]=a
kmq[xa][ya]=kmq[xb][yb]="0"
else:
print("请遵守规则")
Print()
else:
print("请遵守规则")
Print()
sum=0
for i in range(9):
for j in range(9):
if pd(kmq[i][j])==1:
sum+=1
ia=i
ja=j
f=find()
if f==0:
End()
break
还是挺好玩的,自己一个人的时候可以玩玩
具体玩法
键入 a 回车 b 例如(别忘了中间回车):
则出现:
规则简单,玩法多样,很适合一个人闲的无聊的时候