Boop Game Requirements

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

COMPUTER SCIENCE 2024 SPRING 2024.04.

22

Boop Game Strategy Requirements

1. Introduction
本文件簡述本學期計概課程 Final Project 的需求,並說明整體 Boop 遊戲平
台以及同學所設計撰寫的 Boop 策略程式在遊戲平台中的應有責任
(Responsibility)。由於同學的策略將會透過平台與其他策略對戰,所以進行策
略實做時,必須遵守溝通介面的規定,以確保同學的策略程式能與平台溝通。
本文件定義須遵守的溝通介面,請同學務必遵循溝通介面來完成策略程式的撰
寫。

2. Final Project Requirements


請同學依照助教所規定之條件及溝通介面以 C Programming Language 進行
Boop 遊戲策略程式的設計及實作,並且能夠使用該策略程式成功地在助教所
提供的平台上進行遊戲。同學所設計撰寫的遊戲策略程式為每回合執行一次的
下棋決策,以下詳述該策略程式的需求。

(1) 本次 Final Project 的 Boop 遊戲,遊戲平台會讓兩位玩家使用各自的策


略程式進行遊戲。

(2) 策略程式會預期從執行時的執行參數得知 場上貓咪分布檔案 (board.txt)


與 決策檔案 (step.txt) 的路徑,以及己方貓咪顏色。

(3) 策略程式會讀取 場上貓咪分布檔案 (board.txt) 的內容,得知目前的棋盤


狀態。

(4) 依據目前的棋盤狀態,該策略程式會決定此回合欲執行的動作內容,並依
格式規定將欲執行的動作內容寫入至 決策檔案 (step.txt) 中,最後回傳
0 (return 0) 結束程式。

註: 策略程式不需要更改 board.txt 中的內容。

1
COMPUTER SCIENCE 2024 SPRING 2024.04.22

3. Game Rules
本節說明遊戲平台進行時的規則,同學的策略程式需依照 Boop 遊戲規則進
行決策(Boop 遊戲規則請參考 Boop Game Introduction 文件),一旦有犯規
情形發生,犯規策略將被強制判輸,由另一方策略獲勝,犯規狀況如表一所示:

Title Description
編譯錯誤 編譯錯誤。
超時 策略程式進行該回合動作的時間超過 5 秒。
無 step.txt 策略程式執行完畢後沒有 step.txt 檔輸出。
step.txt 格式錯誤 step.txt 格式與文件定義不同。
放貓位置已有貓 決策檔案 (step.txt) 之放貓位置在棋盤上已存在合法
的貓。
放貓位置超出定義域 決策檔案 (step.txt) 之放貓位置超出文件中位置之定
義域。
放置數量不足的貓 手中未持有決策檔案 (step.txt) 之欲放置的貓。
放貓大小超出定義域 決策檔案 (step.txt) 之放貓大小超出文件中貓大小之
定義域。
拿取對手的貓 決策檔案 (step.txt) 之拿取貓的位置為對手的貓的位
置。
應取貓而未取貓 當在未達成勝利條件時,有至少三隻己方的貓達成連線
或棋盤上存在八隻己方的貓,策略程式卻未輸出拿取貓
的位置。
取貓位置超出定義域 決策檔案 (step.txt) 之拿取貓的位置超出文件中位置
之定義域。
取貓數量有誤 決策檔案 (step.txt) 之拿取貓的位置數量,與能夠拿取
貓的數量不符合。
拿取不可拿取的貓 決策檔案 (step.txt) 之拿取貓的位置為己方不可拿取
之貓的位置(己方的貓未達成三隻連線或場上未有八隻
己方的貓)。
取貓位置沒有貓 決策檔案 (step.txt) 之拿取貓的位置沒有貓。

表一、犯規狀況

2
COMPUTER SCIENCE 2024 SPRING 2024.04.22

4. Overall Architecture

圖一、遊戲平台架構圖

圖一呈現整體的 Boop 遊戲平台的運作方式,由助教提供的遊戲平台會負


責整個遊戲進行的控制、遊戲規則的仲裁以及遊戲畫面的呈現 (此部分由助
教提供),而 Strategy 則為學生所撰寫的遊戲策略程式。

在每個回合,遊戲平台會要求 Strategy 進行決策,並提供 Strategy 目前的


場上貓咪分布檔案 (board.txt) ,Strategy 要依據該檔案所提供的資訊進行決
策,並將該決策寫入 決策檔案 (step.txt) 當中,最後再回傳 0 表示已完成
決策。

完成決策後,遊戲平台會檢視 決策檔案 (step.txt) 的內容,並決定是否出現


犯規、是否已分出勝負或是繼續進行遊戲。

5. Program Controlling Interface


同學的程式在被成功編譯後,Boop 遊戲平台會依以下指令在助教提供的
Yellow Server 環境下以 command line 執行程式。

./[學號].out [color] [board.txt] [step.txt]

▪ [color]: 此策略程式所能操控的貓咪顏色,資料值為 gray 或 orange,


gray 代表策略該回合為灰方,orange 代表策略該回合為橘方。
3
COMPUTER SCIENCE 2024 SPRING 2024.04.22

註: 灰方的玩家為先手。
▪ [board.txt]: board.txt 的檔案路徑,此檔案描述當前場上貓咪的分布狀
況。
▪ [step.txt]: step.txt 的檔案路徑,策略程式須將該回合欲執行的動作內容
寫入此檔案中。

舉例來說:

./E12345678.out gray ./board.txt ./step.txt

代表執行 E12345678 學生的策略程式,以進行一次的下棋決策,其中:


▪ 此策略程式控制灰方的貓咪。
▪ board.txt 的檔案路徑為 ./board.txt。
▪ step.txt 的檔案路徑為 ./step.txt。

6. 棋盤介紹

在遊戲進行時,遊戲平台會將貓咪呈現在棋盤中。

▪ 棋盤如圖二所示,棋盤由左至右、由上至下的格子編號依序為 1 ~ 36。
若以圖中兩個不同顏色的貓作為範例:橘貓位於編號為 11 的格子、灰
貓位於編號為 14 的格子。

圖二、棋盤示意圖

7. Data Format
在遊戲進行時,策略程式與遊戲平台會透過兩個檔案進行溝通,分別是:場
上貓咪分布檔案 (board.txt) 與 決策檔案 (step.txt)。

4
COMPUTER SCIENCE 2024 SPRING 2024.04.22

▪ 場上貓咪分布檔案 (board.txt) 格式
場上貓咪分布檔案 (board.txt) 紀錄了目前場上貓咪的分布狀況。表二
是場上貓咪分布檔案 (board.txt) 中各個數值所代表的意義:

line description value


1~6 棋盤每一格所包含的貓,位置對應圖二。 0: 沒有貓
1: 該格為小灰貓
2: 該格為小橘貓
3: 該格為大灰貓
4: 該格為大橘貓
7 灰方手中貓咪數量,大貓數量,小貓數量。 0 ~ 8
8 橘方手中貓咪數量,大貓數量,小貓數量。 0 ~ 8
表二、board.txt 中的數值意義

圖三是場上貓咪分布檔案 (board.txt) 範例,代表在編號為 23 的格子


有一隻大灰貓,灰方手中有 7 隻小貓,橘方手中有 8 隻大貓。
line
1 0,0,0,0,0,0,
2 0,0,0,0,0,0,
3 0,0,0,0,0,0,
4 0,0,0,0,3,0,
5 0,0,0,0,0,0,
6 0,0,0,0,0,0,
7 0,7,
8 8,0,
圖三、board.txt 範例

註: 檔案當中每一行皆會以換行符號作為結束。

▪ 決策檔案 (step.txt) 格式

決策檔案 (step.txt) 為同學的策略程式需於其中寫入每回合欲執行的動


作內容的檔案。決策檔案 (step.txt) 的格式如下:
line
1 CatOrKitten,PutLocation,
2 TakeLocation,

5
COMPUTER SCIENCE 2024 SPRING 2024.04.22

表三是決策檔案 (step.txt) 中各個數值所代表的意義:

description value
CatOrKitten 表示玩家欲放置的是小貓或大貓。 1: 小貓
2: 大貓
PutLocation 玩家放置貓的位置。 1 ~ 36
TakeLocation 玩家選擇在晉升時移除的貓的位置(因被推 0: 不移除貓
出場外而移除的貓不須寫入),可能為一個 1 ~ 36: 欲移除的貓的
值或三個值。一個值代表移除一隻貓或不移
位置
除貓,三個值代表移除三個位置的貓。

範例:
不移除貓:0,
移除位置於 7 的貓:7,
移除位置於 11、16、21 的貓:11,16,21,
表三、step.txt 中的數值意義

圖四是決策檔案 (step.txt) 範例,代表策略在該回合欲放置一隻大貓在


編號為 27 的格子,並且不移除貓。

line
1 2,27,
2 0,

圖四、step.txt 範例

註: 檔案當中每一行皆會以換行符號作為結束。

8. 實作注意事項

▪ 在執行策略程式時,遊戲資訊檔案不一定與策略程式置於同一工作目錄。
為減輕同學判定遊戲資訊檔案位置之負擔,執行策略程式時,所傳入的
檔案路徑參數將直接指定「檔案路徑」。

▪ 在決定移動的棋子後,策略程式只需要更新 決策檔案 (step.txt) 內容即


可,不需要更新 場上貓咪分布檔案 (board.txt),場上貓咪分布檔案
(board.txt) 在遊戲進行中會由助教開發的遊戲平台負責更新內容。

▪ 特別注意事項:策略程式在獲得勝利之後,請同學不要再移除貓。

You might also like