好吧,您可以将获胜条件的枚举转换成一个元组,成对的元组…在3x3的棋盘世界中不需要太多工作。
如下图所示(拿到示例板)并导致平局,应该让您开始进一步学习Python:
#! /usr/bin/env python"""Check in snaive 3x3 game board world for diagonal,column, or row all ocupied by one player."""from __future__ import print_functionplayers = (1, 2) # Code for the playersboard = [[1, 2, 1], # Board interpreted as 3 lists rows [1, 2, 1], [2, 1, 2]]winning_configs = ( # outer-inner-index pairs that win: ((0, 0), (1, 1), (2, 2)), # TL to BR diagonal ((0, 2), (1, 1), (2, 0)), # TR to BL diagonal ((0, 0), (1, 0), (2, 0)), # L column ((0, 1), (1, 1), (2, 1)), # M column ((0, 2), (1, 2), (2, 2)), # R column ((0, 0), (0, 1), (0, 2)), # L row ((1, 0), (1, 1), (1, 2)), # M row ((2, 0), (2, 1), (2, 2)), # R row)def and_the_winner_is(players, board, winning_configs): """First one matching rules is returned as winner, otherwise None to indicate a tie.""" for player in players: for cfg in winning_configs: if all([board[i][j] == player for i, j in cfg]): return player else: return Nonedef main(): """Determine the result from board.""" winner = and_the_winner_is(players, board, winning_configs) if winner in players: print('Winner is Player({})'.format(winner)) else: print('A tie')if __name__ == '__main__': main()


