我眼中的五子棋游戲開發(fā)

這是我在簡(jiǎn)書的第一篇博客顷链,剛好最近用java開發(fā)了五子棋游戲,現(xiàn)將開發(fā)過程以及感想總結(jié)記錄下來焚刚,如果真的有人看到了這篇文章点弯,希望里面的內(nèi)容能夠幫到你。

首先是原型設(shè)計(jì)矿咕,先看圖看圖抢肛,見下圖

設(shè)計(jì)圖如下

解釋一下我眼中的五子棋游戲。在開發(fā)之前碳柱,我一直再思考捡絮,現(xiàn)在傳統(tǒng)的五子棋游戲還有沒有改進(jìn)玩法的可能性,從而讓它變得更加有趣呢士聪?我首先給了自己肯定的答案锦援,然后每天開腦洞,終于想到了在本游戲中的核心玩法--“讓子”剥悟。

所謂的“讓子”操作就是當(dāng)前玩家回合中灵寺,該玩家選擇不下子而讓對(duì)方玩家下子,即打破黑白子的數(shù)量平衡区岗,這是我眼中的五子棋的核心玩法略板。

原型有了,設(shè)計(jì)圖也ok了慈缔,接下來就是邏輯流程圖+技術(shù)實(shí)現(xiàn)了叮称。

部分邏輯圖如下(流程太長(zhǎng),只截取部分)

相關(guān)類藐鹤、實(shí)體如下

其中關(guān)鍵的棋盤數(shù)據(jù)采用二維數(shù)組進(jìn)行建模瓤檐,所有的邏輯操作的實(shí)現(xiàn)均轉(zhuǎn)換成對(duì)二維數(shù)組的處理。

下面是關(guān)鍵代碼的張貼娱节,判定輸贏的邏輯代碼如下

/**

* 判斷游戲是否結(jié)束

*/

public int isOver() {

int tmp = NONE;// 記錄棋子

for (int i = 0; i < this.size; i++) {

for (int j = 0; j < this.size; j++) {

tmp = gobang[i][j];

if (tmp != NONE) {

// 判斷斜上方

if (i >= 4 && j <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i - k][j + k]) {

break;

}

if (k == 4) {

// 判斷是哪一方贏了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

// 判斷斜下方

if (i <= this.size - 5 && j <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i + k][j + k]) {

break;

}

if (k == 4) {

// 判斷是哪一方贏了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

// 判斷橫向

if (j <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i][j + k]) {

break;

}

if (k == 4) {

// 判斷是哪一方贏了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

// 判斷縱向

if (i <= this.size - 5) {

for (int k = 1; k <= 4; k++) {

if (tmp != gobang[i + k][j]) {

break;

}

if (k == 4) {

// 判斷是哪一方贏了

if (tmp == BLACK)

return BLACK_WIN;

if (tmp == WHITE)

return WHITE_WIN;

}

}

}

}

}

}

return NOT_OVER;

}

服務(wù)器和客戶端的采用socket進(jìn)行通信挠蛉,服務(wù)器會(huì)和每個(gè)玩家建立專門的線程進(jìn)行通信,客戶端在正式進(jìn)入游戲之前需要用戶輸入用戶名進(jìn)行登錄肄满,本程序中輸入任意用戶名即可(只要不與另外一個(gè)玩家重復(fù))谴古,登錄完成后等待另外一個(gè)玩家登錄后即可進(jìn)入游戲。

整個(gè)開發(fā)完成之后的效果如下圖


源碼點(diǎn)擊下面的鏈接:

http://download.csdn.net/download/pulan_peng/9771289

PS:下載可能需要積分稠歉,我也實(shí)在不想搞需要積分下載這一套掰担,但是CSDN不允許我編輯,所以將就一下怒炸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末带饱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阅羹,更是在濱河造成了極大的恐慌纠炮,老刑警劉巖月趟,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異恢口,居然都是意外死亡孝宗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門耕肩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來因妇,“玉大人,你說我怎么就攤上這事猿诸』楸唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵梳虽,是天一觀的道長(zhǎng)址芯。 經(jīng)常有香客問我,道長(zhǎng)窜觉,這世上最難降的妖魔是什么谷炸? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮禀挫,結(jié)果婚禮上旬陡,老公的妹妹穿的比我還像新娘。我一直安慰自己语婴,他們只是感情好描孟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砰左,像睡著了一般匿醒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缠导,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天青抛,我揣著相機(jī)與錄音,去河邊找鬼酬核。 笑死,一個(gè)胖子當(dāng)著我的面吹牛适室,可吹牛的內(nèi)容都是我干的嫡意。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捣辆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蔬螟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汽畴,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤旧巾,失蹤者是張志新(化名)和其女友劉穎耸序,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲁猩,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坎怪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了廓握。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搅窿。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖隙券,靈堂內(nèi)的尸體忽然破棺而出男应,到底是詐尸還是另有隱情,我是刑警寧澤娱仔,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布沐飘,位于F島的核電站,受9級(jí)特大地震影響牲迫,放射性物質(zhì)發(fā)生泄漏耐朴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一恩溅、第九天 我趴在偏房一處隱蔽的房頂上張望隔箍。 院中可真熱鬧,春花似錦脚乡、人聲如沸蜒滩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俯艰。三九已至,卻和暖如春锌订,著一層夾襖步出監(jiān)牢的瞬間竹握,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工辆飘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啦辐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓蜈项,卻偏偏與公主長(zhǎng)得像芹关,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子紧卒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容