![](/img/trans.png)
[英]Minimax Algorithm with TicTacToe (But each player can only have 3 tacs on board)
[英]Can't Mark Player on Board
我正在尝试创建游戏,但是在使用棋手的当前得分作为创建棋盘游戏的列表中的索引时,很难获得将玩家的标记显示在棋盘上的信息。
class board():
def __init__(self):
self.board = [36,35,34,33,32,31,
25,26,27,28,29,30,
24,23,22,21,20,19,
13,14,15,16,17,18,
12,11,10,9,8,7,
1,2,3,4,5,6]
self.playerscore = 0
def make_grid(self):
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s | %3s | %3s |" % (self.board[35],self.board[34],self.board[33],self.board[32],self.board[31], self.board[30]))
print("| | | | C3 | L3 | |")
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s | %3s | %3s |" % (self.board[24],self.board[25],self.board[26],self.board[27],self.board[28], self.board[29]))
print("| | L4 | | C2 | | |")
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s | %3s | %3s |" % (self.board[23],self.board[22],self.board[21],self.board[20],self.board[19], self.board[18],))
print("| L4 | C1 | C3 | L2 | C2 | |")
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s | %3s | %3s |" % (self.board[12],self.board[13],self.board[14],self.board[15],self.board[16], self.board[17],))
print("| | | L1 | | | |")
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s | %3s | %3s |" % (self.board[11],self.board[10],self.board[9],self.board[8],self.board[7], self.board[6],))
print("| | C1 | | | L2 | |")
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s | %3s | %3s |" % (self.board[0],self.board[1],self.board[2],self.board[3],self.board[4], self.board[5],))
print("| | L1 | | | | |")
print('-------------------------------------------------------------------')
def playermover(self):
while self.playerscore < 36
dice = input("Enter 1 to roll:")
if dice == 1:
self.playerscore = self.playerscore + randint(1,6)
self.board[self.playerscore] = 'P'
self.make_grid()
当我打电话给班级时,会出现游戏板和输入内容,但是每当我按1掷骰子时,我只会得到同一板,而没有标记玩家的位置。
input
返回字符串,而不是整数。 因此,您有两种选择。
比较类似以下字符串:
dice = input("Enter 1 to roll:")
if dice == '1':
或转换为整数:
dice = int(input("Enter 1 to roll:"))
if dice == 1:
您没有(或至少显示了您的) from random import randint
。
正如其他人所说,将输入转换为int或与字符串进行比较。
您永远不会实例化该类或调用方法。
您使板子设置的过程变得过于复杂。
当玩家离开该空间时,您还需要将板单元设置回正确的数字。
from random import randint
FINALSCORE = 36
class board():
def __init__(self):
self.board = [i+1 for i in range(36)]
self.playerscore = 0
self.gameover = False
def make_grid(self):
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s | %3s/C3 | %3s/L3 | %3s |" % (self.board[35],self.board[34],self.board[33],self.board[32],self.board[31], self.board[30]))
print('-------------------------------------------------------------------')
print("| %3s | %3s/L4 | %3s | %3s/C2 | %3s | %3s |" % (self.board[24],self.board[25],self.board[26],self.board[27],self.board[28], self.board[29]))
print('-------------------------------------------------------------------')
print("| %3s/L4 | %3s/C1 | %3s/C3 | %3s/L2 | %3s/C2 | %3s |" % (self.board[23],self.board[22],self.board[21],self.board[20],self.board[19], self.board[18],))
print('-------------------------------------------------------------------')
print("| %3s | %3s | %3s/L1 | %3s | %3s | %3s |" % (self.board[12],self.board[13],self.board[14],self.board[15],self.board[16], self.board[17],))
print('-------------------------------------------------------------------')
print("| %3s | %3s/C1 | %3s | %3s | %3s/L2 | %3s |" % (self.board[11],self.board[10],self.board[9],self.board[8],self.board[7], self.board[6],))
print('-------------------------------------------------------------------')
print("| %3s | %3s/L1 | %3s | %3s | %3s | %3s |" % (self.board[0],self.board[1],self.board[2],self.board[3],self.board[4], self.board[5],))
print('-------------------------------------------------------------------')
def playermover(self):
dice = input("Enter 1 to roll:")
if dice == '1':
roll = randint(1,6)
print(roll)
if self.playerscore:
self.board[self.playerscore-1] = self.playerscore
self.playerscore += roll
if self.playerscore > FINALSCORE: self.playerscore = FINALSCORE
if self.playerscore == FINALSCORE: self.gameover = True
self.board[self.playerscore - 1] = 'P'
print(self.playerscore)
self.make_grid()
game = board()
game.make_grid()
while not game.gameover:
game.playermover()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.