⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.java

📁 java写的五子棋游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -