java程序设计五子棋
自己用java语言开发的五子棋小游戏其中实现了双人对战和人机对战功能,供大家参考
package FiveChess;
import java.awt.Color;
import java.awt.Graphics;
public class Chess {
int id;
int chess_x;
int chess_y;
int state;
int radius=13;
public Chess(){}
public Chess(int id,int chess_x,int chess_y,int state){
this.id=id;
this.chess_x=chess_x;
this.chess_y=chess_y;
this.state=state;
}
public int getChess_x() {
return chess_x;
}
public void setChess_x(int chess_x) {
this.chess_x = chess_x;
}
public int getChess_y() {
return chess_y;
}
public void setChess_y(int chess_y) {
this.chess_y = chess_y;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void drawChess(Graphics g){
自己用java语言开发的五子棋小游戏其中实现了双人对战和人机对战功能,供大家参考
Color color=null;
if(state==1){
color=new Color(255,255,255);
g.setColor(color);
g.fillOval(chess_x*30-radius, chess_y*30-radius, radius*2, radius*2);
}else if(state==-1){
color=new Color(0,0,0);
g.setColor(color);
g.fillOval(chess_x*30-radius, chess_y*30-radius, radius*2, radius*2);
}
}
}
package FiveChess;
import java.awt.Graphics;
public class ChessBoard {
int [][]board=new int[16][16];
public ChessBoard(){
initialBoard();
}
public void initialBoard(){
for(int i=0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
board[i][j]=0;//0无棋1白棋-1黑棋
}
}
}
public void draw(Graphics g){
g.drawLine(25, 25, 455, 25);
g.drawLine(455, 25, 455, 455);
g.drawLine(25, 455, 455, 455);
g.drawLine(25, 25, 25, 455);
int i=1,j=1;
while(i<board.length){
g.drawLine(i*30, 30, i*30, 15*30);
i++;
}
while(j<board.length){
g.drawLine(30,j*30 , 15*30, j*30);
j++;
}
自己用java语言开发的五子棋小游戏其中实现了双人对战和人机对战功能,供大家参考
}
public int getState(int x,int y){
if(x>0&y>0&x<16&y<16) return board[x][y];
else return -2;
}
public void setState(int x,int y,int state){
board[x][y]=state;
}
}
package FiveChess;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.TextArea;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import http://doc.guandang.net.ServerSocket;
import http://doc.guandang.net.Socket;
import java.sql.Time;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTextField;
import javax.swing.border.Border;
public class ChessServer extends JFrame implements ActionListener{
public static final int frame_width=35;//窗体的宽度
public static final int frame_height=27;//窗体的高度
public static final int frame_opration=10;//操作区域的宽度
自己用java语言开发的五子棋小游戏其中实现了双人对战和人机对战功能,供大家参考
public static final int block_width=20;//单位宽度 public static final int block_height=20;//单位高度 ServerWar jpz=new ServerWar(this);//创建服务器端主面板 JMenuBar menubar=new JMenuBar();//创建菜单条 JMenu fileMenu=new JMenu("文件"); JMenuItem one = new JMenuItem("单人游戏"); JMenuItem two =new JMenuItem("双人游戏"); JMenuItem exit=new JMenuItem("退出"); JPanel jpy=new JPanel();//创建操作区的面板 JLabel jlPort=new JLabel("端口号");//创建提示用户输入端口号的标签 JTextField jtfPort=new JTextField("9999");//创建用于输入端口号的文本框,默认是9999 JLabel jlNickName=new JLabel("昵 称");//创建用于提示输入昵称的标签 JTextField jtfNickName=new JTextField("Player2");//创建用于输入昵称的文本框 JButton jbNew=new JButton("建主");//创建"建主","停止","开始"三个动作按钮 JButton jbStop=new JButton("停止"); JButton jbStart=new JButton("开始"); JButton jbSend=new JButton("发送"); TextArea jaChat=new TextArea("",5000,1,TextArea.SCROLLBARS_VERTICAL_ONLY); int textIndex=0; JTextField jtfMessage=new JTextField("你好"); JSplitPane jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jpz,jpy);//创建JSplitPane ServerSocket ss;//声明ServerSocket引用 ServerThread st;//声明服务器线程 ServerAgentThread sat;//声明服务器代理线程引用 public ChessServer(){ this.addComponent();//初始化窗体,将控件添加到窗体中 this.addListener();//为相应控件注册监听器 this.initialFrame();//初始化窗体 jpz.setFocusable(true); jpz.requestFocus(true);//使左边面板获得焦点 } public void addComponent(){//添加控件 的方法 jpy.setLayout(null);//设为空布局 jlPort.setBounds(10,20,40,25); jpy.add(jlPort);//添加"端口号"标签 jtfPort.setBounds(55,20,100,25); jpy.add(jtfPort);//添加输入端口号的文本框
自己用java语言开发的五子棋小游戏其中实现了双人对战和人机对战功能,供大家参考
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




