最近在学习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语言是这里面比较火的,它的强项是强大的绘图功能以及 ...
随机推荐
- Linux系统下inode满了导致无法写文件的解决思路
解决思路1:删除无用的临时文件,释放inode 进入/tmp目录,执行find -exec命令 find /tmp -type f -exec rm {} \; 遍历寻找0字节的文件,并 ...
- python函数之各种器
一: 装饰器 1:装饰器模板 def wrapper(func): def inner(*args,**kwargs): ret =func(*args,**kwargs) return ret re ...
- nunit单元测试详解
在粗略看了代码后,下面就详细说明相应的测试标记(属性)的用法. [TestFixture(arguments)]属性标记类为测试类,若没有填写参数,则测试类必须含有无参构造函数,否则需要相应的有参构造 ...
- C# 中的readonly属性
例如我们这里有一个类 class TestClass2 { private int someValue; public void ChangeValue(int newValue) { someVal ...
- Socket.Io+HttpWebRequest 请求Api
Socket 接收代码 <html> <head> <title>Socket Client Demo</title> <script src=& ...
- 二叉查找树及B-树、B+树、B*树变体
动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的 ...
- C++类中的静态成员变量和静态成员函数的作用
数据成员可以分为静态变量.非静态变量两种. 静态成员:静态类中的成员加入static 修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配 ...
- U32592 摘果实
链接:https://www.luogu.org/problemnew/show/U32592 题解: 60-70分 二分+网络流
- mysql-5.7.10-winx64 绿色版安装办法
mysql-5.7.10-winx64 绿色版安装办法 为了防止安装程序造成电脑系统冗余,经过测试,终于将绿色版的mysql for windows安装成功.当然很多是从事百度搜索到的,但作为一种积累 ...
- 需求:lr需要在一串数字中随机位置插入一个新数字的实现方式
效果如下: 需要用到sscanf()函数: 从一个字符串中读进与指定格式相符的数据. Action() { ],s2[],s3[]; int n=atoi(lr_eval_string(" ...