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;} }
- java——棋牌类游戏五子棋(singlewzq1.0)之一
- java——棋牌类游戏五子棋(singlewzq1.0)之二
- java——棋牌类游戏五子棋(webwzq1.0)之一(基础)
- java——棋牌类游戏五子棋(webwzq1.0)之二(通讯)
- java——棋牌类游戏五子棋(webwzq1.0)之三(Msg)
- 【VC++游戏开发】棋牌类游戏——五子棋
- java——棋牌类游戏斗地主(webddz1.0)之一
- java——棋牌类游戏斗地主(singleddz3.0)
- java——棋牌类游戏斗地主(webddz1.0)之二
- 棋牌源码游戏五子棋的核心算法
- 手机棋牌游戏—棋牌游戏发展的必然趋势
- Java棋牌游戏
- Java开发的游戏之一 五子棋 完整源代码
- 五子棋游戏——HGE
- JavaScript游戏——五子棋
- 控制台游戏——五子棋
- JAVA实战3——五子棋游戏设计
- 棋牌类游戏算法
- 贸易电商即将启动
- android-BroadcastReceiver 发送有序广播
- 黑马程序员—集合
- 向页面发送请求来发送短信
- FFMPEG源码分析(1)----初版--持续更新
- java——棋牌类游戏五子棋(singlewzq1.0)之一
- 浅谈在BCB中数组的妙用和纪录和改变控件的状态
- 电商平台Fancy融资5300万美元 史密斯参投
- smarty模板中判断一个字符包含在一个字符串里
- Special Memory Leak For IOS---drawinrect
- 电商淡季如何度过
- FFMPEG源码分析(1)--再版--持续更新
- js 返回上一页(按住ctr+鼠标点击及右键打开新标签的返回)
- poj1961之KMP应用