[討論] PHP 板活動規劃討論

作者: gpmm (銀色)   2016-03-08 01:27:26
# 前言
首先對大家說聲抱歉,接任板務近四年以來,
對於板上的活絡或討論風氣一直沒有幫上任何的忙,
雖然鮮少有板友說出來,
但看著原本就不甚活絡的 PHP 板討論日漸變少,
應該心裡多少都覺得越來越無聊吧。
最近因為暫時回鍋協助另一看板的緣故,
也好好思考了一下對於 PHP 板自己能做的事情。
自去年 PHP7 發佈以來,感覺 PHP 又漸漸開始注入了新的活力,
如前幾天板友分享的 Gameboy 模擬器也是,
PHP 身上依然有著無限多的可能。
總而言之,小弟希望可以漸漸拉抬 PHP 板的交流和活絡,
而辦些有趣的活動是我現在能想到的方法之一。
# 關於活動
PHP 板的活動當然前提是希望以 Code 會友,
核心思維是舉辦「有趣、好入門、可深究」這個方向的活動。
以目前小弟第一個擬想的,就是 PHP 井字遊戲競賽。
下面所提的內容都還只是初步規劃階段,歡迎有興趣的板友一起討論。
# 井字遊戲競賽
## 簡述
眾所皆知的井字遊戲,由參與者撰寫程式來相互競賽,
除了最基本的 3x3 之外,還包括 5x5、7x7 選 5 等變形棋盤和規則。
## 規則
1. 每個參與者需撰寫一個可被執行的函式,
輸入參數和輸出參數皆為一個符合規範的二維陣列(棋盤),
每次行動後由莊家程式檢查資料是否正確,是否有人獲勝。
2. 不限制檔案數目、撰寫方式,
但對於所有棋盤類型必須使用同一隻(組)程式。
3. 以 Github 平台作為程式碼報名方式,要報名請直接送 PR。
僅限 PTT 板友參加。
## 階段
正式規則公佈 -> 測試用 Code 公佈 -> 接受 PR 階段 ->
審理異議和測試階段 -> 對戰名單公佈 -> 競賽階段 -> 競賽結果公佈
※ 審理異議 - 代表任何針對他人程式碼的檢舉都必須於此階段提出,
此後的檢舉一概不受理,所有進入競賽階段的 Code 皆視為有效。
## 競賽進行方式
1. 挑選兩位競賽者
2. 透過莊家程式載入兩位競賽者的主要函式檔案,並決定先後手
3. 莊家程式生成棋盤陣列變數,呼叫並輸入到其中一位競賽者的主要函式,
取得回傳值(此競賽者行動後的棋盤陣列)
4. 莊家程式檢驗棋盤陣列,輸出棋譜陣列(供賽事轉撥使用),
並輪替到另一位競賽者再次執行步驟 3。
5. 以此輪替直到一方勝出或平局(無子可下)為止。
## 評分
1. 競賽分為淘汰賽和總積分評比兩種。
2. 分數來源:
a. 競賽主體:至少分為輸、和局、贏三種。
b. 繳交時間:Github 是公開平台,越早繳交(送 PR)越有程式碼曝光風險,
但越早繳交也可獲得越多的積分,目前規劃為階梯制。
c. 程式碼長度:移除所有空白符號後的總字數,越少分數越高,
目前規劃為階梯制。
d. 程式碼品質:例如有單元測試,或其他 PHP The Right Way 當中的部份建議。
此為加分項目。
e. 第三方套件:用越少加分加越多,到某個數量以上就不加分,規劃為階梯制。
我們不拒絕參賽者使用第三方套件,但更愛手刻。
## 競賽
1. 參與人數夠的話,取四人為一組進行競賽,分數高的兩名進入下一回合。
2. 如果同組內所有人積分相同,則四人一起進入下一回合(不連續一次為限),
也就是說你如果連續兩次經歷「同組內積分均相同」,就會被淘汰。
3. 競賽主體以外的分數是算在積分制裡。
## 獎勵
還沒有想法 (⊙ω⊙`) 看有沒有什麼好建議…
## 其他
1. 每位參與者請在自己的參賽資料夾內註明 License,
如未註明則以自動歸範為預設 License。
2. 溝通平台預計使用 Github issue(非即時)和 Gitter(即時)兩種。
3. 競賽過程希望能使用直播,並在板上開圖(棋盤圖)。
# 總之
嗯,歡迎大家補充,或是看看有沒有參與的意願,
是說希望大家都能玩的開心,又能活絡看板啊…
作者: zx4109 (阿仲)   2016-03-08 01:42:00
作者: y2468101216 (芸)   2016-03-08 10:00:00
獎勵發P幣就好,我相信很多人在八卦版輸了不少。
作者: wilson200106 (種子種子)   2016-03-08 13:57:00
推 技術不夠 在旁邊觀戰
作者: Neisseria (Neisseria)   2016-03-08 22:02:00
如果是五子棋呢?感覺變化比較多,應該會比較好玩小弟不熟 AI,也沒在寫 PHP,就交給板上各位強者大大吧
作者: gpmm (銀色)   2016-03-08 22:13:00
其實井字遊戲就是五子棋的縮減版,就是擔心大家覺得參與門檻太高,所以才從井字遊戲開始的 :~
作者: Neisseria (Neisseria)   2016-03-08 22:19:00
剛剛突然想到,黑白棋 (Reversi) 也不錯,棋盤不會太難但是變化不少,應該會很有趣
作者: ns1234 (FAR)   2016-03-08 22:23:00
我記得之前有看到兩個組TEAM寫AI 比賽下圍棋,看最後誰會.贏. 誰先當機誰就輸了XD 不知道結果如何..如果玩這個應該崩潰吧XDD
作者: gpmm (銀色)   2016-03-08 22:34:00
難的應該是 AI 判定吧,規則或變化越多的 AI(偽)越難寫…
作者: Neisseria (Neisseria)   2016-03-08 22:34:00
最近 Google 用 deep learning 寫了很強的圍棋演算法還發表到 nature 上,有空可以去看一看
作者: gpmm (銀色)   2016-03-08 22:44:00
明天開始啊,單挑韓國棋神李世石 XDD
作者: lucky1lk (賭到沒錢的人)   2016-03-09 07:46:00
獎勵:把原PO打包回家(?)
作者: secondDim ( 祈求備取會上)   2016-03-10 13:27:00
作者: slime756 (肥龍)   2016-03-10 21:47:00
這三小朋友?
作者: MagicMomo19 (Momo)   2016-03-11 11:16:00
版主先出個範例 XD
作者: holishing   2016-03-13 23:11:00
先推用心XD

Links booklink

Contact Us: admin [ a t ] ucptt.com