賽車

遊戲介紹

遊戲規則

  • 基礎規則:若車子之間發生撞擊,則雙方皆淘汰出局。如果玩家因車速過慢離開遊戲畫面亦會被淘汰。遊戲最多可以四個人同時進行,有普通模式和金幣模式。
  • 單人遊戲
    • 普通模式:抵達終點。
    • 金幣模式:限時1分鐘,時間到可以看到自己吃到的金幣數量。
  • 多人遊戲
    • 普通模式:當有玩家抵達終點,或場上僅餘下一名玩家時則遊戲結束,並依結束或玩家死亡時的距離進行排名,距離較遠者勝。
    • 金幣模式:在1分鐘內,吃到最多金幣的人獲勝,金幣數量相同則以行駛距離較遠者勝

遊戲場景

整體遊戲畫面如下,左半部是即時遊戲畫面,右半部是玩家相關資料 放大左邊的遊戲場景來看

先分成四個大框,分別是

  • :遊戲匡。 整個遊戲畫面尺寸是1000*700,遊戲物件的座標皆為物件的左上角。
  • :玩家車子。車子大小是60*30,車速範圍落在0-15,怠速狀態會落在9-12之間。
  • :電腦車子。車子大小是60*30,車子從畫面上方或下方出現,不會左右移動切換車道。前方有車(不論是電腦還是玩家)會剎車減速,否則不斷加速至最高速,每台車最高速度皆不一樣。
  • :金幣。金幣大小是30*31,隨機從畫面上方出現,以5 pixel/frame的速度下降。電腦車子碰到金幣時金幣不會消失。
  • 在遊戲畫面中,可以獲得以下資料
    • 遊戲狀態
    • 玩家車子位置
    • 電腦車子位置
    • 金幣位置
    • 車道的位置
    • 遊戲結果

特殊積木介紹

(結合遊戲畫面與積木,一同說明)

MLPlay - 架構積木

整個MLPlay的程式流程基本上遵循此架構,內部包含三大部分,分別是初始化、更新以及重置。 此積木定義了遊戲AI的運作架構。

  • 初始化:這部分的程式會最先被執行。通常會用來獲取最新的相關資料或是將後續會用到的變數再次正確給值。在寫程式的時候初始化是是特別重要的,因為必須確保你所使用的不論是變數或是獲取的資料都是正確且最新的。
  • 更新:這部分的程式會在遊戲過程中不斷重複執行,直到遊戲結束。在此遊戲中,就是每一幀(frame)更新時,會重新再執行一次的部分。 幀(frame):就像是翻頁漫畫/翻頁動畫一樣,每一張紙就是一幀,動畫或是遊戲就像是翻頁漫畫一樣由一幀一幀的畫面所組成的。
  • 重置:程式結束時最後會執行的部分,執行完畢遊戲就全部結束了,通常會用來改變一些程式狀態。

取得資訊 - 取得積木

取得積木是用來獲取遊戲場景(frame)中的資訊,例如:車子位置、金幣位置等。跟第二項初始資訊不一樣的地方是取的積木中的資料會是隨著每個frame的不同而有所更改的。

回傳遊戲行動 - 行動積木

回傳行動積木是基於前面所獲得的資訊,你對車子行為所下的判斷,控制車子加速或是減速、往左或是往右移動等等,抑或是在遊戲結束的時候回傳重設的命令。

狀態積木

遊戲積木是用來取得現在遊戲狀態,遊戲狀態分為三種,分別是存活、通關跟失敗。所以在基本框架中的更新中,對應的遊戲狀態通常會是存活。

常數積木

常數積木是用來取得遊戲場景中的其他資料,例如:場景的邊界、車子的長寬、金幣的長寬等。

小試身手 - 賽車

題目: 請先宣告一個變數為玩家編號,以及一個空的其他車輛位置清單。 在遊戲過程中確認其他車輛的最新位置,以及自己的位置,如果別人得位置不在你的前方,就回傳指令加速。

放圖

遊戲策略

| 即將推出

使用Python

| 即將推出