如何解决满足条件后是否可以终止程序? 如果玩家赢得了比赛
我大约一个星期前才学习Python(我没有任何编程经验),但是我试图重新创建“蛇和梯子”游戏。我编写了代码,但是如果玩家获胜,我不知道如何终止该程序。一名玩家获胜(达到100张或任何棋盘大小)后,我的程序仍然要求另一位玩家掷骰子,然后游戏继续进行。
这是我创建的Player类。
您可以在Player.turn()
中找到获胜条件。
class Player:
def __init__(self,name):
self.name = str(name)
self.position = int()
def ask_to_roll(self):
while True:
command = str(input("Press enter to roll the dice.\n> "))
if command == "":
break
else:
print("Invalid")
continue
def roll_dice(self):
print(f'{self.name} is rolling the dice...')
time.sleep(delay)
roll_result = random.randint(1,dice_faces)
print(f"It's a {roll_result}!")
time.sleep(delay)
return roll_result
def check_for_snakes_ladders(self):
if self.position in snakes.keys():
print(random.choice(snake_bite))
time.sleep(delay)
print(f'{self.name} fell from {self.position} to {snakes[self.position]}')
time.sleep(delay)
self.position = snakes[self.position]
elif self.position in ladders.keys():
print(random.choice(ladder_jump))
time.sleep(delay)
print(f'{self.name} climbed from {self.position} to {ladders[self.position]}')
time.sleep(delay)
self.position = ladders[self.position]
else:
pass
def turn(self):
print(f"\nIt's {self.name}'s turn")
self.ask_to_roll()
roll_result = self.roll_dice()
new_position = self.position + roll_result
if new_position > board_size:
print(f"Oops you need to get {board_size - self.position}")
pass
elif new_position == board_size:
print(f'{self.name} won')*
elif new_position < board_size:
print(f'{self.name} moved from {self.position} to {new_position}')
time.sleep(delay)
self.position = new_position
self.check_for_snakes_ladders()
解决方法
elif new_position == board_size:
print(f'{self.name} won')
sys.exit(0)
记住文件顶部的import sys
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。