黑白大逆轉-棋盤變色破解與程式製作

專題名稱黑白大逆轉-棋盤變色破解與程式製作

專題描述本作品主要為國立台灣科學教育館科學月刊之第63卷第6期的森棚教官數學題-三段變速之豬羊變色的延伸,主要在探討不同田字型的變色在各種正方形棋盤下的解,首先解決原情境的問題,接著再將其向外推廣,利用excel軟體模擬(1,n)變色時的最小步數,以及拓展討論(p,n)變色中的有解情況。最後做出遊戲程式與解的程式。

隊伍名稱黑白大逆轉

指導老師呂柏辰 陳禹翔

參賽學生張秉洋 陳泰元  

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

序號檔案內容上傳者最後修改
5作者 邱淑怡
來源 國立政治大學
描述 在同學各自專業領域中,能成為與IT領域的溝通橋樑
• 發展資料科學 (data science)
• 具有基本程式能力
• 資料分析
• 加強Pandas套件的使用能力
• 對程式撰寫有興趣,可進一步考慮雙主修或輔系資科系
陳泰元2025/9/19 下午 04:51:35
4作者 張秉洋、陳泰元
來源 Google Colab
描述 此為本次實驗所製作的程式之一
張秉洋2025/9/10 下午 04:32:58
3作者 陳泰元、張秉洋、江有邦
來源 花蓮縣國中小科學展覽會
描述 本研究為此研究的延伸
張秉洋2025/9/9 下午 04:39:48
2作者 許介彥
來源 大葉大學電信工程學系
描述 同餘的基本概念
陳泰元2025/9/9 下午 04:35:14
1作者 游森棚
來源 國立台灣科學教育館
描述 此為本研究的原題
陳泰元2025/9/4 下午 04:49:54

序號封面照內容說明上傳者最後修改
8類別 相簿集
名稱 完整版程式
說明
由於只用數字變化不明顯,我們決定將程式改為顏色變化
陳泰元2025/9/30 下午 04:49:29
7類別 相簿集
名稱 檢查文本
說明
為避免文本中出現謬誤,我們再三檢查文本。
張秉洋2025/9/30 下午 04:35:33
6類別 相簿集
名稱 測試程式
說明
確保破解版的答案正確。
張秉洋2025/9/30 下午 04:24:18
5類別 相簿集
名稱 製作文本
說明
製作文本時所拍下的照片。
張秉洋2025/9/30 下午 04:24:11
4類別 相簿集
名稱 匯入程式碼
說明
將程式碼匯入文本並附上圖片。
張秉洋2025/9/30 下午 04:24:02
3類別 相簿集
名稱 錄製影片中
說明
為了在報告時方便講解,我錄製了兩部影片
陳泰元2025/9/19 下午 04:46:16
2類別 相簿集
名稱 運行中的遊戲程式
說明
為了測試程式穩定性,進行不同的測試(即便一般人不會這樣做)
陳泰元2025/9/9 下午 04:51:05
1類別 相簿集
名稱 製作程式
說明
撰寫破解版的程式碼
陳泰元2025/9/2 下午 04:22:57

序號內容上傳者最後修改
8作者 陳泰元
標題 程式修正
內容
為了能夠詳細的解釋程式,我們決定刪掉原本程式後面的註解,改成最新的版本。過程中隊友發現程式中有一個地方重複執行了兩次,因此我決定把其中一個比較繁瑣的刪掉,這個改變大大加快程式初始設定的時間,從原本的一分多鐘變成現在的五秒鐘內,也減少玩家等待的時間以及耐心。

陳泰元2025/9/30 下午 04:35:41
7作者 張秉洋
標題 檢查文本
內容
為了避面文本中因為注意到而出現的謬誤,因此需再三檢查,在檢查無錯別字及邏輯上的問題後,便老師檢查,看看是否有遣詞上的問題,亦或是我們檢查時並未發現的錯誤。我覺得有別於上次,不同的是,我們這次在交件前一周便完成文本了,而去年則是在時間快到時才完成文本,由此可知,我們的速度有進步。

張秉洋2025/9/19 下午 04:31:05
6作者 張秉洋
標題 完成文本
內容
在另一個夥伴完成了程式之後,我再將程式加入文本中,再補上一些敘述及說明後,便可完成文本,即能稍歇一會了,不過也要開始準備製作簡報了,若是很晚才開始製作簡報的話,最後就很可能要開天窗了,而且文本內容亦需再三檢查,用字遣詞亦同,否則出現謬誤卻不自知就尷尬了。

張秉洋2025/9/18 下午 04:48:00
5作者 陳泰元
標題 增加顏色版
內容
由於人類對數字變化的敏感度普遍低於對顏色變化的敏感度,在視覺化呈現上,僅以數字方式標示棋盤狀態,往往會增加辨識與理解的負擔。基於此考量,我們設計並增加了一種新的顯示模式。在此模式下,棋盤上不再單純顯示數字,而是透過顏色來呈現資訊,使使用者能藉由直觀的顏色差異快速掌握狀態變化。此外,為了讓使用者能更靈活地控制顏色輸入,此模式採用 RGB 輸入法,允許使用者直接輸入紅、綠、藍三原色的數值組合,以形成對應的顏色顯示。這樣的設計不僅提升了操作的即時性與直觀性,也有助於降低數字解讀所需的認知負擔。

陳泰元2025/9/16 下午 04:58:57
4作者 陳泰元
標題 完成程式並增加註釋
內容
今天我完成了破解版的程式以及遊戲的善後。但是當我把完成版分享給同學以及老師以後,他們都表示看不懂程式的意思,在我嘗試幾次之後我決定在每個程式後面都增加註釋(#)這樣他們就可以了解這兩個程式的50%,但是為了更明白也方便以後增加內容,我就在程式的最下方製作一個表格關於變數、元件以及函數的意義。

陳泰元2025/9/11 下午 04:32:58
3作者 張秉洋
標題 製作文本
內容
在確定方向與研究目的後,我們便開始製作文本,一開始害怕程式碼太多而導致篇幅過長,結果放進去之後發現並沒有想像中的多,甚至還可以再放其他的程式碼(一開始只有放主要在跑的程式碼,後來發現可以放其他也有在運作的程式碼),文本大部分已經完成,只要再完成剩下的部分就可以交件了。

張秉洋2025/9/3 下午 04:41:06
2作者 陳泰元
標題 製作程式
內容
今天我完成了整個遊戲最重要的部分,也就是互動元件以及其背後的一系列運行程式。這可以說是整個程式最困難的部分,也是一個重大的里程碑,因為我沒有任何關於製作互動元件的經驗,因此我使用了AI也就是ChatGPT以及瀏覽器來幫助我完成這個艱難的部分。重點是完成的進度終於超過一半了!

陳泰元2025/9/3 下午 04:37:35
1作者 張秉洋
標題 決定方向
內容
科展結束之後,老師便讓我們開始準備小論文,我們想到並且覺得其可能可行的方向大概有下列幾個:將其推廣到立體、做出遊戲程式及其破解版或是將方格換成三角形、六邊形等其他形狀,但此方向被發現無法成功變色,故須由前兩種選擇一個方向,經過我們的討論後,最終決定往製作程式的方向走。

張秉洋2025/9/1 下午 10:08:26

序號封面簡介(摘要)上傳者最後修改
5書名 Python 教學手冊 第二版
作者 洪維恩
出版社 旗標
簡介(摘要)
本書是程式設計教科書暢銷作家洪維恩老師最新著作,經課堂實戰教學淬練,學生試讀試做習題回饋,規劃出適當學習節奏、自學/課堂授課均適用的 Python 入門學習教材,涵蓋多項特色,包括:

  \ Visual Studio Code×Jupyter 雙環境教學 //
  以 Visual Studio Code 搭配內建 Jupyter 環境教學,單行形式小範例講解語法、函式用法等細節,可在 Jupyter 快速輸入程式碼驗證。學習到一小段落後,再搭配大範例使用 Visual Studio Code 執行獨立 .py 程式檔綜合應用,既可反覆練習刻印學習內容,也能夠體悟實際用途。

  \ 程式碼與解說對頁編排、易學易讀不卡頓 //
  全書編排考量易讀性,範例以不跨頁為原則,程式碼與解說盡量安排在左右對頁,避免前後來回翻閱查找,只要攤開書頁,即可左右對照閱讀。對於抽象或是較為複雜的觀念,也搭配精心設計圖解,協助快速理解。像是 NumPy 裡多維度的資料概念,就提供立體圖解,不用自己在腦中費力想像。

  \ 從基本語法到應用主題通包 //
  除變數、流程控制、容器、函數、物件導向的類別與繼承、檔案、異常處理等必學的基本語法外,也涵蓋機器學習與資料科學的共同基礎套件--NumPy 矩陣科學運算、Matplotlib 資料繪圖視覺化與 Pandas 資料處理分析,以及用途最廣的 BeautifulSoup 網路爬蟲與 Skimage 影像處理。

  \ 完整習題解答與教師專用題庫 //
  本書提供依照章、節編排近 300 題的自我練習題,題目本身含解題指引,可先複習相關內文再嘗試解題,並且附有完整習題解答,學到哪裡、練到哪裡,最適合自學或是課後自我驗證學習成果。另外也提供學校用書授課老師專屬題庫,同樣以章節編排,可適度輔助課後作業或是階段測驗,並搭配有經實際授課驗證的投影片,教學節奏最流暢。

  \ 關鍵概念深度剖析 //
  對於初學者容易卡關的地方,像是可變與不可變的物件、可雜湊與不可雜湊的物件,淺層拷貝與深層拷貝、遞迴函式、參數的傳遞等,都有相當篇幅的解說,讓學習者能夠清楚來龍去脈,而不只是照著生硬的規則套用,即使遇到問題也能依循學到的觀念解學。
導讀
第一章 認識 Python
1.1 Python 簡介
1.2 下載與安裝 Python
1.3 安裝與設定 VS Code
1.4 使用 VS Code 執行 Python 程式
1.5 開始進入 Python 的世界
1.6 使用內建的 AI 功能─Copilot
第二章 資料型別、變數與運算子
2.1 簡單的資料型別
2.2 變數與常數
2.3 常用的運算子
2.4 變數的設值與運算的優先順序
2.5 型別轉換
2.6 不同進位整數的轉換
2.7 輸出與輸入函數
2.8 關於浮點數計算時的誤差
第三章 數值、字串與串列的處理
3.1 數值運算
3.2 random 模組裡的函數
3.3 字串的處理函數
3.4 字串類別提供的函數
3.5 串列與相關的處理函數
第四章 流程控制:選擇性敘述與迴圈
4.1 選擇性敘述
4.2 for 迴圈
4.3 while 迴圈
4.4 break、 continue 和 pass 敘述
4.5 帶有 else 的迴圈
4.6 串列推導式
第五章 函數
5.1 函數的基本概念
5.2 參數的傳遞機制
5.3 關於參數的傳入
5.4 全域變數與區域變數
5.5 遞迴函數
5.6 lambda 表達式
5.7 函數的進階應用
第六章 容器資料型別
6.1 list 資料型別
6.2 tuple 資料型別
6.3 set 資料型別
6.4 dict 資料型別
第七章 物件導向程式設計
7.1 類別的基本概念
7.2 類別裡的函數
7.3 繼承與多型
7.4 類別的封裝
第八章 檔案、異常處理與模組
8.1 檔案處理
8.2 異常處理
8.3 模組與套件
第九章 使用 NumPy 套件
9.1 初探 NumPy 陣列
9.2 陣列元素的提取
9.3 陣列的進階處理
第十章 NumPy 的數學運算
10.1 基本運算
10.2 陣列的進階運算處理
10.3 統計處理與資料排序
10.4 數學矩陣的相關運算
10.5 廣播運算
10.6 儲存 NumPy 陣列
第十一章 使用 Matplotlib 繪圖套件
11.1 Matplotlib 繪圖的基本認識
11.2 二維繪圖的修飾
11.3 填滿繪圖與極坐標繪圖
11.4 統計繪圖
11.5 等高線圖與三維繪圖
11.6 動畫的製作
第十二章 使用 Pandas 處理數據資料
12.1 一維的 Series
12.2 二維的 DataFrame
12.3 Pandas 的元素操作與運算
12.4 排序與統計函數
12.5 Pandas 的繪圖
12.6 存取 csv 檔與 pickle 檔
第十三章 網路爬蟲入門
13.1 認識網路爬蟲
13.2 使用 requests 發送 GET 請求
13.3 解析 HTML 與安裝 BeautifulSoup
13.4 實作:擷取網頁特定資訊
13.5 爬取 PTT 寵物板
第十四章 使用 Skimage 進行圖像處理
14.1 圖像的基本概念
14.2 圖像類型、儲存與色表應用
14.3 基礎圖像處理
14.4 進階圖像處理
14.5 圖像修復
附錄 A: 使用 Jupyter Notebook
A.1 安裝 Jupyter 擴充功能
A.2 鍵入程式碼
A.3 儲存格的選取、複製、移動與刪除
A.4 存檔與離開 Jupyter Notebook
A.5 Markdown 語法
A.6 於 Jupyter Notebook 裡製作目錄
附錄 B: Colab 的使用
B.1 啟動 Colab
B.2 鍵入程式碼與文字儲存格
B.3 儲存格的選取、複製、移動與刪除
B.4 存檔與離開 Colab
B.5 設定更舒適的操作環境
B.6 使用 Colab 的 AI 輔助學習 Python
B.7 在 Colab 存取雲端硬碟裡的檔案
附錄 C: ASCII 碼表
陳泰元2025/9/19 下午 04:56:49
4書名 Python初學特訓班(第六版)
作者 鄧文淵
出版社 碁峰資訊股份有限公司
簡介(摘要)
解決初學痛點,避免開發地雷
集結熱門主題與AI技術,加值超過500分鐘影音教學
內容由淺入深,範例程式精簡,執行效率再優化
從200多個範例徹底掌握Python全面應用精髓
導讀
Python是當今最熱門的程式語言,從網頁資料擷取、網站自動化測試、大數據分析、物聯網、機器學習與深度學習,到駭客攻擊工具等主流議題,Python都占據了重要的地位。
陳泰元2025/9/19 下午 04:53:45
3書名 數論:從同餘的觀點出發
作者 蔡天新
出版社 高等教育出版社
簡介(摘要)
前言
第一章 整除的算法
1.1 自然數的來歷【完美數與親和數】
1.2 自然數的奧妙【鑲嵌幾何與歐拉示性數】
1.3 整除的算法【梅森素數與費爾馬素數】
1.4 最大公因數【格雷厄姆猜想】
1.5 算術基本定理【哥德巴赫猜想】
習題
第二章 同余的概念
2.1 同余的概念【高斯的《算術研究》】
2.2 剩余類和剩余系【函數[x]和{x})】
2.3 費爾馬一歐拉定理【歐拉數和歐拉素數】
2.4 表分數為循環小數【可乘函數】
2.5 密碼學中的應用【廣義歐拉函數】
習題
第三章 同余式理論
3.1 中國剩余定理【斐波那契兔子問題]
3.2 威爾遜定理【高斯未證的定理】
3.3 丟番圖方程【畢達哥拉斯數組】
3.4 盧卡斯同余式【覆蓋同余式組】
3.5 素數的真偽【素數之鏈】
習題
第四章 平方剩余
4.1 二次同余式【高斯環上的整數】
4.2 勒讓德符號【表整數為平方和】
4.3 二次互反律【n角形數與費爾馬】
4.4 雅可比符號【阿達馬矩陣和猜想】
4.5 合數模同余【正十七邊形作圖法】
習題
第五章 原根與n次剩余
5.1 指數的定義【埃及分數】
5.2 原根的存在性【阿廷猜想】
5.3 n次剩余【佩爾方程】
5.4 合數模的情形【丟番圖數組】
5.5 狄利克雷特征【三類特殊指數和】
習題
第六章 素數冪模同余
6.1 伯努利數與多項式【庫默爾同余式】
6.2 荷斯泰荷姆定理【橢圓曲線】
6.3 拉赫曼同余式【同余數問題】
6.4 一類調和和同余式【自守形式和模形式
第七章 整數冪模同余式
7.1 拉赫曼同余式推廣【abc猜想】
7.2 莫利定理及推廣【新華林問題】
7.3 雅可布斯坦定理推廣【新費爾馬問題】
7.4 多項式系數同余【多項式系數非冪】
10000以下素數表
參考文獻
導讀
《數論:從同余的觀點出發》依據作者多年數論教學心得和研究成果寫成。從同余的定義和觀點出發,前五章依次講述整除的算法、同余的性質、同余式理論、平方剩余、原根和n次剩余,后兩章是有關素數冪模和整數冪模的同余式,不在通常的初等數論范疇卻伸手可觸。《數論:從同余的觀點出發》的另一特點是,每節內容都有引人入勝的補充讀物,借此拓寬讀者的知識面和想象力。這些讀物或講述了某一數論問題的初步知識,如佩爾方程和丟番圖數組、阿廷猜想和特殊指數和、橢圓曲線和同余數問題、自守形式和模形式;或介紹了整數理論的新問題和新猜想,如完美數問題、格雷厄姆猜想、哥德巴赫猜想、abc猜想、3x+1問題、華林問題、歐拉數問題、素數鏈問題、卡塔蘭猜想、費爾馬大定理等及其延拓。此外,《數論:從同余的觀點出發》重視語言描寫,對背景知識和圖表予以關注。
張秉洋2025/9/11 下午 04:47:18
2書名 數學導論
作者 程守慶
出版社 Ainosco Press
簡介(摘要)
這本書主要的目的是希望能把數學基礎的部分加以強化,使之更為穩固,有助於培養一般高中生與大學生的數學素養,也可以用來作為大學裡一學期數學導論的教材。
導讀
《數學導論》主要介紹一些數學的基本概念,主要是從集合論來出發,以相對嚴謹的說詞來定義什麼是類?什麼是集合?以及如何公設化集合論,並排除羅素的悖論。數學歸納原理則適時地被引入,以增加讀者的視野。另外也給予函數一個嚴謹的定義,並且在集合裡定義所謂的關係與序。最後,對於集合的大小,亦即,集合的基數,作一個初步的介紹與探討。
張秉洋2025/9/9 下午 04:42:43
1書名 Python X ChatGPT
作者 陳會安
出版社 碁峰
簡介(摘要)
  生成式AI的初學Python程式設計課!
  新世代的程式語言學習,你不只需要學會程式語法,更需要學習如何問對你的問題,讓你輕鬆進入「提示工程」領域,成為一位程式設計的「AI溝通師」。
  ★超值加贈:ChatGPT執行過程影片
  ★用fChart流程圖問對問題學會程式邏輯
  ★用ChatGPT寫出程式碼學會Python程式設計
導讀
•當AI能夠寫出Python程式碼後,Python學習也需破壞式創新,你不只需要學會Python語法,更要學會寫出詢問ChatGPT的問題描述。
  •本書完美結合ChatGPT x流程圖,讓ChatGPT真正進入你的Python學習過程。三步驟輕鬆學會Python語法:
  步驟一:透過fChart執行流程圖,讓初學者了解程式流程,寫出詳細的程式問題描述步驟,同時培養你的程式邏輯。
  步驟二:使用ChatGPT程式小老師幫助你寫出Python程式碼,讓你了解程式語法。
  步驟三:透過流程圖的幫助,使用Thonny開發工具來建立你自己的Python程式。
  •本書提供完整fChart流程圖工具和Thonny開發環境,內建功能表命令的外掛程式,可以依據流程圖符號來插入對應的Python程式碼,輕鬆幫助你寫出文字式(非積木)的Python程式碼。
張秉洋2025/9/2 下午 04:42:21

序號書面報告說明上傳者最後修改
1說明 在上次科展的研究中,我們知道了在(p,n)變色中有解的棋盤與其每個按鈕同餘(n+p)的按下次數,並找出(1,n)變色於(n+1)×(n+1)棋盤的上下界,但上下界相差不小,因此我們想要找出其最小步數並做一個程式,使其只需輸入p與n的數值即可知道其最小步數及按法;我們原先的研究中所做出的遊戲程式之變色方式僅限於(1,n)變色,所以我們也想要做一個可自行選擇任意變色及棋盤的程式,而其中前者所產生的結果即是後者遊戲的最小步數按法。張秉洋2025/10/3 上午 10:21:50