最近在学习python,做了一道人机大战的题目,分享一下,虽然可能有些麻烦,但是每个人思维是不同的。
#题目如下:1:人和机器进行猜拳游戏写成一个类,首先选择角色:1 曹操 2张飞 3 刘备,然后选择的角色进行猜拳:1剪刀 2石头 3布 玩家输入一个1-3的数字 ;
1 import random
class Man_Machine_War():
def __init__(self):
self.USER={1:"曹操",2:"张飞",3:"刘备"}
self.GUESS_TYPE={1:"剪刀",2:"石头",3:"布"} def Choose_User(self):
'''
选择角色
:return:
'''
while (True):
User_Role_Num = input("提示:1曹操 2张飞 3刘备\n请玩家输入数字选择角色:")
try:
User_Role_Num = int(User_Role_Num)
if (User_Role_Num not in [1, 2, 3]):
print("请输入1,2,3选择角色!")
else:
print("用户选择:", self.USER[User_Role_Num])
return self.USER[User_Role_Num]
except(ValueError, TypeError):
print("输入错误!请玩家输入数字")
continue def Computer_Num(self):
'''
返回机器人选择的数字
:return:
'''
ran = random.randint(1,3)
print("电脑出:",self.GUESS_TYPE[ran])
return ran def User_Input_Num(self):
'''
返回用户选择的数字
:return:
'''
while(True):
User_Num = input("提示:1剪刀 2石头 3布\n请玩家输入数字选择出拳:")
try:
User_Num = int(User_Num)
if(User_Num not in [1,2,3]):
print("请输入1,2,3进行出拳!")
else:
print("用户选择:",self.GUESS_TYPE[User_Num])
return User_Num
except(ValueError, TypeError):
print("输入错误!请玩家输入数字")
continue def Judge_Bunko(self,User_Res,Computer_Res):
'''
比赛结果
'''
if Computer_Res==User_Res:
return "Draw"
elif Computer_Res==1:
if User_Res==2:
return "User_Win"
else:
return "User_lose"
elif Computer_Res==2:
if User_Res==3:
return "User_Win"
else:
return "User_lose"
elif Computer_Res==3:
if User_Res==1:
return "User_Win"
else:
return "User_lose"
User_Last_Name=Man_Machine_War().Choose_User()
Use_Result = {User_Last_Name:0,"Computer":0}
User_Win_Num = 0
Com_Win_Num = 0
User_Equal_Com = 0
while(True):
Win_Res=Man_Machine_War().Judge_Bunko(Man_Machine_War().User_Input_Num(),Man_Machine_War().Computer_Num())
if Win_Res=="User_Win":
print(User_Last_Name,"赢了!")
User_Win_Num+=1
elif Win_Res=="User_lose":
print("电脑赢了!")
Com_Win_Num+=1
elif Win_Res=="Draw":
print("平局")
User_Equal_Com+=1
Con = input("是否继续?y/n")
if Con=="y":
continue
elif Con=="n":
break
else:
print("输入错误,默认退出,游戏停止!")
break
print(User_Last_Name,"赢了{}次,电脑赢了{}次,平局{}次".format(User_Win_Num,Com_Win_Num,User_Equal_Com))
最近在学习python,做了一道人机大战的题目,分享一下,虽然可能有些麻烦,但是每个人思维是不同的。的更多相关文章
- 《用Python做HTTP接口测试》学习感悟
机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+ ...
- 用python做数字油画或者从一幅画学习风格,去画另一幅画
1. 用python做数字油画 模块: pillow 2. 从一幅画学习风格,去画另一幅画 http://pytorch.org/tutorials/advanced/neural_style_tut ...
- 零基础学习python 你该怎么做
本人文科生,回顾自己近 2 年的Python 自学经历,有一些学习心得和避坑经验分享给大家,让大家在学习 Python 的过程中少走一些弯路!减少遇到不必要的学习困难! 首先,最开始最大的困难应该就是 ...
- 学习python
最近感觉Python 很不错的样子,乘着这次寒假,不如就先学一下吧. 翻看了一些教程,发现<python 简明教程>质量上乘. 我目前学习python就是打算做一些上位机之类的,好像有点杀 ...
- Linux运维人员如何学习python编程
Linux运维人员如何学习python编程 从不会写代码,到自己独立能写代码解决问题 .这个问题很重要!盲目学习所谓的项目,最后 还是不会自己写代码解决问题.首先解决了独立能写代码解决问题,再通过项目 ...
- 新手学习Python时常见的错误
最近学习Python,现在把一些常见的错误总结如下: 1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 "Synta ...
- 学习Python的三种境界
前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人 ...
- 1 python学习——python环境配置
1 python学习--python环境配置 要学习python语言,光看书看教程还是不好,得动手去写.当然,不管学习什么编程语言,最佳的方式还在于实践. 要实践,先得有一个Python解释器来解释执 ...
- 使用python做科学计算
这里总结一个guide,主要针对刚开始做数据挖掘和数据分析的同学 说道统计分析工具你一定想到像excel,spss,sas,matlab以及R语言.R语言是这里面比较火的,它的强项是强大的绘图功能以及 ...
随机推荐
- mysql 语句的使用清库数据转移
mysql清空数据库表 方法1:重建库和表用mysqldump --no-data把建表SQL导出来,然后drop database再create database,执行一下导出的SQL文件: 方法2 ...
- maven依赖查找方法
http://mvnrepository.com 1. 搜索依赖库 2. 选择合适版本 3. 复制配置 点击合适的版本进入,负责maven配置: <dependency> ...
- Left-pad
L1-032 Left-pad (20 分) 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的 ...
- P0505
算法训练 P0505 时间限制:1.0s 内存限制:256.0MB 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了 ...
- Idea和PyCharm激活破解
1. 先去百度去官网下载专业版IDE, Idea 和PyCharm激活方法一样 2. 下载破解包, 点击下载 3. 将下载的jar包放到这个安装目录的bin目录下面 4. 在bin目录下面的文件pyc ...
- DOM对象,控制HTML元素
认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 节点属性: 遍历 ...
- 分享微信h5支付源码
类库代码 wechatH5Pay.php <?php //use Flight; /** * 微信支付服务器端下单 * 微信APP支付文档地址: https://pay.weixin.qq.co ...
- 一个良好划分Activity创建步骤的BaseActivity
一个Activity的创建过程其实包含几个不同的步骤,基本上都是在onCreate函数中完成的,这些步骤主要有: 设置页面的布局文件 初始化页面包含的控件 设置页面控件的点击响应事件 处理页面的业务逻 ...
- netty01(长短连接、java)
使用netty需要添加依赖包 netty版本:netty-5.0.0.Alpha2 http://files.cnblogs.com/files/applerosa/netty-5.0.0.Alpha ...
- 03. Pandas 2| 时间序列
1.时间模块:datetime datetime模块,主要掌握:datetime.date(), datetime.datetime(), datetime.timedelta() 日期解析方法:pa ...