最近在学习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语言是这里面比较火的,它的强项是强大的绘图功能以及 ...
随机推荐
- JS中----this的指向和如何修改this的指向
this this是js中的一个关键字,函数运行时自动生成的一个内部对象,只能在函数内部使用.我们要讨论的是 this 的指向. this就是函数运行时自动生成的一个内部对象 下面介绍一下几种情况下, ...
- MySQL源码安装一键脚本
#红色部分根据自己的需求来定义#!/bin/bash #卸载系统自带的Mysql /bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps /bi ...
- go包之logrus显示日志文件与行号
前言: logrus是go中比较好的一个log模块.github上的很多开源项目都在使用这个模块, 我在写这个博文时, github上的logrus的stars数已经有8214了.最近在用这个模块时, ...
- (转)CSS3之pointer-events(屏蔽鼠标事件)属性说明
我们在 HTML 开发时可能会遇到这样的情况:页面上有一些元素使用绝对定位布局,这些元素可能会遮盖住它们位置下方的某个元素的部分或者全部.默认情况下,下方元素被遮挡的部分是不会响应鼠标事件的. 但有时 ...
- less 写关键帧动画
@keyframes 关键帧动画写在less里的时候,务必要写在所有的{}之外,不能被{}包裹 甚至务必写在代码的最后 不然报错 Compilation resulted in incorrect C ...
- Android常用框架和控件使用
Router框架 https://github.com/iqiyi/Andromeda/blob/master/CHINESE_README.md https://github.com/alibaba ...
- 使用docker方式安装etcd集群,带TLS证书
网上文档也多,安装的时候,还是踩了几个坑. 现在作一个安装记录吧. 1,先作自签名的证书ca-csr.json(为了和k8s共用根证书,可能将信息调为k8s). { "CN": & ...
- 'mysql' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
1.C:\Users\Aiyufei>mysql -h 127.0.0.1 -u root'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件.解决方法: 配置环境变量即可,我的问 ...
- BootStrap标题制作模板
<!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="UTF-8&q ...
- Vs2017获取Git空仓库后创建解决方案及项目无法推送,推送失败的问题.
与Git无关,因为远程是空文件夹,导致没有远程版本做对应提示更改或怎样,必须在创建人创建仓库的时候上传文件代码. https://developercommunity.visualstudio.c ...