作者boardgamehut (卡牌屋)
看板BoardGame
标题[规则] c-jump
时间Thu Mar 22 21:50:02 2012
c-jump,一款用来辅助教导程式语言观念的桌上游戏,你是资讯人吗?
这款游戏可以让你回想起刚开始学写程式的那些日子。
图文版:
http://bghut.pixnet.net/blog/post/36467799
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’陈述式让滑雪者返回滑雪基地。不管掷出哪个数字,滑雪者会
穿过终点线。
结束游戏
要完成目标,滑雪者必须要用刚好的步数来穿过终点线,把终点位置算做一个方格。如果
步数太大,玩家必须选择另一名滑雪者,或跳过这回合。
--
卡牌屋桌上游戏 0988-795784
新竹桌游馆:新竹市东山街85号 (新竹中学前) 03-5734115
台北专卖店:台北市忠孝西路一段50号25楼 (Kmall楼上) 02-23112981
花莲加盟店:花莲市自由街28-1号 (远百巷子里) 0916-082367
官方网站:
http://bghut.com 部落格:
http://bghut.pixnet.net
露天拍卖区:
http://class.ruten.com.tw/user/index00.php?s=boardgamehut
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.78.12
1F:推 joelll:终究,我的开箱文还是比你们的规则文慢…… 03/22 22:02
2F:推 FlameMkIII:糟糕, 看到标题就本能性的点进来了... 03/28 01:51