python使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)
- 使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)
import random
class Role:
def init(self, name=None, score=0):
self.name = name
self.score = score
def chooseRole(self):roleOptions = ('王铁柱', '牛小花', '李二壮')while True:choice = input('请选择角色:1. 王铁柱 2. 牛小花 3. 李二壮').strip()if choice in '123' and len(choice) == 1:self.name = roleOptions[int(choice) - 1]print('您选择的角色是{0}。'.format(self.name))returnelse:print('输入错误,请重新选择。')def showFist(self):fistOptions = ('剪刀', '石头', '布')while True:yourstake = input('请出拳:1. 剪刀 2. 石头 3. 布').strip()if yourstake in '123' and len(yourstake) == 1:print('{0}出“{1}”'.format(self.name, fistOptions[int(yourstake) - 1]))return fistOptions[int(yourstake) - 1]else:print('输入错误,请重新输入。')def __str__(self):return '角色名称:{}'.format(self.name)
class Computer:
def init(self, name=‘电脑’, score=0):
self.name = name
self.score = score
def showFist(self):rdom = random.choice(['剪刀', '石头', '布'])print('{0}出“{1}”'.format(self.name, rdom))return rdom
class Game:
noWin = 0
role = Role()
computer = Computer()
def startGame(self):print(' 人机猜拳 '.center(100, '-'))self.role.chooseRole()while True:roleFist = self.role.showFist()computerFist = self.computer.showFist()self.judgeWinner(roleFist, computerFist)gameOver = input('是否结束游戏?任意键继续,按“y”退出。').strip()if gameOver.lower() == 'y':breakself.showResult()print('对战结束')def judgeWinner(self, rFist, cFist):fistComp = ('剪刀', '石头', '布')if rFist == cFist:print('平局')self.noWin += 1elif fistComp.index(rFist) + 1 == fistComp.index(cFist) or fistComp.index(rFist) - 2 == fistComp.index(cFist):print('{0}赢'.format(self.computer.name))self.computer.score += 1else:print('{0}赢'.format(self.role.name))self.role.score += 1def showResult(self):print(' {0} VS {1} '.center(100, '-').format(self.role.name, self.computer.name))print('{0}赢 {1} 局。'.format(self.role.name, self.role.score))print('{0}赢 {1} 局。'.format(self.computer.name, self.computer.score))print('平局 {0} 次。'.format(self.noWin))if self.role.score > self.computer.score:print('{0}赢了!'.format(self.role.name))elif self.role.score == self.computer.score:print('双方打平!')else:print('{0}赢了!'.format(self.computer.name))
game = Game()
game.startGame()
详细代码见链接,共同学习,加油,文末有知识点分析
文章所使用的知识点if lese语句:
if 条件1 : print(‘条件为1’)
elif 条件2 :print(‘条件为2’)
elif 条件3:print(‘条件为3’)
else:print(‘除了条件1,2,3外的结果’)
具体代码可以查看https://mp.weixin.qq.com/s/qpf_bunWOlc3X_-59K6SkA
别忘了点个关注哦!
python使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)相关推荐
- Python使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)。
[开发该软件的操作系统]:windows10 [软件开发环境/开发工具]:PyCharm [编程语言]:Python [开发目的]:这是老师布置的作业啦~ 供初学者参考学习 [开发者]:江西农业大学2 ...
- 人机对战的猜拳游戏,用户通过输 入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布),胜者积分, n 局以后通过积分的多少判定胜负。
看到题目后可以发现这题并不算太难,在思考解题方法之前就可以先把总体的框架写出来了,比如:进行游戏的次数,机器随机生成的范围已经用户所能输入的东西.如图所示: 这个时候我们就可以新建一个类,开始具体的操 ...
- python做客户端适合吗_太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端...
原标题:太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端 作者:Adil Moujahid 编译:kou.Eli 本文转自区块链大本营(ID:blockchai_camp),转载需授权 区 ...
- python(pygame)开发一个超简易版消灭病毒
python(pygame)开发一个超简易版消灭病毒 消灭病毒游戏 以下是游戏代码:每个类都是一个py文件,需要导包 1.主程序代码 2.飞机类 3.子弹类 4.病毒类 消灭病毒游戏 消灭病毒是一个打 ...
- 使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关
上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...
- 【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关
上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...
- python 250行代码开发一个贪吃蛇
python 250行代码开发一个贪吃蛇 1. 前提工作准备 2. 全局变量的定义与包的导入 3. 游戏开始界面初始化 4. 游戏界面的设置 4.1 游戏界面,使用一个Point类进行划分 4.2 预 ...
- python实现简单小游戏_用python开发一个有趣的猜数字小游戏(实现简单的GUI界面学习)...
文章目录 用python开发一个有趣的猜数字小游戏 用于字符串的格式化,通过 {} 和 : 来代替以前的 % 1. python的GUI编程 1.1 pythonGUI常用库对比 Python 提供了 ...
- [python] 开发一个跟随角色移动的地图游戏demo
用python开发一个2D角色游戏的地图Demo 如今很多大学生大学学习了编程语言,想做游戏却迟迟做不出一个游戏雏形来,接下来就和大家谈论下游戏中地图移动的简单原理并用python这一门非常火的语言进 ...
最新文章
- 学习计划2016//12/12
- 【Python】分享几个用Python给图片添加水印的方法,简单实用
- 1127: 第三章:再见,林静!
- pixhawk自学笔记之px4程序启动顺序
- mysql3308_mysql 多服务器范例
- matlab浪漫画图,Matlab技巧11:谁说数学人不懂浪漫——Matlab画隐函数曲面
- 关于模电与数电的基础知识
- 经济学人精读丨中国的电子商务
- init mysql db error_Python mysql curs错误
- dede分类名称_dede常用标签分类整理
- 更改设置并对计算机自定义,电脑别乱玩 禁用Win8.1自定义设置项
- 教你如何做出一份报表:流程分析之报表模板
- 计算机应用计术,计算机应用技术.ppt
- C语言三个整蛊程序,很强!!
- 51单片机实战教程(六 网线测试治具设计)
- java 输出大于n的质数_Java 计算并打印第n个质数
- SQL Server 2012 唯一约束(定义唯一约束、删除唯一约束)
- Python 3.12 目标:还可以更快!
- C语言——逆序乘积式
- 【C#8.0 and .NET Core 3.0 高级编程学习笔记】