• 沒有找到結果。

第三章 數位化數學遊戲介紹

第一節 填蛋糕圓盤遊戲

壹、幻方

《繫辭》雲:「河出圖,洛出書,聖人則之。」在宋朝之前,洛書的記述只 有文字。《禮記‧禮運》:「河出馬圖。」因此從孔子於古籍中記載得知河圖為伏 羲時代黃河出現一匹龍馬,其身上有文彩圖案,謂之龍馬負圖,伏羲將其文字記 載下來,因出於黃河,謂之河圖。另外於《論語‧子罕》:「子曰,鳳鳥不至,河 不出圖,吾已矣夫!」《尚書》則記述:「大玉,夷玉,天球,河圖在東序。」而 洛書則傳說於黃帝時代時,在洛水浮出一隻神龜,其背甲有九宮花紋上有數字,

黃帝記之謂之洛書。

九宮圖實物最早發現於西漢,1977 年中國考古學家在安徽阜陽縣雙古堆西 漢古墓中發現漢文帝七年(前 173 年)的太乙九宮佔盤,乃是中國漢代幻方的實 物。東漢《數術記遺》也有記載。在宋朝之前,太極與河圖洛書的記述只有文字,

一直到道家一代宗師陳摶才提出了太極、河圖、洛書的圖案。陳摶首創「龍圖易」

融合了漢朝至唐朝的九宮學說以及五行生成數的理論,提出圖像,名之為龍圖。

之後北宋的劉牧又將陳摶的龍圖區分為「河圖」「洛書」兩種圖式:將九宮圖稱 為「河圖」,五行生成圖稱為「洛書」。南宋時蔡元定則將它改變過來,反將九宮 圖稱之為「洛書」而五行生成圖稱之為「河圖」。

南宋大學者朱熹則支持蔡元定的學說,並將記於《周易本義》卷首,確立了

「圖九書十」「書九圖十」之分歧,「圖十書九」成為南宋以來之通用理論。後來 陳摶以降認為河圖洛書的洛書代表九宮圖,為 1,…,9 這 9 個數,幻方之數字 排列極為奧妙──邊行數之和相等,邊列數之和相等,邊行數之和+邊列數之和=

中行數之和+中列數之和,參照洛書的數字運行規則,按“始於中下,右下斜行,

出外轉內,遇阻降二"之法,可以組合其餘奇數幻方。將數列依其序號排列,則 會發現:邊行數之和相等,上下次行數之和相等,餘此類推;邊列數之和相等,

上下次列數之和相等,餘此類推;邊行數之和+邊列數之和 = 次行數之和+次列 數之和(餘此類推)= 中行數之和+中列數之和,而三行、三列以及兩對角線上 各自的數之和均為十五。

南宋數學家楊輝著《續古摘奇演算法》把類似於九宮圖的圖形命名為縱橫 圖 ,書中列舉 3、4、5、6、7、8、9、10 階幻方。 其中所述三階幻方構造法:

「九子斜排,上下對易,左右相更,四維挺出,戴九履一,左三右七,二四為肩,

六八為足」,比法國數學家 Claude Gaspar Bachet 提出的方法早三百餘年。

幻方常數或幻方和是指一個幻方中任一行、任一列或對角線的和。 例如以 下的三階幻方的幻方常數是 15。「幻方常數」或「幻方和」一詞也可以延伸到幻 星 ( Magic star )或幻立方 ( Magic cube )中。若一 n 階幻方是由 1 到 n 2 的整數組成,則其幻方常數只和 n 有關,

其數值為 以下是整數 1 到 k 的和

若要計算幻方中所有數字的和,令 k = n 2 ,因此和為 n 2 (n 2 +1)/2,

因為幻方共有 n 列,每列的和相同,和除以 n 就是幻方常數。 以下是 n 為 3,4,

5……時,由整數 1 到 n 2 組成 n 階幻方的幻方常數:15 , 34 , 65 , 111 , 175 , 260 , 369, 505, 671, 870, …

一個將幻方改變而成的遊戲叫「搶十五」,為兩人對戰遊戲。玩家輪流從 1

~9 中選擇一個數字,被挑走的數字不能再被選擇,看誰可以從自己所選的數字 中挑三個加起來等於 15,誰就獲勝。在遊戲中 1 到 9 中的三個數字加起來要等 於 15,總共有下列八種方式:

1+5+9=15; 1+6+8=15; 2+4+9=15; 2+5+8=15;

2+6+7=15; 3+4+8=15; 3+5+7=15; 4+5+6=15。

玩家要獲勝的條件是所選的數當中,有三個數加起來的和等於15,也就是要看誰 可以先在九宮格中連成一線。

貳、圈叉遊戲 一、遊戲介紹

圈叉棋,英文:tic-tac-toe,別名:圈叉遊戲。是一種遊戲,3*3 的 9 個方格子,先下者畫圈,後下者畫叉,每人可以在任意沒有對方棋子的封閉方格 裡下一次,看誰先連成一行(一列,斜線)三個就判勝。由於圈叉棋規則簡單,

在任何地方都可以玩,所以是打發時間的有效的休閒遊戲。現在幾乎全球人都了 解圈叉棋。這種遊戲實際上是由第一位玩家所控制,第一位玩家是攻,第二位玩 家是守。第一位玩家在角位行第一子的話贏面最大(見圖一),第二位玩家若是 在邊,角位下子,第一位玩家就可以以兩粒連線牽制著第二位玩家,然後製造「兩 頭蛇」。

圈叉棋 圖一

先玩者經常誤以為「將第一個圓圈畫在正中央」是最佳的策略,事實上並非 如此,而是應該將第一個圓圈畫在角落才有最大的勝算。例如以下四種開局,先 玩者都可以製造出雙頭蛇

而取勝:

因此,在這種開局之下(含另外三種對稱性的開局),後玩者只能以下列方 式(將 × 落在正中央)來對應既使是這樣的對應,先玩者還是可以在下一手誘 導對手犯錯,下圖就是最常見的犯錯模式:將 × 落在左上角是合乎直覺的想法,

但這樣反讓先玩者取得雙頭蛇。

(引自許志農,2012,p3) 這種遊戲的變化簡單,常成為博弈論和遊戲樹搜尋的教學例子。這個遊戲只 有765個可能局面,26830個棋局。如果將對稱的棋局視作不同,則有255168個棋 局。由於這種遊戲的結構簡單,早期這遊戲就成為了人工智慧的一個好題目。學 生都要從既有的玩法中,歸納出遊戲的致勝之道,並將策略演繹成為程式,讓電 腦與用戶對弈。世界上第一個電腦遊戲,1952年為EDSAC電腦製作的OXO遊戲,就 是以該遊戲為題材,可以正確無誤地與人類對手下棋。

將洛書的邊去掉就成為井字上填有1到9數字的圖形,且行、列與對角線的和 總是15。當我們將這個圖形與一盤圈叉遊戲對照時,不難發現:連線的三個○所 對應的數字和8+1+6等於15。因此,可以將圈叉遊戲想成從1, 2, 3, 4, 5,

6, 7, 8, 9 的九個數字中輪流取數,誰先取到有三個數字的和為15 者勝(和 為15 代表連線的意思)。(引自許志農,2012,p4)

二、製作數位化圈叉遊戲

胡炳生(1994)認為特殊化原則是解題思考的三原則之一,解題初步可先把大 問題變成幾個簡單的小問題,並考慮最簡單的特殊狀況或是將問題分成幾種不同 狀況討論。而Flash在程式設計時使用函數,也和這個想法相符和。接下來我們 介紹「圈叉遊戲」時如何將一個遊戲分成許多小問題,並使用函數將這些小問題 一一解決,統整成為我們的遊戲。茲將「圈叉遊戲」分成四個大功能來設計:

(一)玩家點選九宮格子可以分別顯示圈或叉

每次玩家點選時,將總計數參數加 1,再將總計數參數除以 2 的餘數來 判 斷是甲或是乙,控制指導語影片。並利用參數使點選的格子內顯示出甲選的 為圈,乙選的為叉。

(二)檢查玩家選了哪些九宮格子以判斷是否勝利

此功能還可再細分為兩個小功能,分別利用兩個函數來達成。

1.使用陣列儲存甲、乙所選的九宮格子數字及九宮格子的物件名稱,當中 儲存的數字可用來比較大小,並做九宮格子比序排列時的依據,而另一 陣列當中儲存的物件名稱,則作為控制元件動作時函數呼叫的依據,利 用參數及陣列的值決定如何控制九宮格子元件的動作。

2.利用玩家所選九宮格子數參數來看玩家的遊戲進行程度,以作為遊戲是 否進行勝利判斷的依據。

(三)勝利判斷

利用前面填蛋糕圓盤時所提過,九宮格子內填入幻方數字時,有 8 種勝利情 況,比對甲、乙所選九宮格子數字陣列,分為 3 個格子和 4 個格子兩種狀況。

在程式設計時使用「或」邏輯閘及巢狀 if 語法來達成 8 種勝利情況的判斷,

判斷屬於何種勝利狀況之後,再使用 8 種勝利專屬函數,配合前述判斷函數 及計時器將連線的九宮格子顯示不同顏色來表示勝利。

(四)其他功能函數

1.返回:配合返回鈕,將全部參數及陣列回歸初始狀態,並跳回前一頁。

2.重玩:配合重玩鈕,將全部參數、指導語影片、返回鈕、重玩鈕、九宮 格子及陣列回歸初始狀態,重新設定所有物件的監聽。

3.勝利和平手:和前述判別甲、乙的功能一起控制指導語影片,為達成程 式設計內部順暢,使用繞道的概念,利用計時器於 20 毫秒後控制指導語 影片,並關閉所有九宮格子的監聽,甲、乙勝利時,分別加上甲、乙方

的勝利煙火施放。

4.關閉所有九宮格子監聽:為避免遊戲結束後玩家仍可點選操控九宮格子 元件,故獨立一個函數來控制關閉所有九宮格子監聽,之後有任何地方 要用到時,只要呼叫此函數即可。

5.隱藏或顯示幻方數字:為了破解填蛋糕圓盤遊戲的遊戲致勝技巧,需要 幻方與圈叉遊戲的對照,故於此遊戲面板右上角指導教授與遊戲設計者 處,製作一隱藏按鈕,並設定一函數當每次玩家點選時,將計數參數加 一,再將計數參數除以二的餘數,來作為隱藏或顯示九宮格子中的幻方 數字的控制依據。

參、填蛋糕圓盤遊戲 一、遊戲介紹

有了幻方與圈叉遊戲的對照,我們來介紹「填蛋糕圓盤」遊戲。有編號 1

~9 的九塊扇形蛋糕,如下圖所示,第一塊蛋糕的頂角為 24 度,第二塊蛋糕的 頂角為 48 度,第三塊蛋糕的頂角為 72 度,依此類推,也就是說,最小的第一 塊蛋糕只包含一片蛋糕,…,而最大的第九塊蛋糕由九片蛋糕組成:遊戲開始時 對戰雙方甲、乙兩人各擁有一個空的圓形蛋糕拼盤,其半徑與每塊蛋糕半徑一 致,如下圖所示:

當某人所挑選的蛋糕中,可以選出三塊,而且剛好填滿他的空圓盤,此人就 是勝利者。三塊蛋糕剛好可以填滿空圓盤是指「這三塊蛋糕總共有十五片」的意 思。如果在遊戲的過程中,你想要的蛋糕塊已經被拿走,那麼你必須找到另外的 蛋糕組合方式,用你已經選擇的蛋糕塊和剩下的蛋糕塊,湊成十五片。但是一定

當某人所挑選的蛋糕中,可以選出三塊,而且剛好填滿他的空圓盤,此人就 是勝利者。三塊蛋糕剛好可以填滿空圓盤是指「這三塊蛋糕總共有十五片」的意 思。如果在遊戲的過程中,你想要的蛋糕塊已經被拿走,那麼你必須找到另外的 蛋糕組合方式,用你已經選擇的蛋糕塊和剩下的蛋糕塊,湊成十五片。但是一定