官术网_书友最值得收藏!

第1章 控制臺五子棋

1.1 引言

控制臺五子棋,顧名思義,就是在Java控制臺中運行的五子棋游戲,需要用戶用鍵盤輸入棋子的位置來進行游戲。

由于是在控制臺下面運行的程序,所以并沒有漂亮的游戲界面以及鼠標操作等東西,而只是在一片黑色的控制臺環(huán)境下進行游戲,游戲的可玩性并不高,似乎這并不是一個完整的游戲。但事實上,一個程序最重要的并不是界面,而是處理各種業(yè)務(wù)邏輯與數(shù)據(jù)的方法,只要掌握了核心的方法,掌握了基礎(chǔ)的知識,便很容易學習AWT、Swing等圖形用戶界面的編寫,萬變不離其宗,寫起有操作界面的程序也會變得更加容易,更加得心應(yīng)手。而本章的主要目的是讓讀者掌握與理解Java編程的基礎(chǔ)知識,因此,掌握本章五子棋的實現(xiàn)原理,對于學習以后的章節(jié)將會非常有幫助。作為本書的第1章內(nèi)容,我們將使用最簡單的方式來實現(xiàn)一個控制臺五子棋游戲。

1.1.1 五子棋介紹

五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。現(xiàn)代五子棋日文稱之為“連珠”,英譯為“Renju”,英文稱之為“Gobang”或“FIR”(Five in a Row的縮寫),亦有“連五子”、“五子連”、“串珠”、“五目”、“五目碰”、“五格”等多種稱謂。五子棋是一個比較大眾化的棋類游戲,其玩法與規(guī)則如下:

五子棋是兩個人之間進行的競技活動,對黑方和白方規(guī)則不同,黑棋必須先行(本章中黑棋與白棋的規(guī)則一樣,但一樣由黑棋先下)。

五子棋專用棋盤大小為15cm×15cm,五連子的方向為橫、豎、斜。

在棋盤上以對局雙方均不可能形成五連為和棋。

首先形成五連子的一方為贏。

五子棋必須由兩方進行游戲,當某一方按照一定規(guī)則連成五個棋子的時候,該游戲方就勝利,在本章中,我們并不需要做到對戰(zhàn)形式的,可以設(shè)計一個簡單的“電腦”來做我們的對手,當我們下完棋后,這個簡單的“電腦”就隨便在棋盤中下一步,當然,如果想做更強大的“電腦”,我們可以通過編寫程序來實現(xiàn),當我們下棋的時候,這個“電腦”就對我們所下的棋子進行檢測,并將棋子下到最恰當?shù)奈恢谩1菊碌闹饕康氖钦宫F(xiàn)五子棋的實現(xiàn)原理,如果讀者有興趣,可以自行開發(fā)強大的“人工智能電腦”來進行游戲。

1.1.2 輸入輸出約定

玩家必須以(x,y)的方式輸入棋盤的坐標,其中,x代表橫坐標,y代表縱坐標。x與y的值必須是1到N(棋盤的大小)之間的整數(shù)。

系統(tǒng)詢問玩家是否繼續(xù)游戲時,玩家輸入y是代表繼續(xù),輸入其他則代表退出游戲。

“●”代表黑子,“○”代表白子。當玩家以(x,y)的形式輸入下棋的坐標后,游戲程序就可以根據(jù)玩家所輸?shù)淖鴺藢⑵遄臃胖玫狡灞P中。我們可以將棋盤看做一個二維數(shù)組,填充著棋盤式的標志(“十”),玩家下棋后,就用棋子替換原來的標志,最后再次提示玩家進行下棋操作。由于本章是在控制臺中進行打印,因此只需使用System.out.println即可,如果需要實現(xiàn)有界面的五子棋,例如使用Swing或者AWT,可以使用相應(yīng)的方法,將二維數(shù)組“畫”到界面中。因此,不管是使用Swing、AWT還是其他界面技術(shù),五子棋的實現(xiàn)原理都大同小異。

主站蜘蛛池模板: 东阳市| 大厂| 合水县| 柳林县| 当阳市| 襄汾县| 湛江市| 司法| 喀喇沁旗| 遂平县| 临西县| 枣庄市| 英吉沙县| 新乐市| 娄底市| 花莲县| 梅河口市| 揭阳市| 连云港市| 嵩明县| 齐河县| 托里县| 九江市| 德兴市| 莎车县| 黄浦区| 遂平县| 洪江市| 呼伦贝尔市| 全州县| 郸城县| 铅山县| 拜泉县| 巴林左旗| 灵川县| 锦屏县| 华亭县| 北流市| 五大连池市| 女性| 周至县|