首先感谢您尝试提供帮助。在TicTacToe游戏中制作具有动态装订检查功能的方法
我有一个井字游戏在Python完成,你可以在这里看看:https://github.com/Weffe/TicTacToe
目前,一切都运行了一个3x3的比赛场地完全正常。我想让游戏充满活力,因为它可以轻松扩展到9x9而不会出现任何问题。但是,我有点脑残,无法找出最简单的方法来实现这一点。主要问题在于Player.py的函数get_player_loc_input()。
现在它只是配置为3x3的游戏场。但是,我想让它变得动态。
原始代码:
def get_player_loc_input(self):
player_input = input('Enter in location for your move: ') # player input is with respect to field index location
translated_input = int(player_input)
if 7 <= translated_input <= 9:
translated_input = [0, (translated_input - 7)] # row, col
elif 4 <= translated_input <= 6:
translated_input = [1, (translated_input - 4)] # row, col
elif 1 <= translated_input <= 3:
translated_input = [2, (translated_input - 1)] # row, col
else:
raise ValueError('Input is not an index on the playing field. Try again\n')
return translated_input
我目前的动态尝试:
def get_player_loc_input(self, num_rows, num_cols):
value = num_rows*num_cols
num_rows = num_rows - 1 #adjust from n+1 to n
for x in range(value, 0, 3):
lower_bound = x-2
upper_bound = x
if lower_bound <= translated_input <= upper_bound:
translated_input = [num_rows, (translated_input - lower_bound)]
num_rows = num_rows - 1 #move down to the next row we're on
return translated_input
比赛场地
-------------
| 7 | 8 | 9 | #row 0
-------------
| 4 | 5 | 6 | #row 1
-------------
| 1 | 2 | 3 | #row 2
-------------
它的工作方式是通过输入的数量的图片您要替换的索引。然后该函数将该数字转换为[row,col]“value”。
因此,例如,4 => [1,0] OR 3 => [2,2]
任何想法?要去做点别的事情来清理我的头。
只需使用整数除法并且它是余数 - 例如row = input/rowlength,而col = input%rowlength。当你从上到下统计行数时,行将被恢复,但希望你明白。 –