2021年7月4日 星期日

類別的引用

學習目標:
  • 了解 Python 類別引用與類別方法的使用方式!

類別引用方式:
  1. 使用指令模式,利用 import 來引用 random 類別:
    >>>import random
    >>>random.random()
    
    PS:產生一個大於等於0,但小於1的小數!
  2. 使用指令模式,使用 random 類別的其它幾個常見亂數函數(1):
    >>>import random
    >>>random.randrange(3)
    1
    >>>random.randrange(1,7)
    3
    >>>random.randrange(1,9,2)
    3
    
    PS: random.randrange(stop)、random.randrange(start,stop)、random.randrange(start,stop,step),其中的 stop 是永遠不會產生的數字!
  3. 使用指令模式,使用 random 類別的其它幾個常見亂數函數(2):
    >>>import random
    >>>random.randint(1,6)
    1
    >>>nums = [1,2,3,4,5,6]
    >>>random.choice(nums)
    3
    >>>random.shuffle(nums)
    >>>print(nums)
    [4, 1, 3, 2, 6, 5]
    
    PS: random.randint(a,b): 產生一個大於等於a,但小於等於b 的整數!  random.choise(a): 從 a 這個陣列中,隨機取一個整數值!  random.shuffle(a): 將 a 這個陣列隨機重新排列!
修改遊戲主要程式內容:
  • 修改程式內的迴圈內容:main.py
    # 引用 random 類別中的 randrange() 函數
    from random import randrange
    
    # 要求玩家要輸入遊戲人數
    players_num = eval(input("請輸入玩家人數:"))
    
    # 設定一開始的遊戲幣
    moneys = []
    
    # 設定玩家名單
    players_name = []
    
    # 按照遊戲人數,輸入玩家名稱,以及增加遊戲幣數量
    for i in range(players_num):
        # 要求玩家輸入玩家名稱
        players = input("請輸入玩家名稱:")
        # 將玩家名稱列入玩家資料陣列
        players_name.append(players) 
        # 增加遊戲幣數量
        moneys.append(20000) 
    
    # 輸出資料
    print(players_name[0])
    print(moneys[0])
    
    # 設定玩家順序值
    i = 0
    
    # 開始進行遊戲
    while True:    
    ##### a.)
    ##### b.) 擲骰子
        newstep = randrange(1,6)
        print(players_name[i] + "擲骰子:" + str(newstep) + " 點")
        print(players_name[i] + "前進中...")
    ##### c.)
    ##### e.)
        # 輪至下一位玩家
        if (i < players_num):
            i = i + 1
        else:
            i = i - players_num
    
        players_num = players_num - 1 # 測試 while 迴圈用
        print(players_num)
        
    ##### f.) 結束遊戲條件
        if (players_num <= 1):
            print("遊戲結束")
            break