- 瘋狂Java實戰(zhàn)演義
- 楊恩雄 麥凱翔編著
- 1155字
- 2018-12-27 17:17:00
第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)原理都大同小異。