Nim死不屈-尼姆遊戲對弈程式製作

專題名稱Nim死不屈-尼姆遊戲對弈程式製作

專題描述在獨立研究課時,老師讓我們玩一個小遊戲──三五七石頭棋,此遊戲會有三堆石頭,一堆三顆、一堆五顆、一堆七顆,玩家在自己的回合拿多少棋子都可以,但是不可越堆拿,而拿到最後一顆石頭的人就輸了, 我們對此遊戲產生強烈的興趣,便上網搜尋相關的文獻,發現無論如何分堆,顆數為何,都可以通稱為「尼姆遊戲Nim」,而我們想要找出這種遊戲的必勝法,並更進一步的做出可以和玩家對弈的電腦程式,因此才會有這次的研究。

隊伍名稱Nim死不屈

指導老師呂柏辰 陳禹翔

參賽學生張宸翰 王聿典  

延續作品 已上傳延續性作品說明書:20240927093812271.pdf

序號檔案內容上傳者最後修改
4作者 張鎮華
來源 作者自製
描述 說明尼姆和威氏遊戲之安全和不安全的數列
王聿典2024/9/25 下午 09:26:56
3作者 嚴文亨、廖文佐、徐正誠
來源 國立華僑實驗高級中學
描述 其作者認為「拈」(Nim)遊戲與電腦邏輯的思考模式頗為相近,因此興起了設計相關電腦程式的念頭。他們打算利用電腦本身快速分析驗證的特性,研究出一種必勝策略,並將「拈」的傳統玩法推廣至所有的變形玩法。最後他們做出一種可以快速運算後果但不一定可以必勝的遊戲程式,而字越大,對電腦越有利。
張宸翰2024/9/25 下午 09:26:42
2作者 不明
來源 屏東縣第 61 屆國中小學科學展覽會
描述 探討尼姆遊戲的各種必勝方法與X O R的方式
王聿典2024/9/25 下午 09:15:03
1作者 不明
來源 資訊概論講義
描述 說明二進位八進位十進位和十六進位的轉換方式
王聿典2024/9/25 下午 09:10:16

序號封面照內容說明上傳者最後修改
7類別 youtube影片
名稱 三五七石頭棋操作簡介
說明
對三五棋石頭棋進行操作介紹。
張宸翰2024/9/27 上午 11:53:46
6類別 相簿集
名稱 9/24
說明
討論三堆、任意棋數之程式設計方案,並進行程式測試。
張宸翰2024/9/26 下午 11:12:33
5類別 相簿集
名稱 9/25書寫文本
說明
我正在進行文本修正、排版。
張宸翰2024/9/26 下午 11:11:00
4類別 相簿集
名稱 nim研究(3)
說明
這是XOR運算的程式,用來做出A、B、C也能判斷輸贏的程式。
王聿典2024/9/26 下午 09:39:45
3類別 相簿集
名稱 nim研究(2)
說明
研究三五七石頭棋遊戲的XOR算法以及其規律。
王聿典2024/9/26 下午 09:39:33
2類別 相簿集
名稱 nim研究(1)
說明
最基本的三五七石頭棋,具備所有它需要的必勝法。
王聿典2024/9/26 下午 09:39:14
1類別 相簿集
名稱 9/16程式製作
說明
製作三五七石頭棋的程式,並測試運行及修正錯誤。
張宸翰2024/9/24 上午 11:28:53

序號內容上傳者最後修改
8作者 張宸翰
標題 獨立研究五
內容
我今天進行文本最後的編輯和排版,還有將scratch的三五七石頭棋程式進行最後完善,我有多加音效、失敗畫面、不同等級的勝利畫面等多項美工素材,全部都做完後,我非常有成就感呢!

張宸翰2024/9/26 下午 11:07:12
7作者 王聿典
標題 獨立研究3
內容
我做了兩個A、B、C顆石頭的程式出來,因為第一個程式有有時候找不到要拿取的數的問題,所以我又做了一個。但我發現這一個除了拿取的數字不對,而且速度還很慢,所以之後用第一個程式來修BUG。

王聿典2024/9/26 下午 09:50:04
6作者 王聿典
標題 獨立研究2
內容
在做A,B,C的程式的時候,因為需要的程式與原本的3,5,7不相符,所以我決定換一個重做,不從原本的基礎添加。前面沒什麼問題,但在要經過X O R計算的時候會產生很多變數和清單,但我決定寫下去試試看。

王聿典2024/9/23 下午 09:53:42
5作者 張宸翰
標題 獨立研究四
內容
今天主要是把三五起石頭棋的程式做的更加完善,電腦必須在可達成必勝棋局時,做出最佳判斷以達成必勝。往後可考慮將遊戲分為簡單、困難、地獄三種等級,讓玩家選擇適合自己的等級來玩。

張宸翰2024/9/22 下午 08:37:08
4作者 張宸翰
標題 獨立研究三
內容
我們的三五七石頭棋程式雛形基本完成了!今天的重點是測試各種棋局,確認電腦能以最佳走法面對所有棋局。我們還加入了一些基本的圖形界面,讓遊戲變得更直觀。

張宸翰2024/9/22 下午 08:31:17
3作者 張宸翰
標題 獨立研究二
內容
我們了解三五七石頭棋所有的必勝情形後,打算先把三五七石頭棋的程式做好,之後才做難度較高的任意堆數、任意棋數程式。
我開始將各種必勝情形套到三五七石頭棋的實際程式中。首先,我設計了一個基本的遊戲框架,用來讓玩家進行移動。

張宸翰2024/9/21 下午 05:17:45
2作者 張宸翰
標題 獨立研究一
內容
今天和隊友討論三五七石頭棋的必勝法,已經熟悉了一些必勝的棋局,並且了解如何用二進位的XOR算法判別期局是否為必勝,之後只需要想辦法做出程式就好了。

張宸翰2024/9/20 下午 09:22:21
1作者 王聿典
標題 獨立研究1
內容
今天要嘗試用XOR算法做出A,B,C的程式,這感覺會比原本的357石頭棋還要難一點。我覺得程式要想辦法先導出二進位,再運算拿棋。在scratch裡面有算2的次方的積木,也許可以用到。

王聿典2024/9/18 下午 09:07:51

序號封面簡介(摘要)上傳者最後修改
3書名 遊戲中學習Scratch運算思維與程式設計
作者 數位新知
出版社 五南
簡介(摘要)
圖形化介面:以積木堆疊方式簡化程式設計,無需寫代碼。
全方位功能:詳盡說明舞台背景、角色造型、腳本流程、聲音編輯等。
激發創意:透過互動式故事、動畫、遊戲等培養邏輯思考與創意。
16章精心規劃:從基礎入門到進階應用,共14個範例逐步引導。
導讀
Scratch是美國麻省理工學院(MIT)所開發的程式語言,此軟體的主要特色就是利用堆疊與鑲嵌等方式,將各種類型的程式積木組合在一起,只要程式積木之間可以互相嵌接,就可以按下綠旗讓畫面動起來。本書筆者規劃了16個章節的內容,除了認識Scratch的視窗環境外,開宗明義就先將舞台背景與角色造型的新增/編修技巧、腳本流程的規劃、程式堆疊技巧、聲音的插入與編輯等功能做全方位的說明,接著就是依照軟體的難易程度,分別規劃成14個範例,其內容與重點說明如下:
  ● 動態賀卡的吸睛創意――基礎動畫應用
  ● 超萌寶寶的魔法變裝秀――動畫故事的串接
  ● 泰國旅遊的實境體驗――單一角色多造型應用
  ● 夢幻海底世界的私房創意――反彈與隨機運算
  ● 幼兒字卡練習器――廣播與收到訊息的應用
  ● 百變髮型設計懶人包――等待滑鼠被點擊
  ● 風景相片魅惑萬花筒――縮圖按鈕的應用
  ● 歡樂同學錄的製作錦囊――按鈕連結顯示
  ● 驚奇屋歷險特效攻略――滑鼠游標的應用
  ● 筆畫心情塗鴉板――筆畫效果應用
  ● 打造音樂演奏饗宴――樂器與琴鍵的應用
  ● 發財金幣不求人――左右按鍵控制
  ● 老實樹遊戲攻心密技――詢問與回答的應用
  ● 地表最好玩的乒乓球PK賽――座標與角色控制
張宸翰2024/9/22 下午 08:29:16
2書名 進位制與數學游戲
作者 李友耕
出版社 科學出版社
簡介(摘要)
此書在系統、全面論述進位制知識的基礎上,分別介紹了塗色遊戲、猜測遊戲、演變遊戲、火柴遊戲、配對遊戲、戥秤稱珠遊戲、天平稱珠遊戲以及砝碼、鏈條、鏈環等遊戲的玩法及進位制知識在其中的應用原理。本書集趣味性、知識性與科學性于一體,奇妙嚴密,通而不俗,充分展示數學思維之美妙與深刻。
導讀
這本書深入探討數學的多樣性,從進位制的基本概念開始,介紹不同的數學遊戲,如塗色遊戲、猜測遊戲和演變遊戲等,旨在提升邏輯思維與問題解決能力。透過趣味性和挑戰性的內容,讀者能在遊戲中學習數學原理,發展創造力和推理能力,非常適合學生和數學愛好者。
張宸翰2024/9/22 下午 07:55:28
1書名 一次讀懂博弈論
作者 白波、王朔
出版社 德威
簡介(摘要)
博弈論是一門研究個體或團體在競爭或合作情境下如何制定最佳策略的科學,廣泛應用於經濟、政治、軍事等領域。它通過數學模型來模擬參與者之間的互動,分析不同策略選擇的結果及其影響,尋求最佳解決方案。博弈論涵蓋零和博弈、合作博弈、囚徒困境等重要概念,旨在理解決策者如何在互相影響下達成平衡,並提供理性指導以應對現實中的複雜問題。
導讀
  人生其實就是一個選擇的過程,每天我們都要不斷地作選擇、決定。任何人都不能離群索居,更不是生活在真空裡,只要有人的地方,必然就有博弈存在。為了自己,也為了與他人更好地合作,你需要時時去學習博弈論的策略思維。
  博弈是一種策略的相互依存狀況:你的選擇將會得到什麼結果,取決於另一個有目的的行動者的選擇。因此,策略的選擇智慧從來不是孤立存在的,如果忽視了選擇的互動關係,不管你的策略看起來多麼完美,也很難得到好的收益。
  博弈論是一種思維方式。理論上所謂的「最佳決策模式」,並無法保證你每次都能作出最好的選擇。假如你想將它們運用於你自己面臨的情況中,並且作出正確的決策和選擇,那麼你就必須做一些創造性的工作——分析、思考和實踐。
張宸翰2024/9/22 下午 06:19:16

序號書面報告說明上傳者最後修改
1說明 在獨立研究課時,老師讓我們玩一個小遊戲──三五七石頭棋,此遊戲會有三堆石頭,一堆三顆、一堆五顆、一堆七顆,玩家在自己的回合拿多少棋子都可以,但是不可越堆拿,而拿到最後一顆石頭的人就輸了。而無論如何分堆,顆數為何,都可以通稱為「尼姆遊戲Nim」,我們找出這種遊戲的必勝法,並以此做出可以和玩家對弈的電腦程式。呂柏辰2024/9/27 上午 08:46:02