python核心编程习题6-14
设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势:石头,剪子,布.胜利者从
下面的规则中产生,这个规则本身是个悖论.
(a) 布包石头.
(b)石头砸剪子,
(c)剪子剪破布.在你的计算机版本中,用户输入她/他的选项,计算机找一个随机选项,然后由你
的程序来决定一个胜利者或者平手.注意:最好的算法是尽量少的使用 if 语句.(不用字典)
#使用字典 import random guess_list = ["石头","剪刀","布"] guize = [["布","石头"],["石头","剪刀"],["剪刀","布"]] flag = True while flag: people = input('请输入:石头,剪刀,布\n').strip() computer = random.choice(guess_list) if computer == people: print("平手,再玩一次!") elif [computer,people] in guize : print("电脑获胜!" ) flag = False else: print("人获胜!" ) flag = False
#不使用字典 from random import choice option = ['石头','剪刀','布','石头'] while True: computer = choice(option[0:3]) people = input("请输入:石头、剪刀、布!\n") print("电脑输入:%s"%computer) if computer == people: print("平手,再来一回合。") elif option[option.index(people)+1] == computer: print("玩家获胜。") break else: print("电脑获胜。") break
将比赛改为三局两胜制:
1 from random import choice 2 option = ['石头','剪刀','布','石头'] 3 count1 = count2 = 0 4 while True: 5 if count1 == 2 or count2 == 2: 6 if count1>count2 : 7 print("玩家以总回合%d:%d获得胜利"%(count1,count2)) 8 else: 9 print("电脑以总回合%d:%d获得胜利"%(count2,count1)) 10 break 11 computer = choice(option[0:3]) 12 people = input("请输入:石头、剪刀、布!\n") 13 print("电脑输入:%s"%computer) 14 if computer == people: 15 print("平手,再来一回合。") 16 elif option[option.index(people)+1] == computer: 17 print("此回合玩家获胜,玩家加一分!") 18 count1 += 1 19 else: 20 print("此回合电脑获胜,电脑加一分!") 21 count2 += 1
浙公网安备 33010602011771号