[迷你學文化] 用生命游戲證明迷你世界GUI功能圖靈完備 (可視化可拖拽式編輯器) 第二節(jié)

上一節(jié)


2.鋪墊簡易編程語言實現(xiàn)Conway生命游戲
2.1.先用C++控制臺實現(xiàn)
雖然還原生命游戲已經(jīng)成為了各編程語言的新手任務,但為了保證原創(chuàng)性和教育性,我還是自己在C++中編寫了一遍代碼,從而在Windows控制臺中簡單還原生命游戲。
在編寫代碼時,我傾向于更直觀可讀的變量和函數(shù),并加上了詳細的注釋,希望能方便讀者看懂。我實現(xiàn)的方法比較初級直接,求別吐槽效率和優(yōu)化的問題,代碼展示:
演示視頻:

2.2.再用C#做WinForm交互
為了讓光標代替鍵盤和屏幕進行更便捷的交互,我又使用C#改寫了C++的代碼,并用.NET的窗體控件系統(tǒng)進行了簡便的包裝,讓用戶能便捷地設計開局的小地圖。這樣用戶就能在這塊小天地里,發(fā)揮出天文數(shù)字級別的創(chuàng)意可能性,配合錄屏和視頻軟件,就能做成自己的UGC內(nèi)容。
理論上,如果能控制在任意線程上的GDI+,從而控制任意屏幕畫面幀的GUI上任意一個像素的任意RGB值,不考慮任何配置和優(yōu)化問題,就能在圖靈完備的基礎上還原出任意主流電子游戲的畫面,盡管這個從螺絲開始造火箭的計劃實現(xiàn)起來無比麻煩,只能是空中樓閣,但至少它劃定出了一種可能性的邊界,在這個邊界內(nèi)并不會有什么絕對做不到的事情,都有嘗試的可能。
這是C#的資源文件中Form1.cs的代碼,面向搜索引擎編程,只關注自己的需求,而且沒做什么優(yōu)化:
演示視頻:


下一節(jié):
標簽: