日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python猜数字代码_Python版的文曲星猜数字游戏代码

發(fā)布時(shí)間:2024/9/3 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python猜数字代码_Python版的文曲星猜数字游戏代码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

# -*- coding: utf-8 -*-

import random

#數(shù)字類

class NumberItem:

#數(shù)字個(gè)數(shù)

_GUESS_NUMBER_COUNT_ = 4

def __init__(self):

self._num_ = []

#長(zhǎng)度是否標(biāo)準(zhǔn)

def IsFormat(self):

return self._num_.__len__() == self._GUESS_NUMBER_COUNT_

#生成隨機(jī)數(shù)

def RestRandomNumber(self):

allNum = range(10)

for index in range(self._GUESS_NUMBER_COUNT_):

self._num_.append(allNum.pop(random.randrange(10-index)))

#校驗(yàn)輸入數(shù)

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_

#競(jìng)猜結(jié)果 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

#競(jìng)猜歷史項(xiàng)

class GuessHisItem:

def __init__(self):

self._guessNum_ = NumberItem()

self._guessResult_ = NumberCheckResult()

def ShowItem(self):

print self._guessNum_.GetNumber() , ‘ - ‘ , self._guessResult_.GetCheckResult()

#游戲類

class GuessNumberGame():

#機(jī)會(huì)次數(shù)

_MAX_GUESS_TIMES_ = 8

def __init__(self):

self.ResetGameDate()

#重置游戲數(shù)據(jù)

def ResetGameDate(self):

self._guessNum_ = NumberItem()

self._guessHis_ = []

def GetGuessTimes(self):

return self._guessHis_.__len__()

#輸入字符串的格式轉(zhuǎn)換

def ChangeInputNumberFormat(self, numberStr):

parseNum = NumberItem()

if (numberStr.isdigit()):

for eachNum in numberStr:

parseNum._num_.append(int(eachNum))

return parseNum

#打印競(jìng)猜歷史

def ShowGuessHis(self):

print ‘‘

print ‘你已經(jīng)猜了 %d次, 總共%d次機(jī)會(huì)‘ % (self.GetGuessTimes(), self._MAX_GUESS_TIMES_)

print ‘‘

for eachItem in self._guessHis_:

eachItem.ShowItem()

print ‘‘

def ShowHelp(self):

print ‘‘

print ‘輸入 \‘help\‘ 顯示命令列表.‘

print ‘輸入 \‘his\‘ 顯示競(jìng)猜歷史‘

print ‘輸入 \‘cheat\‘ 顯示作弊結(jié)果‘

print ‘輸入 \‘quit\‘ 結(jié)束游戲‘

print ‘‘

def ShowCheat(self):

print ‘‘

print ‘要猜的數(shù)字是 ‘, self._guessNum_.GetNumber()

print ‘‘

def StartOneGame(self):

self.ResetGameDate()

print ‘開始猜數(shù)字游戲!‘

self._guessNum_.RestRandomNumber()

print ‘隨機(jī)號(hào)碼 [*‘ + ‘,*‘*(self._guessNum_._GUESS_NUMBER_COUNT_-1) + ‘]已經(jīng)生成,你有%d次機(jī)會(huì)!‘ % self._MAX_GUESS_TIMES_

#猜中標(biāo)志

guess_result = False

quit_flag = False

while (self.GetGuessTimes() < self._MAX_GUESS_TIMES_

and guess_result != True and quit_flag != True):

print ‘你還剩%d次機(jī)會(huì),輸入你猜的數(shù)字:‘ % (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:

#轉(zhuǎn)換輸入并校驗(yàn)

hisItem = GuessHisItem()

hisItem._guessNum_ = self.ChangeInputNumberFormat(input_str)

if (hisItem._guessNum_.IsFormat() != True):

print ‘?dāng)?shù)字格式錯(cuò)誤, 重新輸入!‘

else:

#競(jìng)猜歷史

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 ‘恭喜,你猜中了數(shù)字‘ , self._guessNum_.GetNumber() , ‘ 用了%d次機(jī)會(huì)‘ % self.GetGuessTimes()

elif(self.GetGuessTimes() == self._MAX_GUESS_TIMES_ ):

print ‘‘

print ‘挑戰(zhàn)失敗,你已經(jīng)猜了%d次,‘ % self.GetGuessTimes(), ‘正確的數(shù)字是‘, 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()

總結(jié)

以上是生活随笔為你收集整理的python猜数字代码_Python版的文曲星猜数字游戏代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。