c-jump,一款用來輔助教導程式語言觀念的桌上遊戲,你是資訊人嗎?讓你遙想剛開始學寫程式的那些日子。
c-jump
滑雪&滑雪板競賽
玩法
介紹
靠著玩遊戲來探索電腦程式設計的原理
c-jump是一款歡樂的家庭遊戲,讓程式語言如C、C++、Java的學習者能因此受益。
沿著版圖移動,進入迴圈、條件分支與switch的陳述式,玩家會得到完整程式的實際經驗。瞭解電腦內部動作對瞭解軟體是什麼是絕對有必要的。靜態的程式會產生電腦內動態的程序。在玩這款遊戲過程中,玩家可以看到這個程序的運作。
玩家人數
2到4位玩家
年齡
年齡11+
配件
一張遊戲版圖、一粒骰子、以及代表每位玩家滑雪者的成套各色棋子。
遊戲目的
第一位讓所有滑雪者滑過終點線的玩家便是贏家。
設定
滑雪者在起始處排好並且沿著滑雪道競賽,遵循每位玩家的擲骰結果與版圖規則。
在版圖上的格子以正方形表示。每個方形有一個規則的陳述式,從程式語言那邊所借用而來。分號;會把多個規則分開來。
int x;
關鍵字’int’創造整數的變數’x’。在遊戲中,’x’代表骰子上所擲出的數字。舉例來說,如果玩家擲出5,那麼x就會變成5。從這個位置開始,滑雪者根據骰子上所擲出的數字來往下滑。
int main()
“Main”是版圖上藍色滑雪道的名字。所有的電腦程式都有名為’main’函式。函式定義電腦操作。滑雪者可以往下滑的步數為骰子擲出的數字。
{
}
左大括號’{‘表示滑雪道的開始。右大括號’}’則結束此滑雪道。這些括號不需要特別的計算,並且可以被視為空的登陸空間。
進行遊戲
玩家擲骰並且移動他的一名滑雪者,一邊數著方格的數量。在遊戲中每位玩家可以操控一名以上的滑雪者。在版圖上有著相同顏色的多位滑雪者時,玩家可以選擇任一名滑雪者來移動。
在移動之前,如果滑雪者一開始在一個有著運算陳述式的格子的話,玩家應該計算步數來取代骰子擲出的步數。舉例來說,
x+2; 代表’加2到x上’。玩家必須把’x’取代成骰子上擲出的數字加2。如果玩家擲5,那麼步數就會變成7:2+5=7。
相同的規則適用在其它有著算數式的陳述式上:
‘6-x;’ 代表’從6減去x’。
‘2*x;’ 代表’2乘上x’。
‘x+x;’ 代表’x加上x’。
x/x; 代表’x除以x’。除以本身的數字等於一。因此,玩家總是從這位置往前移動一格。
x++; 代表’x增加一’。玩家應該加一到骰子上所擲出的數字。舉例來說,如果數字擲出是4,算出來的步數便是5:
4+1=5。
x--; 代表’x減去一’。玩家應該把骰子上所擲出的數字減一。舉例來說,如果數字擲出是一,它變成0:1-1=0。如果玩家擲1,滑雪者在該回合不能移動。
If(x==1) 代表’如果x等於一’。兩次等於的符號’==’會比較兩個數字是否相等。
當骰子擲出的數字等於一的時候,條件’x==1’為真。在其它所有情況下這條件為假。
當這條件為真時,滑雪者進入’if’右邊的橘色滑雪道。在進入’if’的通道之後,玩家被獎賞一個免費的擲骰並且只可以移動相同的滑雪者,當每位玩家使用超過一個棋子的時候。
當這條件是假的時候,滑雪者必須繼續往下移動,沿著藍色軌道。
相似的規則適用在版圖上所有其它的’if’陳述式:
‘if (x > 1) ’代表’如果x是大於一’,2、3、4、5、6時為真,然後1是假。
‘if (x < 5) ’代表’如果x是小於五’,1、2、3、4時為真,然後5與6則是假。
else
此‘else’ 關鍵字表示當先前’if’陳述式為假的時候應該遵循的一個通道。在此位置,滑雪者根據骰子上所擲出的數字移動。
while(x < 4) 代表’當x小於4時’。關鍵字’while’用與’if’相同的方式來檢查條件。在’while’通道尾端的橘色箭頭指回’while’格,讓滑雪者可以作一個迴圈。
當條件’x<4’為真時,滑雪者進入’while’通道,根據骰子所擲出的數字來報走的步數。玩家接著被獎賞一個免費的擲骰並且應該再次移動相同的滑雪者。
當這條件是假的時候,滑雪者必須沿著藍色軌道繼續往下移動。
while (x > 0)
同樣的規則適用在版圖上其它’while’陳述式。舉例來說,’while(x>0)’ 代表’當x大於零時’。因為骰子上的任何數字都會大於零,這條通道必須總是讓在此位置開始的滑雪者進入。
當從任何迴圈中離開時,滑雪者應該繼續往下滑,沿著藍色軌道。
goto jump; 關鍵字’goto’讓滑雪者跳到有標籤的方格’jump:’。’jump’是一個給予版圖上特定位置名字的標籤。標籤讓’goto’陳述式可以跳到程式中各個地方。在這些位置時,滑雪者根據骰子所骰出的數字來移動。
switch(x){ 從’switch’陳述式位置開始,滑雪者移動到它其中一個標籤處。如果骰子上擲出的數字是1、2或3時,滑雪者應該分別移動到標示’case 1:’、’case 2:’、’case 3:’的方格。玩家被獎賞一個免費的擲骰並且再次移動相同的滑雪者。如果玩家擲出4、5、6,滑雪者沿著’default’通道。
break; 關鍵字’break’創造出一個迴圈或一個’switch’的出口。在此位置,滑雪者移動骰子上所擲出的格數。
continue; 關鍵字’continue’迫使滑雪者退回’while’。滑雪者根據骰子上所擲的數字來移動。如果在這次移動中超過一步,滑雪者離開迴圈並且沿著藍色軌道。
return x;} ‘return’陳述式讓滑雪者返回滑雪基地。不管擲出哪個數字,滑雪者會穿過終點線。
結束遊戲
要完成目標,滑雪者必須要用剛好的步數來穿過終點線,把終點位置算做一個方格。如果步數太大,玩家必須選擇另一名滑雪者,或跳過這回合。