python猜数字代码_Python版的文曲星猜数字游戏代码
# -*- coding: utf-8 -*-
import random
#数字类
class NumberItem:
#数字个数
_GUESS_NUMBER_COUNT_ = 4
def __init__(self):
self._num_ = []
#长度是否标准
def IsFormat(self):
return self._num_.__len__() == self._GUESS_NUMBER_COUNT_
#生成随机数
def RestRandomNumber(self):
allNum = range(10)
for index in range(self._GUESS_NUMBER_COUNT_):
self._num_.append(allNum.pop(random.randrange(10-index)))
#校验输入数
def CheckNumber(self, input_number):
result = NumberCheckResult()
for index in range(self._GUESS_NUMBER_COUNT_):
if (input_number._num_[index] == self._num_[index]):
result.Add_A()
elif(input_number._num_[index] in self._num_):
result.Add_B()
return result
#返回字符串
def GetNumber(self):
return self._num_
#竞猜结果 xAxB
class NumberCheckResult:
def __init__(self):
self._guess_A_ = 0
self._guess_B_ = 0
def GetCheckResult(self):
return ‘%d A %d B‘ % (self._guess_A_, self._guess_B_)
def Add_A(self):
self._guess_A_ += 1
def Add_B(self):
self._guess_B_ += 1
#竞猜历史项
class GuessHisItem:
def __init__(self):
self._guessNum_ = NumberItem()
self._guessResult_ = NumberCheckResult()
def ShowItem(self):
print self._guessNum_.GetNumber() , ‘ - ‘ , self._guessResult_.GetCheckResult()
#游戏类
class GuessNumberGame():
#机会次数
_MAX_GUESS_TIMES_ = 8
def __init__(self):
self.ResetGameDate()
#重置游戏数据
def ResetGameDate(self):
self._guessNum_ = NumberItem()
self._guessHis_ = []
def GetGuessTimes(self):
return self._guessHis_.__len__()
#输入字符串的格式转换
def ChangeInputNumberFormat(self, numberStr):
parseNum = NumberItem()
if (numberStr.isdigit()):
for eachNum in numberStr:
parseNum._num_.append(int(eachNum))
return parseNum
#打印竞猜历史
def ShowGuessHis(self):
print ‘‘
print ‘你已经猜了 %d次, 总共%d次机会‘ % (self.GetGuessTimes(), self._MAX_GUESS_TIMES_)
print ‘‘
for eachItem in self._guessHis_:
eachItem.ShowItem()
print ‘‘
def ShowHelp(self):
print ‘‘
print ‘输入 \‘help\‘ 显示命令列表.‘
print ‘输入 \‘his\‘ 显示竞猜历史‘
print ‘输入 \‘cheat\‘ 显示作弊结果‘
print ‘输入 \‘quit\‘ 结束游戏‘
print ‘‘
def ShowCheat(self):
print ‘‘
print ‘要猜的数字是 ‘, self._guessNum_.GetNumber()
print ‘‘
def StartOneGame(self):
self.ResetGameDate()
print ‘开始猜数字游戏!‘
self._guessNum_.RestRandomNumber()
print ‘随机号码 [*‘ + ‘,*‘*(self._guessNum_._GUESS_NUMBER_COUNT_-1) + ‘]已经生成,你有%d次机会!‘ % self._MAX_GUESS_TIMES_
#猜中标志
guess_result = False
quit_flag = False
while (self.GetGuessTimes() < self._MAX_GUESS_TIMES_
and guess_result != True and quit_flag != True):
print ‘你还剩%d次机会,输入你猜的数字:‘ % (self._MAX_GUESS_TIMES_- self.GetGuessTimes())
input_str = raw_input();
if (input_str == ‘help‘):
self.ShowHelp()
elif(input_str == ‘his‘):
self.ShowGuessHis()
elif(input_str == ‘cheat‘):
self.ShowCheat()
elif(input_str == ‘quit‘):
quit_flag = True
else:
#转换输入并校验
hisItem = GuessHisItem()
hisItem._guessNum_ = self.ChangeInputNumberFormat(input_str)
if (hisItem._guessNum_.IsFormat() != True):
print ‘数字格式错误, 重新输入!‘
else:
#竞猜历史
hisItem._guessResult_ = self._guessNum_.CheckNumber(hisItem._guessNum_)
self._guessHis_.append(hisItem)
hisItem.ShowItem()
#猜中
if (hisItem._guessResult_._guess_A_ == NumberItem._GUESS_NUMBER_COUNT_):
guess_result = True
print ‘恭喜,你猜中了数字‘ , self._guessNum_.GetNumber() , ‘ 用了%d次机会‘ % self.GetGuessTimes()
elif(self.GetGuessTimes() == self._MAX_GUESS_TIMES_ ):
print ‘‘
print ‘挑战失败,你已经猜了%d次,‘ % self.GetGuessTimes(), ‘正确的数字是‘, self._guessNum_.GetNumber()
return quit_flag
def StartGame(self):
quit_flag = False
while(quit_flag != True):
quit_flag = self.StartOneGame()
if (quit_flag != True):
print ‘‘
print ‘再玩一局?(Y/N)‘
input_str = raw_input();
if (input_str != ‘Y‘):
quit_flag = True
print ‘再见!‘
###### MAIN #######
if __name__ == ‘__main__‘:
game = GuessNumberGame()
game.StartGame()
python猜数字代码_Python版的文曲星猜数字游戏代码相关推荐
- python之穿越火线游戏代码_python开发的小球完全弹性碰撞游戏代码
#python tkinter #python version 3.3.2 from tkinter import * ''' 判断 两个小球 { 圆心:A(x1,y1) 半径:r X轴速度:Vax ...
- python中用函数货币转换代码_python将人民币转换大写的脚本代码
代码如下: def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( format_word.__len__() – ...
- python抢购火车票源代码_Python动刷新抢12306火车票的代码(附源码)
摘要:这篇Python开发技术栏目下的"Python动刷新抢12306火车票的代码(附源码)",介绍的技术点是"12306火车票.Python.12306.附源码.火车票 ...
- python拍7游戏代码_Python基础语法-7(小游戏)
代码太长?内容太复杂? 不用担心!往下看↓ 知道为什么python简洁,省力么? 就是因为python有很多写好的工具箱可以直接调用,我们只要开头给一个命令,在我们的代码 就可以直接使用它的功能了,这 ...
- python求n的阶乘代码_python计算n的阶乘的方法代码
python中n的阶乘的算法? 1 math.factorial(x) 用python计算n的阶乘的方法.(含示例代码) 2. reduce函数 用python计算n的阶乘的方法. python里怎么 ...
- python对话框代码_Python、tkinter、复杂对话框和代码结构
当实现复杂的对话框(即,具有大约10个或更多窗口小部件的对话框,尤其是在多个框架中排列时),创建需要许多tkinter调用,当代码保持在单个方法中时,代码可能会变得越来越复杂(难以读取和维护).一般来 ...
- python 大智慧365 数据格式_Python爬取365好书中小说代码实例
需要转载的小伙伴转载后请注明转载的地址 需要用到的库 from bs4 import BeautifulSoup import requests import time 获取小说的每个章节的名称和章节 ...
- php翻牌游戏代码,H5响应式网页翻牌小游戏代码
H5响应式网页翻牌小游戏代码 body { margin: 0; padding: 0; } .tile { display: block; float: left; border-radius: 5 ...
- python简单好看的代码_Python新手写出漂亮的爬虫代码1
初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说"老子会爬虫",就感觉特别有逼格,但是又不知从何入手,这里,博主给大家 ...
最新文章
- Winograd,GEMM算法综述(CNN中高效卷积实现)(上)
- 年底了,游戏大作连连
- Java二叉树的构建与遍历
- node创建web服务器代码示例
- php 调用java webservice
- Java中Array和ArrayList之间的9个区别
- echarts折线图相关
- 用JavaScript语言判断一个三位数是否为水仙花数
- 適合.net開發人員的UML自由軟件
- JDK8新特性(四)之方法引用
- 计算机硬件及组成原理pdf百度云,计算机组成原理整理版本.pdf
- mnist手写数字识别与优化
- CFS三层内网环境 渗透流程
- starbound服务器文件,starbound星界边境开新档并从老存档转移物资的方法_快吧单机游戏...
- 【华为OD机试真题 JS】统计射击比赛成绩
- 前端 查看页面在不同分辨率下效果
- 如何获取window10中的开机图片(聚焦壁纸 )
- 如何安装群晖系统,改成NAS?
- 【线性代数】行列式的性质
- win7/8/10系统好用的视频剪辑软件对比
热门文章
- html点击按钮弹出窗口_电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...
- python find函数 和index的区别_python中index()与find()的区别
- mysql order 关键字_PHP数据库MySQL Order By 关键词 - PHP教程
- zeppelin安装使用
- Apache Flink 零基础入门(十七)Flink 自定义Sink
- 十一在家都逛哪些技术网站?(程序员必备58个网站汇总)
- 你们需要的数据集,都给准备好了!
- python编写函数求斐波那契数列的某一项_求解一道Python编程题
- fanuc roboguide_ROBOGUIDE码垛简单工作站的创建
- C语言科技感图片,科技感与运动范十足,几何C黑棚图曝出,年轻消费者又多了新选择...