JS 來一盤緊張而又刺激的五子棋

2021-10-04 01:48:20 字數 2113 閱讀 1717

來一盤緊張而又刺激的五子棋:自帶注釋

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並跳出判斷,最後根據勝負標誌變數來輸...