📄 game.java
字号:
package like.wuziqi;
//:: 游戏在网络不会出现故障的理想状态下执行
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
//游戏窗口类,控制游戏进度,保存玩家信息
public class Game extends JFrame
{
//背景图片
Image background;
//棋板
QiBan qiBan;
//功能面板
FunctionPanel function;
//聊天面板
ChatPanel chatPanel;
//玩家信息
String name = "嗨~~";
//游戏状态
boolean Playing = false;
//菜单相关
Menu level,choose;
MenuItem start,back,loss,change,qiuHe;
CheckboxMenuItem robot,people,level1,level2,level3,white,black;
public Game()
{
//主窗口设置
super("小文版五子棋");
this.setSize(800,623);
this.setResizable(false);
//this.setLocation(100,50);
//GUI
Container container = this.getContentPane();
container.setLayout(null);
this.qiBan = new QiBan(this);
function = new FunctionPanel(this);
this.chatPanel = new ChatPanel();
container.add(chatPanel);
container.add(qiBan);
container.add(function);
qiBan.setLocation(95,95);
function.setLocation(600,0);
chatPanel.setLocation(600,275);
//菜单部分
MenuBar bar = new MenuBar();
Menu games = new Menu("游戏");
start = new MenuItem("开始",new MenuShortcut(KeyEvent.VK_S));
start.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Game.this.startGame();
}
});
back = new MenuItem("悔棋",new MenuShortcut(KeyEvent.VK_B));
back.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Game.this.back();
}
});
loss = new MenuItem("认输",new MenuShortcut(KeyEvent.VK_L));
loss.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
loss();
}
});
qiuHe = new MenuItem("求和",new MenuShortcut(KeyEvent.VK_Q));
qiuHe.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//后需更改
qiuHe();
}
});
change = new MenuItem("黑白交换",new MenuShortcut(KeyEvent.VK_C));
change.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//后需更改
change();
}
});
MenuItem exit = new MenuItem("退出",new MenuShortcut(KeyEvent.VK_E));
exit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
exit();
}
});
games.add(start);
games.addSeparator();
games.add(back);
games.add(change);
games.add(loss);
games.add(qiuHe);
games.addSeparator();
games.add(exit);
Menu set = new Menu("设置");
ItemListener setListener = new ItemListener()
{
public void itemStateChanged(ItemEvent e)
{
if(e.getSource()==Game.this.robot)
{
Game.this.robot.setState(true);
Game.this.people.setState(false);
}
else if(e.getSource()==Game.this.people)
{
Game.this.people.setState(true);
Game.this.robot.setState(false);
}
else if(e.getSource()==Game.this.level1)
{
Game.this.qiBan.robot.setLevel(1);
Game.this.level1.setState(true);
Game.this.level2.setState(false);
Game.this.level3.setState(false);
}
else if(e.getSource()==Game.this.level2)
{
Game.this.qiBan.robot.setLevel(2);
Game.this.level2.setState(true);
Game.this.level1.setState(false);
Game.this.level3.setState(false);
}
else if(e.getSource()==Game.this.level3)
{
Game.this.qiBan.robot.setLevel(3);
Game.this.level3.setState(true);
Game.this.level2.setState(false);
Game.this.level1.setState(false);
}
else if(e.getSource()==Game.this.white)
{
Game.this.white.setState(true);
Game.this.black.setState(false);
}
else if(e.getSource()==Game.this.black)
{
Game.this.black.setState(true);
Game.this.white.setState(false);
}
}
};
robot = new CheckboxMenuItem("人机对站",true);
robot.addItemListener(setListener);
people = new CheckboxMenuItem("网络对站",false);
people.addItemListener(setListener);
level = new Menu("电脑等级");
level1 = new CheckboxMenuItem("初级",true);
level2 = new CheckboxMenuItem("中级",false);
level3 = new CheckboxMenuItem("高级",false);
level1.addItemListener(setListener);
level2.addItemListener(setListener);
level3.addItemListener(setListener);
level.add(level1);
level.add(level2);
level.add(level3);
choose = new Menu("电脑选棋");
white = new CheckboxMenuItem("电脑执白",true);
black = new CheckboxMenuItem("电脑执黑",false);
white.addItemListener(setListener);
black.addItemListener(setListener);
choose.add(white);
choose.add(black);
set.add(robot);
set.add(people);
set.addSeparator();
set.add(level);
set.add(choose);
Menu help = new Menu("帮助");
MenuItem h = new MenuItem("操作说明");
h.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
Process s = Runtime.getRuntime().exec("notepad help.txt");
}
catch(Exception ee)
{
ee.printStackTrace();
}
}
});
MenuItem about = new MenuItem("关于小文五子棋");
about.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(Game.this,"作者~ 李文耀(lovebit)\n联系邮箱 yjandlwy@163.com\n开发平台 JCreator\n图片来源 QQ游戏&十二星座图片\n","关于",JOptionPane.DEFAULT_OPTION);
}
});
help.add(h);
help.addSeparator();
help.add(about);
bar.add(games);
bar.add(set);
bar.add(help);
this.setMenuBar(bar);
this.setVisible(true);
//this.name = JOptionPane.showInputDialog(this,"请输入你的大名","欢迎光临",JOptionPane.DEFAULT_OPTION);
this.addWindowListener
(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
exit();
}
}
);
this.function.endGame();
this.Playing = false;
robot.setEnabled(true);
people.setEnabled(true);
this.choose.setEnabled(true);
this.level.setEnabled(true);
this.start.setEnabled(true);
this.back.setEnabled(false);
this.loss.setEnabled(false);
this.qiuHe.setEnabled(false);
this.change.setEnabled(false);
//this.endGame();
//this.function.setText("欢迎使用小文版五子棋\n设置好游戏难度后按开始游戏\n更多帮助信息请查看帮助菜单");
}
public void startGame()
{
if(this.robot.getState())
this.qiBan.ifRobot = true;
else
this.qiBan.ifRobot = false;
//-------------独立部分-------------
if(this.qiBan.ifRobot)
{
if(this.level1.getState())
this.function.setText("人机对战(初级)");
else if(this.level2.getState())
this.function.setText("人机对战(中级)");
else if(this.level3.getState())
this.function.setText("人机对战(高级)");
this.qiBan.robot.start();
this.level.setEnabled(true);
if(this.black.getState())
this.qiBan.ifBlack = false;
else
this.qiBan.ifBlack = true;
}
else
{
this.function.setText("网络对站");
this.level.setEnabled(false);
this.qiBan.people.start();
}
//------------公共部分--------------
this.function.startGame();
this.Playing = true;
this.start.setEnabled(false);
this.back.setEnabled(true);
this.loss.setEnabled(true);
this.qiuHe.setEnabled(true);
this.change.setEnabled(true);
robot.setEnabled(false);
people.setEnabled(false);
this.choose.setEnabled(false);
this.qiBan.start();
}
public void startGame2()
{
robot.setState(false);
people.setState(true);
this.level.setEnabled(false);
//------------公共部分--------------
this.function.startGame();
this.Playing = true;
this.start.setEnabled(false);
this.back.setEnabled(true);
this.loss.setEnabled(true);
this.qiuHe.setEnabled(true);
this.change.setEnabled(true);
robot.setEnabled(false);
people.setEnabled(false);
this.choose.setEnabled(false);
this.qiBan.start();
}
public void endGame()
{
System.out.println("endgame()");
this.function.setText("游戏结束了,\n单击开始再来一盘");
this.function.endGame();
this.Playing = false;
robot.setEnabled(true);
people.setEnabled(true);
this.choose.setEnabled(true);
this.level.setEnabled(true);
this.start.setEnabled(true);
this.back.setEnabled(false);
this.loss.setEnabled(false);
this.qiuHe.setEnabled(false);
this.change.setEnabled(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -