找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2896|回复: 1

[讨论] 小时候下的米子棋,不知道大家还有印象没。

5

主题

6

帖子

6

积分

贫民

积分
6
jiy123 发表于 2018-3-5 00:20:11 | 显示全部楼层 |阅读模式
就是一定有一颗棋在中心(也就是4号位置)
位置和数字对应为:
0 1 2
3 4 5
6 7 8

theBoard={'top-L':'×','top-M':'×','top-R':'×',
          'mid-L':' ','mid-M':' ','mid-R':' ',
          'low-L':'o','low-M':'o','low-R':'o'}
def printtheborad(board):
    print(board['top-L']+'|'+board['top-M']+'|'+board['top-R'])
    print('-+-+-')
    print(board['mid-L']+'|'+board['mid-M']+'|'+board['mid-R'])
    print('-+-+-')
    print(board['low-L']+'|'+board['low-M']+'|'+board['low-R'])
weizhi=['top-L', 'top-M', 'top-R', 'mid-L', 'mid-M', 'mid-R', 'low-L', 'low-M', 'low-R']
daihao=[0,1,2,3,4,5,6,7,8]
a=['0','1','2','3','4','5','6','7','8']
c=[]
for i in a:
    for j in a:
        c=c+[i+j]
while True:
    print('请问是红方先下,还是蓝方先下?红方输入1,蓝方输入2。')
    xianshou=input()
    if xianshou=='1' or xianshou=='2':
        xianshou=int(xianshou)
        break
    else:
        print('请按照要求输入阵营!')
def bianhuancixu(xianshou):
    if xianshou==1:
        return 1
    else:
        return 2
print('对战开始!!!')
i=1
n=''
while True:
    if bianhuancixu(xianshou)==1:
        print('红方请输入你移动的棋子的位置和移动到的位置(格式如03)')
        yidong=input()
        if yidong not in c:
            printtheborad(theBoard)
            continue
        if theBoard[weizhi[int(yidong[0])]]!='×' or theBoard[weizhi[int(yidong[1])]]!=' ':
            printtheborad(theBoard)
            continue
        if int(yidong[1])!=int(yidong[0])+3 and int(yidong[1])!=int(yidong[0])+1 and int(yidong[1])!=int(yidong[0])-3 and int(yidong[1])!=int(yidong[0])-1:
            printtheborad(theBoard)
            continue
        theBoard[weizhi[int(yidong[0])]]=' '
        theBoard[weizhi[int(yidong[1])]]='×'
    else:
        print('蓝方请输入你移动的棋子的位置和移动到的位置(格式如73)')
        yidong=input()
        if yidong not in c:
            printtheborad(theBoard)
            continue
        if theBoard[weizhi[int(yidong[0])]]!='o' or theBoard[weizhi[int(yidong[1])]]!=' ':
            printtheborad(theBoard)
            continue
        if int(yidong[1])!=int(yidong[0])+3 and int(yidong[1])!=int(yidong[0])+1 and int(yidong[1])!=int(yidong[0])-3 and int(yidong[1])!=int(yidong[0])-1:
            printtheborad(theBoard)
            continue
        theBoard[weizhi[int(yidong[0])]]=' '
        theBoard[weizhi[int(yidong[1])]]='o'
    j=[]
    a=list(theBoard.values())
    if bianhuancixu(xianshou)==1:
        while len(j)<=2:
            j=j+[a.index('×')]
            a[a.index('×')]=' '
        if j[1]==4:
            for x in range(1,5):
                if j[1]-j[0]==x and j[2]-j[1]==x:
                    n='h'
                    print('恭喜红方胜利!!!oh year!')
                    break
    else:
        while len(j)<=2:
            j=j+[a.index('o')]
            a[a.index('o')]=' '
        if j[1]==4:
            for x in range(1,5):
                if j[1]-j[0]==x and j[2]-j[1]==x:
                    n='l'
                    print('恭喜蓝方胜利!!!oh year!')
                    break
    if n=='h' or n=='l':
        break
    printtheborad(theBoard)
    i=i+1
    xianshou=xianshou+(-1)**(i)
printtheborad(theBoard)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表