游戏玩法:
两人轮流报数,每次智能报1或者2,把两个人报的所有数加起来,谁报数后和为10,谁就获胜。必赢游戏
比赢策略
游戏本质要赢需要看总数和谁先开始报数,结合才能确定谁能赢,程序依靠随机整数确定谁先报数来赢
栗子
假如总数是21
21 % 3 = 7
没有余数所以是对手先报数可以必赢,根据对手报的数用3相减(使用3相减是因为对方和我方每次报数一定能够组成是数字是3)
20 % 3 = 6 余 2
我方先报余数2,然后根据对手报数,我方报数用3相减最后就可以赢
import random
print("游戏玩法:")
print("两人轮流报数,每次智能报1或者2,把两个人报的所有数加起来,谁报数后和为10,谁就获胜。必赢游戏")
print("游戏本质要赢需要看总数和谁先开始报数,结合才能确定谁能赢,程序依靠随机整数确定谁先报数来赢")sum_num = random.randint(3,100)
print("="*99)
print(f"游戏现在开始:总数为:{sum_num}")def decorator(func):def counting_game(sum_num):if sum_num % 3 == 0:# 对手先报one_num = int(input("您先开始,请输入1或者2: "))print(f"我报: {3 - one_num}")one_num += 3 - one_numprint(f"[当前总数为:{one_num}]")else:# 我先报one_num = sum_num % 3print(f"我先报数: {one_num}")cur_num = one_numwhile True:if cur_num >= sum_num:breake_num = int(input("请输入1或2: "))cur_num += e_numprint(f"[当前总数为:{cur_num}]")print(f"我报:{3-e_num}")cur_num += 3 - e_numprint(f"[当前总数为:{cur_num}]")print("我赢了")
counting_game(sum_num)
代码比较简陋核心就是根据数学原理计算,没有做一些异常处理
少年易老学难成,一寸光阴不可轻