Sss123057057 发表于 2021-2-11 13:29:34

井字棋胜负

import random
def drawBoard(board):
    print('│'+board+' │'+board+' │'+board+' │')
    print('│'+board+' │'+board+' │'+board+' │')
    print('│'+board+' │'+board+' │'+board+' │')
def inputPlayerLetter():
    letter = ''
    while not (letter == 'X' or letter == 'O'):
      print('Do you want to be X or O?')
      letter = input().upper()
    if letter == 'X':
      return ['X', 'O']
    else:
      return ['O', 'X']
def whoGoesFirst():
    if random.randint(0, 1) == 0:
      return 'computer'
    else:
      return 'player'
def playAgain():
    print('Do you want to play again? (yes or no)')
    return input().lower().startswith('y')
def makeMove(board, letter, move):
    board = letter
def isWinner(bo, le):
    return ((bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le) or
            (bo == le and bo == le and bo == le))
除了这种判定胜利,还有其他的吗?

kogawananari 发表于 2021-2-11 14:28:34

def isWinner(bo, le):
    bo2 = list(zip(**3))
    for i in range(3):
      for j in range(3):
            if not 0<i+j<3: continue
            try:
                if bo2 == bo2 == bo2 == le: return True
            except IndexError:
                pass
            try:
                if bo2 == bo2 == bo2 == le: return True
            except IndexError:
                pass
            try:
                if bo2 == bo2 == bo2 == le: return True
            except IndexError:
                pass
    return False{:10_293:}

kogawananari 发表于 2021-2-11 14:37:10

还差一个判断 对角线还有有一种忘了{:10_292:} 越来越复杂
if bo2 == bo2 == bo2 == le
页: [1]
查看完整版本: 井字棋胜负