Python 棋盘上的怪物追逐游戏:如果用户第一次输入1,为什么X不出现?
本质上,这个游戏允许用户在25个空格的棋盘上选择一个空格。有一个怪物用用户的“气味”随机选择一个正在进行的空间工作 如果启动程序并输入1作为第一步,它不会显示在板上。有人知道为什么会这样吗 奖金问题: 我想让“气味”在转一圈后消失……有什么想法吗? 或 我想让用户得到染色前留下的气味量的分数。有什么想法吗? 问题在于monster_move,特别是这一行:Python 棋盘上的怪物追逐游戏:如果用户第一次输入1,为什么X不出现?,python,Python,本质上,这个游戏允许用户在25个空格的棋盘上选择一个空格。有一个怪物用用户的“气味”随机选择一个正在进行的空间工作 如果启动程序并输入1作为第一步,它不会显示在板上。有人知道为什么会这样吗 奖金问题: 我想让“气味”在转一圈后消失……有什么想法吗? 或 我想让用户得到染色前留下的气味量的分数。有什么想法吗? 问题在于monster_move,特别是这一行: mapp[move] = space 您在开始时初始化move=0,因此它总是删除第一个正方形,并且由于它发生在用户移动之后,因此用户不会
mapp[move] = space
您在开始时初始化move=0,因此它总是删除第一个正方形,并且由于它发生在用户移动之后,因此用户不会出现在那里
相反,您可以在第一轮中将其设置为不同的值,并检查:
move = -1
在monster_move中:
奖金问题:
我想让“气味”在转一圈后消失……有什么想法吗
跟踪以前的位置,并使用它来去除气味。如果在Python中使用队列数据结构,这可以通过一个列表来完成,很容易扩展到更高级的算法,比如跟踪多个回合
在顶部,初始化
prev_moves = []
在user_move中,移除旧气味并添加新气味:
def user_move():
global choice
if user in mapp:
mapp[choice] = scent # replace the user marker
if len(prev_moves) > 0:
mapp[prev_moves.pop(0)] = space # remove earliest move
prev_moves.append(choice) # add most recent move
print(prev_moves)
for move in prev_moves: # place scent markers
mapp[move] = scent
choice = (int(input("Where would you like to move? (1-25): "))-1)
check()
mapp[choice] = user
如果你想让气味持续更长时间,只需检查列表的长度,只有当它比你想要的更大时才会弹出
我想让用户得到染色前留下的气味量的分数。有什么想法吗
使用上面的列表实现,您只需检查lenprev_移动
prev_moves = []
def user_move():
global choice
if user in mapp:
mapp[choice] = scent # replace the user marker
if len(prev_moves) > 0:
mapp[prev_moves.pop(0)] = space # remove earliest move
prev_moves.append(choice) # add most recent move
print(prev_moves)
for move in prev_moves: # place scent markers
mapp[move] = scent
choice = (int(input("Where would you like to move? (1-25): "))-1)
check()
mapp[choice] = user