A13 发表于 2020-2-2 00:02:47

井字棋

写了个井字棋不过需要双人游戏哈哈
def printTable():
    print(' | |')
    print(''+board+'|'+board+'|'+board)
    print(' | |')
    print('-----')
    print(' | |')
    print(''+board+'|'+board+'|'+board)
    print(' | |')
    print('-----')
    print(' | |')
    print(''+board+'|'+board+'|'+board)
    print(' | |')
def isWinner(board):
    #print(board)
    if board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O'or\
       board == 'O' and board == 'O' and board == 'O':
      return 'O'
    if board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X'or\
       board == 'X' and board == 'X' and board == 'X':
      return 'X'
def boardisFree(board,step):
    return board == ' '
board = [' ',]*10
printTable()
plear = 'X'
while True:
    if plear == 'X':
      step = input('X走,请输入(1~9):')
      if boardisFree(board,step):
            board = 'X'
            plear = 'O'
            #print(board)
            printTable()
            if(isWinner(board) == 'X'):
                print('X玩家赢了')
                answer = input('是否再来一局(N/Y):')
                if answer.upper() == 'Y':
                  board = [' ',]*10
                  continue
                if answer.upper() == 'N':
                  break
      else:
            print('该格子已有棋')
            printTable()
            continue
    if plear == 'O':
      step = input('O走,请输入(1~9):')
      if boardisFree(board,step):
            board = 'O'
            plear = 'X'
            #print(board)
            printTable()
            if(isWinner(board) == 'O'):
                print('O玩家赢了')
                answer = input('是否再来一局(N/Y):')
                if answer.upper() == 'Y':
                  board = [' ',]*10
                  continue
                if answer.upper() == 'N':
                  break
      else:
            print('该格子已有棋')
            printTable()
            continue

小琳1011 发表于 2020-4-13 16:02:05

挺好的,为啥木有人

maki_ 发表于 2022-11-11 02:22:13

本帖最后由 maki_ 于 2022-11-11 02:25 编辑

def printTable():
    print('0———————————0')
    print('| '+board+' | '+board+' | '+board+' |')
    print('|———————————|')
    print('| '+board+' | '+board+' | '+board+' |')
    print('|———————————|')
    print('| '+board+' | '+board+' | '+board+' |')
    print('0———————————0')

优化了下棋盘,现在看起来会更舒服些{:10_264:}

asky533 发表于 2022-11-24 20:24:30

建议添加当两方都没能赢(也就是和棋)时加入“平局!”
页: [1]
查看完整版本: 井字棋