java——棋牌类游戏五子棋(singlewzq1.0)之一

来源:互联网 发布:java两年工作经验面试 编辑:程序博客网 时间:2024/06/06 12:24

这是本人最近一段时间写的五子棋的java代码,大体框架都实现了,一些细节还需要优化。

package basegame;import java.awt.Color;import java.awt.Point;import javax.swing.JFrame;import javax.swing.JOptionPane;/*************************************************************************** * TODO * <br>Created on 2013-6-28 下午7:45:13<br> * @author daicy ***************************************************************************/public class GameFrame extends JFrame  {private Player[] players = new Player[2];private GameThread gameThread;private ChessBoard chessBoard;public int lordIndex = -1;public int turnIndex = -1;public int id;public GameFrame(String name){initMain();// 初始化//this.setlord(1);reStart();    setVisible(true);//new Thread(new PaintThread()).start();    }// 初始化窗体private void initMain() {{setBackground(new Color(0, 112, 26)); // 背景为绿色setTitle("五子棋");setSize(536,546);setResizable(false);setLocationRelativeTo(getOwner()); // 屏幕居中setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}// 初始化窗体public void reStart() {if(null!=chessBoard){this.remove(chessBoard);}chessBoard = new ChessBoard(this);add(chessBoard);players[0] = new Player(0+"",0);players[0].userState = 0;players[0].setChessNum(1);players[1] = new Player(1+"",1);players[1].userState = 0;players[1].setChessNum(2);gameThread = new GameThread(this);gameThread.start();gameThread.gameState = 2;turnIndex = 1;}public static void main(String args[]) {GameFrame GamePanel = new GameFrame("daicy");}public Player[] getPlayers() {return players;}public void setPlayers(Player[] players) {this.players = players;}public ChessBoard getChessBoard() {return chessBoard;}public void setChessBoard(ChessBoard chessBoard) {this.chessBoard = chessBoard;}public void sendXY(int id,Point point){getPlayers()[id].setCurrentChesse(point);getChessBoard().chesses[point.x][point.y] = getPlayers()[id].getChessNum();getChessBoard().repaint();if (new FiveChessAI(getChessBoard().chesses,2,1).showWin(point.x, point.y, getPlayers()[id].getChessNum())) {setWinById(getPlayers()[id].getChessNum());}turnIndex = (id+1)%2;}public void setWinById(int id){gameThread.gameState = -1;chessBoard.removeMouseListener(chessBoard);chessBoard.removeMouseListener(chessBoard);String s = "恭喜电脑" + id + ",赢了! 你的智商有待提高哦";JOptionPane.showMessageDialog(this, s);this.reStart();}}
package basegame;import java.awt.Point;public class GameThread extends Thread {private GameFrame mainPanel ;public int gameState;  //0准备 1 抢地主2出牌; -1 结束public GameThread(GameFrame mainPanel) {this.mainPanel = mainPanel;}@Overridepublic void run() {        while (true) {        if(gameState==-1){        break;        }switch (gameState) {case 0:    break;case 1:break;case 2:if(mainPanel.turnIndex==0){}else if(mainPanel.turnIndex>0){//Integer x = (int) (Math.random() * 14);//Integer y = (int) (Math.random() * 14);int num = new FiveChessAI(mainPanel.getChessBoard().chesses,2,1).makeResultPoint();Point point = new Point();point.x = (num / 15);point.y = (num % 15);mainPanel.sendXY(mainPanel.turnIndex,point);}break;}}}}

package basegame;import java.awt.Point;public class Player {    public Point currentChesse ;        //用于记录自己刚走过的棋子 private String name ;private Integer id ;private Integer chessNum ;public int userState = -1; // 0 准备  1 抢地主  2 出牌;public Player(String name, Integer id) {super();this.name = name;this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Point getCurrentChesse() {return currentChesse;}public void setCurrentChesse(Point currentChesse) {this.currentChesse = currentChesse;}public Integer getChessNum() {return chessNum;}public void setChessNum(Integer chessNum) {this.chessNum = chessNum;}    }



原创粉丝点击