检查井字棋

问题描述:

我正在尝试使用感应帽子在树莓派上创建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, 
    ] 

我用这个来填补感HAT LED的,每个玩家按下操纵杆上的时间它填充在网格中的情节。

+1

这似乎不是井字棋。你的意思是连接四? –

+2

您是否还在使用一维列表或2D列表?你的代码是一维列表,但是你的布局方式让我觉得你可能会使用嵌套列表(2D),并且只是犯了一个错字。 –

+0

1d列表我相信。我并不确定,因为我是python的新手 – Gus

这个答案是基于一些假设:

  1. 的一个在你的董事会代表在井字棋游戏的线
  2. 的B的代表在井字棋的游戏空间游戏
  3. b的的整个2×2格将被更改为RD或BL一出戏

的方法来检查行:

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,否则应该返回无。可以定义类似的方法来检查列和检查对角线。