Python小游戏——孔明棋

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 例如(别忘了中间回车):

键入 v 8


则出现:

键入 v 8 后的棋盘


规则简单,玩法多样,很适合一个人闲的无聊的时候

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值