《Python游戏编程快速上手》第十一章猜数字,推理游戏Bagels
生活随笔
收集整理的這篇文章主要介紹了
《Python游戏编程快速上手》第十一章猜数字,推理游戏Bagels
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《Python游戲編程快速上手》的第十一章的小游戲也非常簡單,話不多少,簡單介紹下:
- 系統隨機生成幾個數字,由玩家來猜,若有一個數字猜對但位置不對,輸出一個Pico;若一個數字即猜對了位置也對,輸出一個Fermi;如沒有數字猜對,則輸出Bagels。
接下來,上代碼:
import randomNUMCOUNT = 3 GAUSSCOUNT = 10def getNum():numList = list(range(10))random.shuffle(numList)gaussNum = ''for i in range(NUMCOUNT):gaussNum += str(numList[i])return gaussNumdef compareNum(gaussNum, inputNum):if len(inputNum) != NUMCOUNT:print("The count is wrong!You need input "+str(NUMCOUNT)+" numbers.")return 0f = 0p = 0b = 0for i in range(NUMCOUNT):if inputNum[i] in gaussNum:if inputNum[i] == gaussNum[i]:f += 1else:p += 1else:b += 1if f == NUMCOUNT:print("You got it!")return 1elif b == NUMCOUNT:print("Bagels")return 0else:print("Fermi "*f + "Pico "*p)return 0def Main():print("I am thinking of "+str(NUMCOUNT)+"-digit number.Try to gauss what it is.")print("The clues I give are...")print("When I say:\tThat means:")print(" Bagels\tNone of the digits is correct.")print(" Pico\tOne digit is correct but in the wrong position.")print(" Fermi\tOne digit is correct and in the right position.")print("I have thought up a number.You have "+str(GAUSSCOUNT)+" gausses to get it.")MyNum = getNum()for i in range(GAUSSCOUNT):print("Gauss #"+str(i+1)+":")YourNum = input()res = compareNum(MyNum, YourNum)if res == 1: breakif __name__ == "__main__":while True:Main()print("Do you want try again?(y or n)")if input() == 'n':break唯一一個需要說一下的是random.shuffle() 函數,這個函數的作用是隨機打亂輸入的列表順序。其余都就沒什么可說的了。
-*************************************************************************************************************
加油吧,少年!
總結
以上是生活随笔為你收集整理的《Python游戏编程快速上手》第十一章猜数字,推理游戏Bagels的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python游戏编程快速上手》第十章T
- 下一篇: 《Python游戏编程快速上手》第十四章