跳轉到內容

維基少年:數學能做什麼?/電子遊戲

來自華夏公益教科書,開放世界的開放書籍
兩個女孩在街機玩電子遊戲。

當人們玩電子遊戲時,他們通常不會想到數字。無論遊戲是什麼,他們的大部分思考都是邏輯,或者試圖決定最好的選擇。玩遊戲並不一定需要如此隨意。對於每個遊戲,都有人對最佳的玩遊戲方式感興趣;這可以透過使用數學來找到。更重要的是,無論何時一個人在電子遊戲中對抗或與“電腦”合作,電腦都必須瞭解遊戲的規則以及如何獲勝(以及如何為不同的玩家調整難度)。但電腦無法在沒有人類教導的情況下做任何事情。這就是數學發揮作用的地方;數學是計算機的語言,它是告訴它們如何玩遊戲的唯一方法。

就像科幻小說中的機器人一樣,計算機只能按照它們的指令進行操作。這可能會讓人認為,我們最好自己做他們的工作,但計算機可以比任何人類都快地執行它們的指令。它們也不侷限於簡單的任務;如果一個人能告訴計算機如何思考(這不是一件容易的事,但正在開發中),計算機將能夠思考。為計算機編寫指令的過程稱為程式設計,這是當今一個非常龐大且流行的職業。

每個電子遊戲都必須進行程式設計,但如今它們編寫的並非都是數字。有些是人類語言、邏輯和數學混合在一起的東西,被稱為程式碼,但數學仍然是這個過程必不可少的。電子遊戲開發者必須為遊戲製作音樂和圖形,但他們還必須告訴遊戲如何運作。例如,在 3D 遊戲中,開發者必須告訴計算機如何從不同的角度顯示事物,以及如何使物體不會相互穿透。所有這些都是巨大的挑戰,但可能最大的挑戰是製造人工智慧,也稱為 AI。雖然電子遊戲中的 AI 並非像人類那樣擁有真正的智慧,但它在玩遊戲時仍然可能看起來像是人類。

每個遊戲都可以用數學分解,並以某種方式用數字表達。為了說明這一點,我們可以從一個簡單的遊戲開始,比如跳棋。棋盤有 8 行 8 列,總共 64 個方格。每個方格可以是 0 個棋子,也可以是 1 個棋子,而這個棋子可以是紅色或黑色。因此,我們可以將任何時刻的棋盤描述為 64 個不同的數字,排列成一個正方形(稱為矩陣)。對於每個數字,我們可以說 0 表示沒有棋子,1 表示紅色棋子,2 表示黑色棋子。我們也可以透過為每個棋子分配一個數字來做到這一點:它在棋盤上的位置。對於跳棋來說,這非常簡單,但並不總是如此。如果我們要用數字定義一個 2D 區域,我們將不得不使用許多非常小的正方形,並使一些東西能夠同時出現在多個正方形中。這樣一來,玩家就可以一點點地移動,而不是大跳躍。如果世界是 3D 的,則需要更多關於事物位置的資訊。

回到跳棋,定義遊戲的最佳方法是給每個棋子兩個數字:它的行和它的列。為了開始定義移動,我們可以說棋子只能斜著移動,也就是說它必須同時改變行和列,並且它每次只能移動一格。用數學來表達,如果你給行加 1 或減 1,你必須給列加 1 或減 1。為了防止玩家走出棋盤,重要的是要說棋子永遠不能移動到第 8 行或第 8 列以上,也不能移動到第 1 行或第 1 列以下。

華夏公益教科書