1. 程式人生 > 程式設計 >Python實現猜年齡遊戲程式碼例項

Python實現猜年齡遊戲程式碼例項

1. 在猜年齡的基礎上編寫登入、註冊方法,並且把猜年齡遊戲分函式處理,如

2. 登入函式

3. 註冊函式

4. 猜年齡函式

5. 選擇獎品函式

程式碼如下

import json
real_age = 18
prize_list = ['好迪洗髮水','綠箭俠','小豬佩奇','布娃娃','再來一次!']
import random
user_prize_dict = {}
import os

def register():
  while True:
    username = input('輸入使用者名稱>>>(q退出):').strip().lower()
    if username=='q':break
    password = input('請輸入密碼>>>:').strip()
    re_password = input('請再次確認密碼>>>:').strip()
    if not password == re_password:
      print('密碼不一致,請重輸!')
      continue
    user_dic = {'name': username,'password': password}
    json_user_dic = json.dumps(user_dic)
    with open(f"{username}.txt",'w',encoding='utf-8')as f:
      f.write(json_user_dic)
      f.flush()
      print('註冊成功!')
      break

def login():
  count = 0
  while True:
    if count == 3:
      print('錯誤輸入次數過多!')
      break
    username = input('請輸入使用者名稱>>>:').strip()
    if not os.path.exists(username + '.txt'):
      print('該使用者不存在!')
      continue
    password = input('請輸入密碼>>>:').strip()
    with open(f"{username}.txt",'r',encoding='utf-8') as f:
      user_json_dic = f.read()
      user_dic = json.loads(user_json_dic)
      if username == user_dic['name'] and password == user_dic['password']:
        print('登入成功!')
        guess_age()
        break
      else:
        print('使用者名稱或密碼錯誤!')
    count += 1

def guess_age():
  count = 0
  print('現在進入猜年齡遊戲環節.......\n')
  while True:
    count += 1
    if count == 4:
      print('抱歉!你三次都猜錯了!')
      again_guess_age = input('請問是否要繼續猜3次(y繼續,n退出)>>>:').strip().lower()
      if again_guess_age == 'y':
        count = 0
        continue
      break
    age = input('請輸入你的年齡>>>:').strip()
    if not age.isdigit():
      print('請輸入純數字!')
      continue

    age = int(age)
    if age > real_age:
      print('猜大了!')
    elif age < real_age:
      print('猜小了!')
    else:
      print('恭喜你!猜對了!\n')
      choice_prize()
      break

def choice_prize():
  count = 1
  print('進入抽獎環節.....,您共有兩次機會!\n 獎品如下:')
  while True:
    for index,prize in enumerate(prize_list,1):
      print(index,prize)
    choice = input('請按下按鈕y隨機選擇獎品>>>:').strip().lower()
    if not choice == 'y':
      print('非法輸入!')
      continue
    prize_choice = random.randint(1,15)
    if prize_choice in [6,7,8]:
      prize_choice = 4
    elif prize_choice in [9,10,11,12,13,14,15]:
      prize_choice = 5
    prize = prize_list[prize_choice - 1]
    if prize in user_prize_dict:
      user_prize_dict[prize] += 1
    else:
      user_prize_dict[prize] = 1
    print(f'本次獲得獎品為:{prize},您還有{2-count}次機會!\n')
    if count == 2:
      if user_prize_dict.get('再來一次!'):
        user_prize_dict.pop('再來一次!')
      print(f'總共獲得的獎品為:{user_prize_dict}')
      break
    count += 1


user_func_dic = {
  '1': register,'2': login,}
while True:
  print('''
    先註冊,登陸後才能玩猜年齡遊戲哦!
    1. 註冊
    2. 登入
  '''
     )
  choice = input('請選擇功能編號(q退出)>>>:').strip().lower()
  if choice == 'q' : break
  if not choice in user_func_dic:
    print('錯誤輸入')
    continue
  user_func_dic.get(choice)()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。