直接破題,我們這次就是要談《牛頭王》中的演算法。
桌遊中隨處都有的演算法
其實桌遊在許多領域中都很值得被拿來應用,或者說,遊戲的廣大世界,讓桌遊在現代出現的素養議題上擁有龐大的資料得以參考與應用,畢竟遊戲許多時候,就是從生活經驗、抽象思考、邏輯謎題而來的嘛。
今天我們要來介紹的就是《牛頭王》在資訊教育上的應用。
資訊教育中會介紹到的其中一個內容即是演算法,演算法簡單地說就是在程式之前我們要給予的解決問題的邏輯、要告訴程式我們計劃怎麼去操作這個指令,這也是我們人類在生活中隨時都會遇到的情況,更是在撰寫程式的過程中設計者必須清楚的概念。不過事實上,因程式語言的不同,即便演算法相同,也可能會寫出不同的內容,所以有些時候很難單純區分程式或者演算法之間的界線;即使如此,我們仍可以就演算法的相關演進進行不同的討論。
演算法比你想像的還充斥著我們的生活
現在馬上要你說出一個演算法,可能頭腦會佈滿問號,那就講一個很單純地「排序」,大家可能比較好想像。這是書櫃中可能會有的叢書,為了方便,出版社也會依照編號進行發行,讀者也能依照編號做排序。
上面分別是排好順序以及亂掉順序的書,如何將書本重新照順序排好,就是演算法的一種哦!這樣的演算法生活,有沒有超過你的想像呀?《誰是牛頭王》的遊戲中,也有許多這樣的數字卡牌,會需要大家進行排序。
牛頭王的排序法
排序法有非常多種,不過不是我們今天要討論的內容,我們要來聊聊,牛頭王的遊戲究竟如何可以討論到排序。
牛頭王的規則是,每個玩家在每一回合中選好一張牌蓋著,接著玩家會一起打開覆蓋的牌,並且依照玩家出牌的大小進行放牌的動作,如果沒得放或者當那一列的牌數超過五張,玩家就必須將該列的牌都收回來。
沒錯!你發現了嗎,牛頭王整場遊戲都在進行「排序」的動作!(當然還有其他的概念,在此不多贅述囉)
從遊戲中實際來看一下吧!
上述是先從遊戲卡中簡單的排序來更認識牌序,不過實際的遊戲規則可是又再複雜了一點,遊戲中會從出牌比較小的玩家開始放,並且要將牌放在離自己最近的數字牌旁邊(也就是:絕對值最小),規則看起來很簡單、就是不斷地排順序,但其實有很多細緻的遊戲體驗是文字看不出來的哦!
先用下面這張遊戲畫面來快速說明一下遊戲中要考慮的事情吧。
遊戲中玩家要考慮的順序是:
- 先判斷誰出的牌最小,數字最小的人先開始放牌。
- 放牌的時候,要將牌放在與檯面上最接近的牌旁邊。
- 若自己放的那一列超過五張(自己放的牌是第六張)時,玩家要將該列的牌收走。
仔細回顧一下,剛剛玩家遊戲過程中的思考邏輯,和最上面給大家練習的「生活中有的排序」是不是有些雷同呢?
- 先判斷哪本書的編號最小,數字最小的書先開始放。
- 放書的時候,要將書放在與自己編號最接近的書本旁。
- 若自己放的那一櫃超過五本時,書本就要移動到其他櫃。
當然不同情況下要考慮的排序是很不同的,那演算法和一般的指令書不同的是,演算法是以數學函式為表現基礎的概念,因此從前期的體驗遊戲、到後期以分析遊戲為主,每個階段都會有不同的演算法任務要完成呢。
先別管這麼多了,就來玩吧!
說了這麼多,想必也有人看到眼花,但總歸一句話,《誰是牛頭王》是個聰明的小遊戲,遊戲節奏快、規則簡單、思考層面又可以很廣,同時也包含了遊戲中對其他玩家「人性」的判斷,不會真的很死板板地變成一個單機遊戲(不用其他玩家也可以玩)。
非常推薦這款遊戲給大家唷!
當然如果自己現實中找不到朋友玩像現在疫情嚴重,大家也可以到 boardgame_arena 遊玩,裡面也有牛頭王的PK區哦。
文/林佳瑩
※ 圖片來源:BGG、學次方
※ 參考資料來源:《演算法圖鑑》