《Python核心编程》第二版第六章练习题答案-第四部分

本文介绍了一个基于Python实现的石头剪子布游戏,利用字典判断胜负,避免了大量条件判断语句,展示了简洁高效的编程技巧。

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 random
def 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
游戏结束...

思路:程序采用两个字典来判断比赛结果,通过遍历这两个字典来决定输赢,从而避免了大量的条件

          判断语句

转载于:https://www.cnblogs.com/hello--the-world/archive/2012/07/27/2611769.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值