用Java實(shí)現(xiàn)五子棋【附源碼】
知識(shí)點(diǎn)
1、Swing 編程
2、ImageIO 類的使用
3、圖片的繪制
1、 Swing的概念
Swing是在java的基礎(chǔ)圖形化用戶界面AWT的基礎(chǔ)上擴(kuò)展的API集
Swing的功能:通過java的代碼編寫窗口程序,創(chuàng)建圖形化界面(GUI)
JFrame是Swing的基礎(chǔ)類之一
JOptionPane類
showMessageDialog():顯示一個(gè)消息對(duì)話框,主要用來提示信息
showConfirmDialog():顯示一個(gè)對(duì)話框,用戶選擇后根據(jù)返回的結(jié)果進(jìn)行判斷
showMessageDialog():顯示一個(gè)信息輸入對(duì)話框,用于保存用戶輸入的信息
MouseListener類
MouseListener的使用方法,調(diào)用JFremain的addMouseListener方法加入監(jiān)聽。
mouseClicked():監(jiān)聽鼠標(biāo)點(diǎn)擊事件
mousePressed():監(jiān)聽鼠標(biāo)進(jìn)去事件的操作(窗體內(nèi)部)
mouseReleased():監(jiān)聽鼠標(biāo)的離開事件的操作(窗體外部)
mouseEntered()::監(jiān)聽鼠標(biāo)按下的事件
mouseExited():監(jiān)聽鼠標(biāo)抬起的事件
鼠標(biāo)點(diǎn)擊時(shí)的執(zhí)行順序時(shí):mousePressed——>mouseReleased——>mouseClicked(判斷按下與抬起是否在同一位置)
MouseEvent類
getX():得到鼠標(biāo)的橫向位置的坐標(biāo)
getY():得到鼠標(biāo)的縱向位置的坐標(biāo)
Graphics類
drawString():繪制字符串
drawOval():繪制一個(gè)空心的圓形
fillOval():繪制一個(gè)實(shí)心的圓形
drawLine():繪制一條線
drawRect():繪制一個(gè)空心矩形
fillRect():繪制一個(gè)實(shí)心矩形
drawImage():繪制一個(gè)已經(jīng)存在的圖片,將一個(gè)圖片直接顯示到窗體中
setColor():設(shè)置畫筆的顏色
setFont():設(shè)置文字的字體
功能
(1)、在點(diǎn)擊鼠標(biāo)時(shí)在相應(yīng)的位置顯示旗子
(2)、可以自動(dòng)判斷游戲是否結(jié)束,黑方還是白方勝利
(3)、游戲時(shí)間進(jìn)行設(shè)置,判斷是否超時(shí)
1、開發(fā)界面
計(jì)算棋盤中每一條線的間距:這里是19*19的圍棋盤
總寬度為467-17=450,總高度533-89=450
分18份,每一份:x:25 y:25
此代碼獲取棋盤四個(gè)端點(diǎn)的坐標(biāo)
2、在棋盤上的鼠標(biāo)點(diǎn)擊位置,顯示一個(gè)旗子
黑子:實(shí)心黑圓
白子:實(shí)心白圓
repaint():表示重新執(zhí)行repaint
3、保存之前下過的旗子
通過一個(gè)二維數(shù)組來保存之前下過的棋子
4、判斷游戲勝負(fù)
五子棋的基本規(guī)則,是否有同一顏色的棋子連成五個(gè)(核心算法)
5、實(shí)現(xiàn)各個(gè)按鈕的功能
開始游戲:重新開始
游戲設(shè)置:設(shè)置倒計(jì)時(shí)
線程實(shí)現(xiàn)
游戲說明:用來說明游戲規(guī)則和操作
認(rèn)輸: 是某一方放棄游戲
關(guān)于 : 作者,版本
退出: 退出游戲
總代碼

關(guān)于Java實(shí)現(xiàn)五子棋就介紹到這里,更多學(xué)習(xí)資源可以持續(xù)關(guān)注UP主分享哦~