08貓狗賽跑


【遊戲名稱】貓狗賽跑

 

【玩法】

這是一場左手與右手的比賽,玩家首先設定移動倍率之後,然後玩家必須使用右手←與→按鍵;左手ad按鍵輪流點擊才能夠讓狗狗與貓咪根據不同的規則前進。而狗狗與貓咪會根據下列對應的機會,決定移動時採用哪一項規則,以模擬真實的情形。

注意:

1.      玩家必須交互點擊左移←與右移→或是ad按鍵才可以讓狗狗或是貓咪前進。

2.      機會是指某個事件出現的平均次數。通常會透過使用隨機數模擬機會所造成的不確定性而成為遊戲的精彩之處。換言之,50%相較於20%而言,表示前者發生的機會高於後者。而平均的基礎是根據很大量的作動次數才能得到所謂的平均發生次數。以貓咪為例,10次的作動中平均會出現5次的「快速移動」,2次的「滑一跤」與3次的「慢速移動」。因此參加競賽的選手們可以透過隨機數來模擬這些事件的發生情形。

 

動物

 

移動類型

機會

實際移動

狗狗

規則1

快速移動

50%

向右移動3個單位

 

規則2

滑一跤

20%

向左移動6個單位

 

規則3

慢速移動

30%

向右移動1個單位

貓咪

規則1

睡覺

20%

不移動

 

規則2

大跳躍

20%

向右移動9個單位

 

規則3

大滑一跤

10%

向左移動12個單位

 

規則4

小跳躍

30%

向右移動1個單位

 

規則5

小滑一跤

20%

向左移動2個單位

 

【素材】

狗狗:dog.sprite

貓咪:cat.sprite

背景圖:background.png

 

【配分】

分數區分為「整體程式控制」與「角色控制」。程式控制主要在於是否能夠正確地初始化與結束程式的執行。角色部分則包括狗狗、貓咪與舞台三個部份,重點在於是否能夠給予完整的控制讓它們都能夠扮演好自己的角色。相關的配分如下:

5     刪除貓咪角色,設置舞台為 background.png,並能夠正確顯示舞台。

5     新增狗狗角色(匯入dog.sprite)並出現在(-190, -80)的位置。

5     新增貓咪角色(匯入cat.sprite)並出現在(-190, 80)的位置。

10   不斷地依序按下左移(←)與右移(→)鍵,可以讓狗狗前進。移動時切換狗狗的造型(dog2-c, dog2-b)
提示:可以透過「直到前都等待著」指令來完成。

10   不斷地依序按下ad鍵,可以讓貓咪前進。移動時切換貓咪的造型。(cat1-a, cat1-b)


15   狗狗能夠使用隨機數按照題目所指定的比例來決定採用的規則。
提示:

1.  利用「在110間隨機選一個數」產生一個110之間的隨機數,然後將這個數字依照規則來對應到所屬的機會,例如以狗狗而言,50%的機會就可以透過規定當產生15的數字時就採用「快速移動」的規則。圖示說明如下:

1

2

3

4

5

6

7

8

9

10

50%

20%

30%

快速移動

滑一跤

慢速移動

2.  建議透過變數來記錄這次所產生的隨機數,以為後續的判斷之用。

3.  建議將狗狗的程式碼區分為「按鍵的移動控制」與「隨機數的規則控制」兩部份,可以讓你更容易思考與完成遊戲的設計,同時透過廣播來驅動每次作動的隨機數情境模擬。

10   如上,貓咪也能夠使用隨機數按照題目所指定的比例來決定採用的規則。

10   能夠正確實作狗狗的3個規則,狗狗滑一跤時會說:「唉唷!!!」。(注意,上述兩題主要以機率分佈的實作為主,後續題目則以完成規則的要求為主。)

10   能夠正確實作貓咪的5個規則。注意:貓咪滑一跤時會說:「唉唉呦~」;睡著時,要能夠同時顯示(想)「ZZZ…」的字樣。

10   設定一變數,可以用來控制狗狗與貓咪每次移動的單位步數以改變遊戲進行的速率,即每次移動時的一個單位代表幾步,預設值為1

10   當狗狗或是貓咪抵達紅色終點線時,程式能夠判定到底是左手的貓咪還是代表右手的狗狗贏了這場比賽並顯示其結果,例如狗狗贏了!;同時也要結束程式的執行!提示:透過「碰到顏色」的判斷。


Comments