6–14.随机数.设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面
是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势:石头,剪子,布.胜利者从下面的规则中产生,这个规则本身是个悖论.(a) the paper covers the rock,布包石头.(b)石头砸剪子,(c)剪子剪破布.在你的计算机版本中,用户输入她/他的选项,计算机找一个随机选项,然后由你的程序来决定一个胜利者或者平手.注意:最好的算法是尽量少的使用if 语句.解答如下:
# -*- coding:utf-8 -*- #!/usr/bin/python#Filename:6-14.py'''Created on 2012-7-27@author: wanglei'''import randomdef Rochambeau(): dic={1:'剪刀',2:'石头',3:'布'} win={ "石头":"剪刀","布":"石头","剪刀":"布"} lose={ "石头":"布","布":"剪刀","剪刀":"石头"} game=True while(1): userguessint=input("剪刀石头布开始,请输入...1-剪刀,2-石头-3-布,0-退出 : ") if userguessint==0: break userguess=dic[userguessint] computerguessint=random.randint(1,3) computerguess=dic[computerguessint] print "电脑出的是%s"%computerguess if win[userguess]==computerguess: print "恭喜,你获得了胜利!" elif lose[userguess]==computerguess: print "你失败了。。。" else: print "该局为平局...." print "游戏结束..."Rochambeau()
测试数据:
剪刀石头布开始,请输入...1-剪刀,2-石头-3-布,0-退出 : 1
电脑出的是布恭喜,你获得了胜利!剪刀石头布开始,请输入...1-剪刀,2-石头-3-布,0-退出 : 2电脑出的是剪刀恭喜,你获得了胜利!剪刀石头布开始,请输入...1-剪刀,2-石头-3-布,0-退出 : 3电脑出的是布该局为平局....剪刀石头布开始,请输入...1-剪刀,2-石头-3-布,0-退出 : 0游戏结束...思路:程序采用两个字典来判断比赛结果,通过遍历这两个字典来决定输赢,从而避免了大量的条件
判断语句