《Python核心编程》第二版第六章练习 6-14 解答

6-14.
随机数。设计一个“石头、剪子、布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则。你和你的对手,在同一时间做出特定的手势,必须是下面一种:石头、剪子、布。胜利者从下面的规则产生,这个规则本身是个悖论。
(a)布包石头。
(b)石头砸剪子。
(c)剪子剪破布。在你的计算机版本中,用户输入他/她的选项,计算机找一个随机选项,然后由你的程序来决定一个胜利者或者平手。注意,最好的算法是尽量少使用if语句。

#-*- coding: utf-8 -*

import random

RCB = ['R','C','B']
win = ['RC','CB','BR']

def Stone(a):
	b = random.choice(RCB)
	pstr = 'Your:[ %s ] VS Computer:[ %s ] '  %(a,b)
	if a == b:
		print pstr,u'平局!' 
	elif a+b in win:
		print pstr,u'你赢了:)' 
	else:
		print pstr,u'你输了:('

def showmenu():
	pr = """
	(R)ock
	(C)ham
	(B)eau
	(Q)uit

	enter your RCB: """

	while True:
		while True:
			try:
				choice = raw_input(pr).strip()[0].upper()
			except (EOFError,KeyboardInterrupt,IndexError):
				choice = 'Q'

			print '\nYou picked: [%s]' %choice
			if choice not in 'RCBQ':
				print 'Ivalid option, must in %s or \'Q\', try again!' %RCB
			else:
				break

		if choice == 'Q':
			break
	
		Stone(choice)

if __name__ == '__main__':
	showmenu()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值