日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java GUI實現五子棋游戲

瀏覽:61日期:2022-09-05 11:27:50

本文實例為大家分享了java實現五子棋游戲GUI,供大家參考,具體內容如下

引用包

//{Cynthia Zhang}import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.LineBorder;import javax.swing.JOptionPane;import javax.swing.ImageIcon;import java.awt.Image;import com.sun.image.codec.jpeg.*;

前期預設

//extends JApplet { // Indicate which player has a turn, initially it is the X player private char whoseTurn = ’X’; final int SIZE = 15; static boolean ISOVER = false; // Create and initialize cells private final Cell[][] cell = new Cell[SIZE][SIZE]; // Create and initialize a status label private final JLabel jlblStatus = new JLabel('X’s turn to play',JLabel.CENTER);

設置背景板

// Initialize UI @Override public void init() { // Panel p to hold cells JPanel p = new JPanel(); p.setLayout(new GridLayout(SIZE, SIZE, 0, 0)); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { Cell ce = new Cell(); ce.setBackground(new Color(150,88,42)); // 背景色絕美! p.add(cell[i][j] = ce); } } // Set line borders on the cells panel and the status label p.setBackground(new Color(143,105,94)); // 背景色絕美! jlblStatus.setBorder(new LineBorder(new Color(255,255,255), 2)); // 白框框加寬! // Place the panel and the label to the applet this.getContentPane().add(p, BorderLayout.CENTER); this.getContentPane().add(jlblStatus, BorderLayout.SOUTH); }

主要框架段落

// This main method enables the applet to run as an applicationpublic static void main(String[] args) { // Create a frame JFrame frame = new JFrame('Tic Tac Toe'); // Create an instance of the applet Homework8 applet = new Homework8(); // Add the applet instance to the frame frame.getContentPane().add(applet, BorderLayout.CENTER); // Invoke init() and start() applet.init(); applet.start(); // Display the frame frame.setSize(600, 600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }

判斷是否滿了

// Determine if the cells are all occupied public boolean isFull() { for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { if (cell[i][j].getToken() == ’ ’) { return false; } } } return true; }

判斷是否贏了

和八皇后有點像,可以考慮那種數組優化四個方向,這里比較懶

// Determine if the player with the specified token wins public boolean isWon(char token) { int winNum = 5; // define the max num for a rule for (int indexX = 0; indexX < SIZE; indexX++) { for (int indexY = 0; indexY < SIZE; indexY++){ // in row check cell[indexX][indexY...indexY+winNum-1] if (indexY+winNum-1<SIZE){ boolean flag=true; for (int y =indexY;y<indexY+winNum;y++) if (cell[indexX][y].getToken() != token){ flag=false; break; } if (flag==true) return true; } // in row check cell[indexX...indexX+winNum-1][indexY] if (indexX+winNum-1<SIZE){ boolean flag=true; for (int x =indexX;x<indexX+winNum;x++) if (cell[x][indexY].getToken() != token){ flag=false; break; } if (flag==true) return true; } // check cell[indexX...indexX+winNum-1][indexY...indexY+winNum-1) if (indexX+winNum-1<SIZE && indexY+winNum-1<SIZE){ boolean flag=true; for (int x =indexX,y=indexY;x<indexX+winNum;x++,y++) if (cell[x][y].getToken() != token){ flag=false; break; } if (flag==true) return true; } // check cell[indexX...indexX+winNum-1][indexY...indexY+winNum-1) if (indexX+winNum-1<SIZE && indexY-winNum+1>=0){ boolean flag=true; for (int x =indexX,y=indexY;x<indexX+winNum;x++,y--) if (cell[x][y].getToken() != token){ flag=false; break; } if (flag==true) return true; } } } return false; }

設置棋子

// An inner class for a cell public class Cell extends JPanel implements MouseListener { // Token used for this cell private char token = ’ ’; public Cell() { setBorder(new LineBorder(Color.black, 1)); // Set cell’s border addMouseListener(this); // Register listener } // The getter method for token public char getToken() { return token; } // The setter method for token public void setToken(char c) { token = c; repaint(); }

導入圖片

// Paint the cell @Override public void paintComponent(Graphics g) { if (token == ’X’) { ImageIcon icon = new ImageIcon('C:UsersLenovoDesktopBlack.png'); Image image = icon.getImage(); g.drawImage(image,0,0,35,35,this); }else if (token==’O’){ ImageIcon icon = new ImageIcon('C:UsersLenovoDesktopWhite.png'); Image image = icon.getImage(); g.drawImage(image,0,0,35,35,this); } super.paintComponents(g); }

游戲結束的鎖定與彈窗

// Handle mouse click on a cell @Override public void mouseClicked(MouseEvent e) { if (ISOVER) return; // if game is over, any issue should be forbidden int response=-1; if (token == ’ ’) // If cell is not occupied { if (whoseTurn == ’X’) // If it is the X player’s turn { setToken(’X’); // Set token in the cell whoseTurn = ’O’; // Change the turn jlblStatus.setText('The White’s Turn'); // Display status if (isWon(’X’)) { jlblStatus.setText('The Black Won! The Game Is Over!'); response = JOptionPane.showConfirmDialog(null, 'The Black Won! The Game Is Over!n' +'Do you want to quit?','提示',JOptionPane.YES_NO_OPTION); ISOVER = true; if (response == 0) System.exit(0); // choose 'Yes' than quit; } } else if (whoseTurn == ’O’) // If it is the O player’s turn { setToken(’O’); // Set token in the cell whoseTurn = ’X’; // Change the turn jlblStatus.setText('The Black’s Turn'); // Display status if (isWon(’O’)) { jlblStatus.setText('The White Won! The Game Is Over!'); response = JOptionPane.showConfirmDialog(null, 'The White Won! The Game Is Over!n' +'Do you want to quit?','提示',JOptionPane.YES_NO_OPTION); ISOVER = true; if (response == 0) System.exit(0); // choose 'Yes' than quit; } } if (isFull()) { jlblStatus.setText('Plain Game! The Game Is Over!'); response = JOptionPane.showConfirmDialog(null, 'Plain Game! The Game Is Over!n' +'Do you want to quit?','提示',JOptionPane.YES_NO_OPTION); ISOVER = true; if (response == 0) System.exit(0); // choose 'Yes' than quit; } } }

其他棋子信息

@Override public void mousePressed(MouseEvent e) { // TODO: implement this java.awt.event.MouseListener method; } @Override public void mouseReleased(MouseEvent e) { // TODO: implement this java.awt.event.MouseListener method; } @Override public void mouseEntered(MouseEvent e) { // TODO: implement this java.awt.event.MouseListener method; } @Override public void mouseExited(MouseEvent e) { // TODO: implement this java.awt.event.MouseListener method; } }}

圖片顯示

java GUI實現五子棋游戲

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品麻豆久久| 在线亚洲国产精品网站| 成人羞羞视频在线看网址| 久久xxxx| 亚洲在线网站| 久久精品一区二区不卡| 精品美女久久| 久久99蜜桃| 五月亚洲婷婷 | 国产成年精品| 欧美一区二区三区久久精品| 视频在线观看91| 日韩欧美久久| 蜜臀久久99精品久久久久宅男| 欧洲激情综合| 欧美日韩在线观看视频小说| 欧美羞羞视频| 中文字幕高清在线播放| 精品欧美日韩精品| 麻豆精品视频在线观看| 久久精品一本| 欧美男人天堂| 好看的亚洲午夜视频在线| 欧美日韩四区| 国精品一区二区三区| 日韩视频免费| 99视频+国产日韩欧美| 日韩午夜精品| 日韩在线观看中文字幕| 91精品国产自产在线丝袜啪| 久久爱www成人| 久久尤物视频| 亚洲激情中文在线| 欧美日韩黄网站| 精品亚洲二区| 国产农村妇女精品一二区| 日本一区福利在线| 日本精品黄色| 中文字幕av一区二区三区人 | 一区二区三区视频免费观看| 亚洲欧美日韩精品一区二区| 日韩二区三区四区| 四虎4545www国产精品 | 亚洲香蕉视频| 69精品国产久热在线观看| 亚洲天堂av影院| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 日韩一区免费| 久久亚洲专区| 精品一区二区三区中文字幕| aa亚洲婷婷| 国产在线观看91一区二区三区 | 国产精品永久| 99久久99久久精品国产片果冰| 亚洲日本免费电影| 国内自拍视频一区二区三区| 亚洲免费毛片| 免费av一区| 日韩免费视频| 精品免费av| 国产欧美午夜| 日本一区二区三区中文字幕| 999国产精品永久免费视频app| 国产精品密蕾丝视频下载| 亚洲欧美高清| 欧美日韩国产综合网| 日韩一区电影| 中文在线а√天堂| 久久av免费看| 国产精品嫩模av在线| 综合激情一区| 中文不卡在线| 首页欧美精品中文字幕| 日韩视频在线一区二区三区| 免费久久精品| 亚洲经典在线| 首页国产欧美久久| 亚洲一区av| 日韩一区网站| 久久国产乱子精品免费女| 欧美性www| 精品国产亚洲一区二区三区| 最新中文字幕在线播放| 精品黄色一级片| 国产精品成人一区二区网站软件| 日韩中文字幕在线一区| 日本中文字幕视频一区| 青青伊人久久| 精品久久福利| 成人羞羞视频播放网站| 欧美日韩国产传媒| 日韩精品亚洲专区在线观看| 欧美日韩在线精品一区二区三区激情综合 | 亚洲网址在线观看| 国产精品香蕉| 日韩一区欧美| 欧美日韩国产传媒| 日本在线不卡视频| 久久精品日韩欧美| av亚洲在线观看| 69堂精品视频在线播放| 日本欧美国产| 视频在线观看91| 麻豆久久久久久| 亚洲激情二区| 久久爱www成人| 日本亚洲不卡| 98精品久久久久久久| 国产剧情在线观看一区| 四虎成人精品一区二区免费网站| av亚洲免费| 久久久久免费| 国产+成+人+亚洲欧洲在线| 国产日韩欧美三级| 日韩专区视频网站| 日韩免费精品| 欧美啪啪一区| 国产精品一区2区3区| 亚洲精品视频一二三区| 午夜精品婷婷| 亚洲v在线看| 欧美 日韩 国产一区二区在线视频| 亚洲精品系列| 免费久久99精品国产自在现线| 免费观看久久av| 亚洲综合欧美| 99国产精品久久久久久久成人热| 国产综合婷婷| 蜜桃视频免费观看一区| 亚洲三级精品| 免费一级欧美片在线观看网站| 美女视频黄免费的久久| 国产a久久精品一区二区三区| av高清不卡| 影音先锋久久| 欧美三级第一页| 成人影视亚洲图片在线| 999久久久精品国产| 欧美成人久久| 日本久久二区| 91亚洲国产| 欧美日韩中文字幕一区二区三区 | 五月天综合网站| 亚洲婷婷丁香| 日韩av自拍| 国产精品社区| 免费亚洲婷婷| 免费视频国产一区| 欧美一区=区三区| 天堂8中文在线最新版在线| 不卡中文字幕| 国产精品美女久久久久久不卡 | 亚洲精品黄色| 麻豆91在线播放| 999久久久国产精品| 91嫩草精品| 秋霞影视一区二区三区| 日韩有吗在线观看| 亚洲黄色免费看| 亚洲视频二区| 成人一区而且| 日韩精品免费视频人成| 黄毛片在线观看| 中文字幕av一区二区三区人| 国产一区国产二区国产三区| 三级在线观看一区二区 | 捆绑调教日本一区二区三区| 午夜在线一区二区| 美日韩一区二区三区| 五月精品视频| 国产精品综合色区在线观看| 欧美99久久| 日韩精品免费视频一区二区三区| 欧美激情在线精品一区二区三区| 国产一区视频在线观看免费| 日韩av电影一区| 一区福利视频| 欧美sm一区| 久久只有精品| 欧美影院视频| 亚洲精品在线国产| 日韩高清不卡| 国产精品99一区二区三区| 欧美一级网址| 亚洲香蕉久久| 久久亚洲风情| 蜜臀91精品一区二区三区| 欧美~级网站不卡| 久久久天天操| 91成人精品| 亚洲成人国产| 欧美性感美女一区二区| 深夜视频一区二区| 日韩三区在线| 欧美日韩免费看片| 欧美日韩在线二区| 麻豆传媒一区二区三区| 电影91久久久| 成人美女视频| 伊人久久大香线蕉av超碰演员|