【发布时间】:2017-04-01 14:40:27
【问题描述】:
我一直在尝试为我的编程课编写连接四的变体。该板的大小为 6x8。在我尝试编程的变体中,获胜条件基本上是构建一个 L。
这意味着表单的任何构造
X
X
X X
是一个获胜条件。
我一直在尝试创建一个函数来连续检查每一列是否有相同的符号以构建一对。以及对每一行执行相同操作的函数。使用这两个函数,我会检查 2 对是否连续,因为无论你如何组合垂直和水平对,它总是会构建一个“L”。
为了使我正在使用的白板清晰
def ClearBoardSingle():
global Board
Board = [['0' for i in range(8)] for i in range(6)]
BoardPrint()
PlayerMoveSingle()
对于我正在使用的界面
def BoardPrint():
global Board
global GameMoves
global PlayerTurn
global Player1Symbol
global Player2Symbol
print('\n\nMoves done: ' + str(GameMoves))
print('To Restart: R | To Quit: Q')
print('Valid choices: 1, 2, 3, 4, 5, 6, 7, 8')
if PlayerTurn == 0:
print('It\'s ' +str(Player1Symbol) + '\'s Turn')
if PlayerTurn == 1:
print('It\'s ' +str(Player2Symbol) + '\'s Turn')
print(Board[0])
print(Board[1])
print(Board[2])
print(Board[3])
print(Board[4])
print(Board[5])
我已经想出了如何在 Board 中更改变量,而且我已经完成了很多。我唯一不知道如何实现的是获胜条件。我为行尝试了这个功能:
def VerticalList(Column):
global Board
global Choice
global Row0
Column = int(Column)
Choice = int(Choice)
print(Column,' C')
while Column > 0:
for Board[Column][Choice] in range(Column):
Row0.append(Board[Column][Choice])
if Column ==6 or Column == -1:
break
else:
VerticalList(Column-1)
if Column ==0:
break
else:
continue
if Column == 0:
Column += 1
while Column < 5:
Column +=1
if Row0[Column] == Row0[Column-1]:
print('Pair')
else:
print('No Pair')
pass
else:
pass
但它进入了一个无限循环。
我对如何实现获胜条件一无所知。我将不胜感激任何帮助或想法。如果您希望我发布整个代码或其他类型的 sn-ps,请索取。
谢谢你的期待!
【问题讨论】:
-
哇,听起来就像我也遇到的 CS101 问题,当时内存以 MB 为单位衡量
-
您的代码格式是否正确?可能只是将其粘贴到 SO 中的剪切粘贴错误?代码缩进会影响变量范围。
-
我在另一个文件中编写了获胜条件,所以我不会不小心弄乱我的游戏代码。我尝试了我的“游戏”,它运行正常,但由于我还没有实现获胜条件,游戏只有在所有字段都填满时才结束(本例中为 48)。
-
@No7ExQ 请格式化您的代码变量/函数名称 (pep-8)。
-
哦,是的,我昨天做了,谢谢你的提醒(:
标签: python arrays for-loop matrix infinite-loop