编程语言
首页 > 编程语言> > python学习第十三周(实验课)

python学习第十三周(实验课)

作者:互联网

聪明的尼姆游戏(人机对战)
实验目的:
(1)理解尼姆游戏规则
(2)了解并熟练使用while循环
(3)理解带else子句的循环结构执行流程
(4)理解循环语句的break语句的作用
(5)了解使用循环和异常处理结构对用户输入进行约束的用法
实验内容:
尼姆游戏是一个著名的游戏,有很多变种玩法。两个玩家轮流从一堆物品中拿走一部分。在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家。拿走最后一个物品的玩家输掉游戏。
在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1——也就是3,7,15,31或63.除了堆的大小已经是2的幂次方减1,在其他情况下这样走都是符合游戏规则。在那种情况下,计算机就按游戏规则随机拿走一些。
编写程序,模拟聪明版的尼姆游戏。

half = n // 2
	if num <= half:
		return num
	return randint(1,half)
def smart(n):
	while n > 1:
		print("你的回合,还剩下{}物品".format(n))
		while True:
			try:
				num = int(input("你要拿走的数量:"))
				assret 1 <= num <= n // 2
				break
			except:
				pass
		n -= num
		if n == 1:
			return "我输了"
		n -= every_step(n)
	else:
		return "你输了"
print(smart(randint(1,100)))

猜单词游戏
实验内容:编写程序模拟猜单词游戏。程序运行时,系统随机生成一个单词,然后将产生后的单词中字母的顺序进行打乱,组成新的一个单词。然后提示用户进行猜测,并根据用户输入进行必要的提示(猜对了,猜错了),如果猜错了,则提示用户继续猜,每一个用户有三次猜测的机会。猜对了则提示用户,“猜对了,恭喜过关”,然后询问用户是否要继续下一关。

import random

WORDS = ('ErenYeager','ArminArlert',' MikasaAckerman','JeanKirstein','Annie','Sasha','improve','Krista','Connie','Marco')
isGo_on = 'Y'
while isGo_on == 'Y' or isGo_on == 'y':
   randomWord = random.choice(WORDS)
   correctWord = randomWord
   jumbleWord = ''
   while randomWord:
       position = random.randrange(len(randomWord))
       jumbleWord += randomWord[position]
       randomWord = randomWord[:position] + randomWord[(position + 1):]
   print('乱序后单词:',jumbleWord)
   guessWord = input('\n请您猜猜看:')
   while guessWord != correctWord and guessWord != '':
       print("猜错了")
       guessWord = input("继续您猜:")
   if guessWord == correctWord:
       print("猜对啦,恭喜过关!\n")
   isGo_on = input("\n\n是否要继续下一关?(Y/N):")

标签:randomWord,第十三,python,拿走,单词,游戏,while,guessWord,实验课
来源: https://blog.csdn.net/weixin_52001655/article/details/118050844