python 游戲(數字推理游戲Bagels)


1.游戲思路和流程圖

實現功能:玩家猜測三位不一樣的數字,猜錯了有提示,提示分別為(位置錯誤數字正確),(位置和數字正確),(數字和位置都不正確)

游戲流程圖

2. 使用模塊和游戲提示

import random
def game_info():
print('歡迎來到數字推理游戲')
print('系統會隨機抽取三位不相同的數字')
print('根據系統提示來推理出這3位數字')

3. 雙選驗證

def Double_choice(a,b,hint):
'''雙選擇驗證函數
:param a 第一個選項值
:param b 第二個選項值
:param hint 選項信息
:return 返回輸入值'''
choice=''
while choice.lower() !=a and choice.lower() !=b:
print(hint)
choice=input()
return choice

4. 用戶輸入限制

def number_limited(number):
'''用戶輸入限制
:param number 用戶輸入數字
:return 返回用戶輸入數字'''
#用戶限制思路 檢查必須是整數,限制3位數字,檢查數字不能重復
while True:
if not number.isdigit():
print('請輸入整數數字')
elif len(number)!=3:
print('請輸入三位數字')
elif len(set(list(number)))!=3:
print('三個數字不能重復')
else:
break
number=input()
return number

5. 隨機抽取數字函數

def random_number_list(count):
'''隨機抽取數字
:param count 抽取數字的位數 最大不能超過10
:return 返回隨機抽取的3位不重復數字'''
number_list=[]
random_list=[i for i in range(10)]
random.shuffle(random_list)#打亂順序
for i in range(count):
random_number=random.choice(random_list)
random_list.remove(random_number)
number_list.append(str(random_number))
return number_list

6. 數字判斷提示

def judge_prompt(user_list,number_list):
'''數字判斷提示
:param user_list 用戶數字列表
:param number_list 隨機數字列表
:return True 猜對了 False猜錯了'''
#判斷思路,先判斷都相等,有幾個數字是數字和位置對的,沒有的話查找數字對的,在沒有的話就是都猜錯了
pico=0 #數字對了位置不對
fermi=0 #位置數字對了
if user_list==number_list:
return True
for i in range(len(user_list)):
if user_list[i]==number_list[i]:
fermi+=1
elif user_list[i] in number_list:
pico+=1
if fermi:
print('猜中了數字和位置(%d個)'%fermi)
if pico:
print('猜中了數字沒有猜中位置(%d個)' % pico)
if not fermi and not pico:
print('沒有一個數字和位置是對的')
return False

7. 游戲判斷核心

def game_start():
'''游戲判斷核心'''
number_list = random_number_list(count=3)
count=9
while count:
print('猜猜看(%d次機會)'%count)
user_number=number_limited(input())
if judge_prompt(list(user_number),number_list):
break
count-=1
if count==0:
print('你輸了,這個數字是%s'%''.join(number_list))
else:
print('玩家獲勝,這個數字是%s'%''.join(number_list))

8. 游戲外殼

def game_shell():
'''外殼程序'''
game_info() # 游戲開始提示
game_start()
while True:
message='你想在玩一次嗎(Y or N)'
again_flag=Double_choice('y','n',message)
if again_flag=='n':
break
game_start()

9. 運行游戲

game_shell()

 

python學習途徑

本游戲參考書本 <<Python游戲編程快速上手>>

友情推薦:  猿人學Python【 https://www.yuanrenxue.com/】 由一群工作十余年的老程序員結合實際工作經驗所寫的Python教程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM