python 簡單的擲骰子猜大小


完成猜大小游戲

規則如下:
  投擲3個骰子,如果3個骰子之和小於10為小,大於等於10為大
步驟分解:

    • 請用戶輸入大或小(用0,1代替)
    • 投擲3個骰子,使用random庫中的randint函數生成骰點大小,並依次輸出骰點
    • 計算骰點大小,判斷用戶輸贏,並給出結果

代碼如下:

import random
# 篩子的定義部分 圖視化輸出骰子 
dice_tpl= '''\
 ┌───┐ , ┌───┐, ┌───┐, ┌───┐, ┌───┐, ┌───┐
 │   │ , │ ● │, │●  │, │● ●│, │● ●│, │● ●│
 │ ● │ , │   │, │ ● │, │   │, │ ● │, │● ●│
 │   │ , │ ● │, │  ●│, │● ●│, │● ●│, │● ●│
 └───┘ , └───┘, └───┘, └───┘, └───┘, └───┘'''
dice_lines = dice_tpl.split('\n')           #根據 \n 拆分 
for m in range(5):
    dice_lines[m] = dice_lines[m].split(','
dice = ['','','','','','']
for n in range(6):
    dice[n] = dice_lines[0][n]+'\n'+dice_lines[1][n]+'\n'+dice_lines[2][n]+'\n'+dice_lines[3][n]+'\n'+dice_lines[4][n]
print('''\n-----歡迎來到擲骰子猜大小游戲------
規則如下:
  投擲3個骰子,如果3個骰子之和小於10為小,大於等於10為大\n ''')
use = int(input("請猜測結果1(大)或0(小):"))
a1 = random.randint(1,6)
a2 = random.randint(1,6)
a3 = random.randint(1,6)
print("\n第一個骰子結果為", a1)
print("第二個骰子結果為", a2)
print("第三個骰子結果為", a3)
print(dice[a1-1])
print(dice[a2-1])
print(dice[a3-1])
sum = a1 + a2 + a3
if sum < 10:
    flag = 0
    print("輸出結果為小\n")
else:
    flag = 1
    print("輸出結果為大\n")
# 調用函數來實現擲骰子 
#print('本次擲骰子的結果為:')
if use == flag:           
    print('你猜的結果正確')
else:
    print('你猜的結果錯誤')

主要用到字符串的分割相關知識

下面是骰子的模版定義,分析其特征,利用str.split函數:

  • 先用換行('\n')分隔符拆分為行,組成list
  • 再用換行(',')分隔符拆分每個骰點(1~6)的部分

將每個骰點(1~6)的部分拼接,形成每個骰點的list

代碼如下:

dice_tpl= '''\
 ┌───┐ , ┌───┐, ┌───┐, ┌───┐, ┌───┐, ┌───┐
 │   │ , │ ● │, │●  │, │● ●│, │● ●│, │● ●│
 │ ● │ , │   │, │ ● │, │   │, │ ● │, │● ●│
 │   │ , │ ● │, │  ●│, │● ●│, │● ●│, │● ●│
 └───┘ , └───┘, └───┘, └───┘, └───┘, └───┘'''
dice_lines = dice_tpl.split('\n')           #根據 \n 拆分 
print("根據\\n拆分完后的結果:\n",dice_lines)
#    將每個都進行 拆分 例:dice_lines[2] = dice_lines[2].split(',')
for m in range(5):
    dice_lines[m] = dice_lines[m].split(',')
dice = ['','','','','','']
# 通過字符串拼接 給dice[i]] 賦值   要認真找拼接的規律 
for n in range(6):
    dice[n] = dice_lines[0][n]+'\n'+dice_lines[1][n]+'\n'+dice_lines[2][n]+'\n'+dice_lines[3][n]+'\n'+dice_lines[4][n]
for i in range(6):
    print(dice[i])
 
備注:文檔格式問題,傳的代碼可能會自動換行,如果想要ctrl+c 代碼的話,
記得把dice_tpl中 換行符都刪掉,要達到以下效果即可順利運行

 

 

 


免責聲明!

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



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