|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import random
def drawBoard(board):
print('│'+board[7]+' │'+board[8]+' │'+board[9]+' │')
print('│'+board[4]+' │'+board[5]+' │'+board[6]+' │')
print('│'+board[1]+' │'+board[2]+' │'+board[3]+' │')
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[move] = letter
def isWinner(bo, le):
return ((bo[7] == le and bo[8] == le and bo[9] == le) or
(bo[4] == le and bo[5] == le and bo[6] == le) or
(bo[1] == le and bo[2] == le and bo[3] == le) or
(bo[7] == le and bo[4] == le and bo[1] == le) or
(bo[8] == le and bo[5] == le and bo[2] == le) or
(bo[9] == le and bo[6] == le and bo[3] == le) or
(bo[7] == le and bo[5] == le and bo[3] == le) or
(bo[9] == le and bo[5] == le and bo[1] == le))
除了这种判定胜利,还有其他的吗?
- def isWinner(bo, le):
- bo2 = list(zip(*[iter(bo)]*3))
- for i in range(3):
- for j in range(3):
- if not 0<i+j<3: continue
- try:
- if bo2[i][j-1] == bo2[i][j] == bo2[i][j+1] == le: return True
- except IndexError:
- pass
- try:
- if bo2[i-1][j] == bo2[i][j] == bo2[i+1][j] == le: return True
- except IndexError:
- pass
- try:
- if bo2[i-1][j-1] == bo2[i][j] == bo2[i+1][j+1] == le: return True
- except IndexError:
- pass
- return False
复制代码
|
|