來一盤緊張而又刺激的五子棋:自帶注釋
lang
="en"
>
>
charset
="utf-8"
>
name
="viewport"
content
="width=device-width, initial-scale=1.0"
>
>
documenttitle
>
>
*img
ol, ul,
li#frame
#board
.cbefore
.cbutt
.cbutt input
#board li
#board li::before
#board li::after
#board li span
/* #aaaa */
style
>
head
>
>
window.
onload
=function
fngobang()
/*獲取下一級的li物件,形成乙個陣列,方便取值*/
var ogoard = oboard.
getelementsbytagname
("li");
for(
var i =
0; i < ogoard.length; i++
)else
this
.(cpieces)
;/*排序方法,成立的前提是原本的陣列是有序的,且從小到大*/
function
sort
(arr, pa)}}
/*勝利判定函式*/
function
fnwin
(arr, str)
for(
var k = j +
1; k < arr.length; k++
)else
}/*左斜 情況類似,也只需"連續"+邊界
此時的連續是隔行連續
邊界判定原理:陣列中存在想減為s*(w-1)的元素
其中s為連子數量,每隔一行,下標與正下方的點多差上1
*/if(arr[j]%w
>=4)
else}}
/*右斜 情況類似,也只需"連續"+邊界
此時的連續是隔行連續
邊界判定原理:陣列中存在想減為s*(w+1)的元素,
其中s為連子數量,每隔一行,下標與正下方的點多多上1
*/if(
w-(arr[j]%w
)>5-
s)else}}
}/*判定條件恢復初始化*/s=
l=r=
1;}}
}/*黑白棋子攻守轉換*/
nopass =
!nopass;}}
}function
alertwin
(a)var obutt = cbutt.
getelementsbytagname
("input");
obutt[0]
.value = a;
obutt[0]
.style.csstext =
"background:none;border:none;"
obutt[1]
.value =
"重新開始"
; obutt[2]
.value =
"返回遊戲"
;for
(var i =
1; i <
3; i++
)else}}
cbefore.
(cbutt)
; oboard.
(cbefore);}
}script
>
>
"frame"
>
"board"
>
ul>
div>
body
>
html
>
乙個簡單的JAVA五子棋
參照書本寫了乙個很簡單的五子棋程式 主要有如下功能 1 初始化棋盤initboard 2 下棋play 未完成的功能 1 沒有實現棋子ai 2 沒有實現連機 3 ui可以繼續優化 個人感覺五子棋只有在判斷輸贏的演算法上稍微需要思考一下,別的地方都可以參考書本或者網路自己完成。具體如下 1 首先定義一...
乙個連珠五子棋的演算法
為了實現連珠六子及六子以上自殺的功能,中間沒有使用break及return 語句,執行效率有所降低。注 1 使用的是c 語法。2 如果 五 子 六 子 連 按自殺處理。3 三三禁軍功能還沒有實現,以後會進一步完善。晚輩學習c 的時間不長,還望前輩們多多指教。是否贏 棋盤中的所有棋子 所下棋子的最後乙...
對五子棋勝負的乙個模擬判斷
在這個模擬中,採用檔案來儲存棋盤狀況。data.txt的內容類似下面這樣,0表示未下子,1表示黑子,2表示白子 先將檔案中的資料讀取到乙個字元陣列中,然後對陣列內容進行遍歷判斷。分橫 豎 左右斜 右左斜四種情況判斷。若出現一方勝的情況,則將勝負標誌變數置為1或者2並跳出判斷,最後根據勝負標誌變數來輸...