python中answer是什么意思_用Python实现的quot;石头,剪刀,布quot; - The answer to everything - ITeye博客...
需求:设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势:石头,剪子,布.胜利者从
下面的规则中产生,这个规则本身是个悖论.
(a) 布包石头.
(b)石头砸剪子,
(c)剪子剪破布.在你的计算机版本中,用户输入她/他的选项,计算机找一个随机选项,然后由你
的程序来决定一个胜利者或者平手.注意:最好的算法是尽量少的使用 if 语句.
曾经实现过一个java版本的,用的思路是通过Enum分发的方式来实现,那种实现方式灵活性相对较强,但是代码量还是较多.现在正在学习python,所以用python实现了一个简单的版本,代码的数量上还是有明显的减少[本人是新手,不足请指教]:
'''
demonstrate Stone, Stainless, Paper game
Created on 2012-11-1
@author: Eric
'''
import random;
#elementA-->DRAW WIN LOST
COMPETE_RESULT = {"Stone":["Stone", "Stainless", "Paper"],
"Stainless":["Stainless", "Paper", "Stone"],
"Paper":["Paper", "Stone", "Stainless"]};
SIGN = {0:"Stone", 1:"Stainless", 2:"Paper"}
RESULTS = {0:"DRAW", 1:"WIN", 2:"LOST"};
def rochambeauGame():
print('''0:STONE
1:STAINLESS
2:Paper
3:quit
''');
while True:
userSign = input("please input your userSign number:");
if int(userSign) in (1, 2, 3, 0):
if userSign == 0:
exit();
else:
userSignResults = COMPETE_RESULT[SIGN[int(userSign)]];
pcSign = SIGN[int(genereteRandomPCSign())];
print("User Sign:" + SIGN[int(userSign)] + " PC Sign:" + pcSign + " \n####result is: user " + RESULTS[userSignResults.index(pcSign)]);
else:
print("please input correctly order");
#generate a random number,[0,2]
def genereteRandomPCSign():
return random.randrange(3);
if __name__ == '__main__':
rochambeauGame();
这个程序里面的if使用的数量在我看来应该是比较少了.
分享到:
2012-11-01 21:40
浏览 337
评论
python中answer是什么意思_用Python实现的quot;石头,剪刀,布quot; - The answer to everything - ITeye博客...相关推荐
- python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...
- python中for语句的使用_对Python中for复合语句的使用示例讲解
当Python中用到双重for循环设计的时候我一般会使用循环的嵌套,但是在Python中其实还存在另一种技巧--for复合语句. 简单写一个小程序,用于延时循环嵌套功能如下: #!/usr/bin/p ...
- python中idx是什么意思_使用Python解析MNIST数据集(IDX文件格式)
前言 最近在学习Keras,要使用到LeCun大神的MNIST手写数字数据集,直接从官网上下载了4个压缩包: MNIST数据集 解压后发现里面每个压缩包里有一个idx-ubyte文件,没有图片文件在里 ...
- python中mod是什么意思_【python中,mod_python到底做了些什么呢?】mod python 教程
python 编程小白 ,不会用doctest 请大神指教怎么用!! >>> >>> def is_between(v, lower, higher): ... ...
- python中二进制和文本不同_关于Python字符编码与二进制不得不说的一些事
二进制 核心思想: 冯诺依曼 + 图灵机 电如何表示状态,才能稳定? 计算机开始设计的时候并不是考虑简单,而是考虑能自动完成任务与结果的可靠性, 简单始终是建立再稳定.可靠基础上 经过尝试10进制,但 ...
- python中sample是什么意思_基于Python中random.sample()的替代方案
python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行速度很慢,如: numpy random模块中的choice ...
- python中的class怎么用_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- python中矩阵的表示方法_关于Python表示矩阵的方法详解
这篇文章主要介绍了Python表示矩阵的方法,结合具体实例形式分析了Python表示矩阵的方法与相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python表示矩阵的方法.分享给大家供大家参考, ...
- python中list作为函数参数_在python中list作函数形参,防止被实参修改的实现方法
0.摘要 我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变.本文将主要介绍这种错误的现象.原因和解决方法. 1.代码示例 def fun(inner_lst): inner_lst ...
最新文章
- Linux系统是否能够联网
- 从入门到精通的Java进阶学习笔记整理,不愧是大佬
- 信息系统开发平台OpenExpressApp - 数据权限
- Index.get_indexer 方法的含义
- 最新ui设计趋势_10个最新且有希望的UI设计趋势
- 首尾非零正则_推荐收藏一波,工作中常用的正则表达式总结!
- 数据运营小白如何搭建“初期用户生命周期体系”?
- Android - 获取字符串长度的宽度
- QT正则表达式截取字符串末尾数字
- 创建第一个Android app项目
- for(in/of)/forEarch的区别和使用
- JavaScript 鼠标事件
- 使用certbot完成证书的自动发放
- 计算机加密解除,bitlocker加密如何取消?Win7系统电脑取消bitlocker加密的方法
- 时分复用共享和空分复用共享的介绍
- Android开发本地及网络Mp3音乐播放器(二十)歌曲下载完成后通知主界面更新本地音乐
- 罗斯蒙特248HANAU2NS温度变送器
- 2022企业人效管理白皮书
- 阿里P9又有新瓜...
- 拼多多,是真相还是谣言,原来是戏言
热门文章
- Spring Cloud 学习总结
- 在 4GB 物理内存的机器上,申请 8G 内存会怎么样?
- Gulp折腾记 - (3)常用任务构建的demo[改进版]
- python 实战(5)python 登录 爬自己脉脉好友数据
- JavaEE学习之jsp编写登陆注册页面
- GCM 的升级版——FCM(firebase cloud messaging)
- safari阅读模式_如何在Safari中使用和调整阅读器模式
- PostGIS Geography Type
- Shellshock(破壳)系列漏洞简要分析及检测
- error怎么开机 fan_台式机开机出现cpu fan error怎么办