检查tic-tac-toe

时间:2017-10-22 01:31:55

标签: python list raspberry-pi

我试图使用感应帽在树莓派上创建一个python tictactoe游戏。我有一个创建董事会的清单。我需要查找列表是否包含3行rd(b转为rd或(100,100,100))。有谁知道如何搜索列表以查看列是否包含所有红色(rd)或蓝色(bl)?

   board = [
        b, b, a, b, b, a, b, b,
        b, b, a, b, b, a, b, b,
        a, a, a, a, a, a, a, a,
        b, b, a, b, b, a, b, b,
        b, b, a, b, b, a, b, b,
        a, a, a, a, a, a, a, a,
        b, b, a, b, b, a, b, b,
        b, b, a, b, b, a, b, b,
   ]

我用它来填充Sense HAT上的LED,每次玩家按下操纵杆时,它就会填充网格上的一个图。

1 个答案:

答案 0 :(得分:1)

这个答案基于一些假设:

  1. 你董事会中的a代表了一个井字游戏中的线条
  2. b表示tic-tac-toe游戏中的游戏空间
  3. 整个2 x 2格的b将在剧中改为rd或bl
  4. 检查行的方法:

    def check_row(rowNumber):
        rowStart = rowNumber * 24
        if board[rowStart] == rd and board[rowStart+3] == rd and board[rowStart+6] == rd:
            return rd
        if board[rowStart] == bl and board[rowStart+3] == bl and board[rowStart+6] == bl:
            return bl
        return None
    

    我还没有真正测试过这段代码,但它应该会给你一个想法。当使用行号(0,1或2)调用时,如果行全部为rd则应返回rd,如果行全部为bl则返回bl,否则返回None。可以定义类似的方法来检查列和检查对角线。