mItem1 = new JMenuItem("开始"); mItem2 = new JMenuItem("退出"); JMenu3 = new JMenu("帮助"); mItem3 = new JMenuItem("游戏介绍"); mItem4 = new JMenuItem("作者介绍"); mItem3.addActionListener(this); mItem4.addActionListener(this); JMenu1 = new JMenu("游戏"); JMenu2 = new JMenu("帮助"); mBar = new JMenuBar(); JMenu1.add(mItem1); JMenu1.addSeparator(); //分隔线 JMenu1.add(mItem2); JMenu2.add(JMenu3); JMenu3.add(mItem3); JMenu3.add(mItem4); mBar.add(JMenu1); mBar.add(JMenu2); setJMenuBar(mBar);
mItem1.addActionListener(this); mItem2.addActionListener(this); lbl = new JLabel("红方先手"); cp.add(lbl,BorderLayout.NORTH); jp1 = new JPanel(); jp1.setLayout(new GridLayout(3,3)); for (int i = 0; i<9; i++) { btn[i] = new JButton(); jp1.add(btn[i]); btn[i].addActionListener(this); } cp.add(jp1,BorderLayout.CENTER); btn_start = new JButton("重新开始"); jp2 = new JPanel(); cp.add(jp2,BorderLayout.SOUTH); jp2.add(btn_start); this.setResizable(false); icon1 = new ImageIcon("001.jpg"); icon2 = new ImageIcon("002.jpg");
btn_start.addActionListener(this); }
public void actionPerformed(ActionEvent e) { if (e.getSource() == mItem1) { this.dispose(); new Game6(); }
if (e.getSource() == mItem2) { this.dispose(); System.exit(0); } else if (e.getSource() == mItem3) JOptionPane.showMessageDialog(null,"游戏规则:"+"\n" +"在三子棋游戏中,两个游戏者在3*3网格的有效单元格中轮流作标记(一个人用X,另一个人用O)。如果一个游戏者在网格的水平、垂直或对角线方向上作了三个连续标记,游戏就以这个游戏者得胜而告终。当网络的所有单元格都标满了标记而没有产生优胜者,就出现了平局。"); else if (e.getSource() == mItem4) JOptionPane.showMessageDialog(null,"作者:07计本055苏小凯");
else if (e.getSource() == btn_start) { this.dispose(); //销毁当前对象 new Game6(); } else { count++; if (count%2 == 1) { lbl.setText("绿方下"); for (int i = 0; i<9; i++) { if (e.getSource() == btn[i]) { btn[i].setIcon(icon1); btn[i].removeActionListener(this); // btn[i].setEnabled(false); //这样会使按钮图片变灰; this.win(); } } } else if (count%2 == 0) { lbl.setText("红方下"); for (int i = 0; i<9; i++) { if (e.getSource() == btn[i]) { btn[i].setIcon(icon2); btn[i].removeActionListener(this); // btn[i].setEnabled(false); //这样会使按钮图片变灰; this.win(); } } } } }
public void win() {
for (int j = 0; j<9; j=j+3) { if (btn[j].getIcon()==btn[j+1].getIcon() && btn[j+1].getIcon()==btn[j+2].getIcon()) { if (btn[j].getIcon() == icon1) this.bbb(); else if (btn[j].getIcon() == icon2) this.ccc(); } }
for (int j = 0; j<3; j++) { if (btn[j].getIcon()==btn[j+3].getIcon() && btn[j+3].getIcon()==btn[j+6].getIcon()) { if (btn[j].getIcon() == icon1) this.bbb(); else if (btn[j].getIcon() == icon2) this.ccc(); } } if (btn[0].getIcon()==btn[4].getIcon() && btn[4].getIcon()==btn[8].getIcon()) { if (btn[0].getIcon() == icon1) this.bbb(); else if (btn[0].getIcon() == icon2) this.ccc(); } if (btn[2].getIcon()==btn[4].getIcon() && btn[4].getIcon()==btn[6].getIcon()) { if (btn[2].getIcon() == icon1) this.bbb(); else if (btn[2].getIcon() == icon2) this.ccc(); } }
public void bbb() { lbl.setText("游戏结束了!!!"); JOptionPane.showMessageDialog(null,"红方胜利,绿方要加油哦!"); for (int i = 0; i<9; i++) btn[i].removeActionListener(this); }
public void ccc() { lbl.setText("game is over!"); JOptionPane.showMessageDialog(null,"绿方胜利,红方要加油哦!"); for (int i = 0; i<9; i++) btn[i].removeActionListener(this); }
public static void main(String[]args) { Game6 game2 = new Game6(); } } 这是个三子棋的,我们老师让做一个网络版三子棋,呵呵
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;public class Client extends JFrame implements ActionListener {
Container cp;
JLabel lbl;
JButton [] btn = new JButton[9];
JButton btn_start;
JPanel jp1,jp2;
int count = 0;
ImageIcon icon1,icon2;
JMenuBar mBar;
JMenu JMenu1,JMenu2,JMenu3;
JMenuItem mItem1,mItem2,mItem3,mItem4;
public Game6() {
setSize(300,400);
setLocation(312,234);
setVisible(true);
cp = getContentPane();
cp.setLayout(new BorderLayout());
mItem1 = new JMenuItem("开始");
mItem2 = new JMenuItem("退出");
JMenu3 = new JMenu("帮助");
mItem3 = new JMenuItem("游戏介绍");
mItem4 = new JMenuItem("作者介绍");
mItem3.addActionListener(this);
mItem4.addActionListener(this);
JMenu1 = new JMenu("游戏");
JMenu2 = new JMenu("帮助");
mBar = new JMenuBar();
JMenu1.add(mItem1);
JMenu1.addSeparator(); //分隔线
JMenu1.add(mItem2);
JMenu2.add(JMenu3);
JMenu3.add(mItem3);
JMenu3.add(mItem4);
mBar.add(JMenu1);
mBar.add(JMenu2);
setJMenuBar(mBar);
mItem1.addActionListener(this);
mItem2.addActionListener(this); lbl = new JLabel("红方先手");
cp.add(lbl,BorderLayout.NORTH);
jp1 = new JPanel();
jp1.setLayout(new GridLayout(3,3));
for (int i = 0; i<9; i++) {
btn[i] = new JButton();
jp1.add(btn[i]);
btn[i].addActionListener(this);
}
cp.add(jp1,BorderLayout.CENTER);
btn_start = new JButton("重新开始");
jp2 = new JPanel();
cp.add(jp2,BorderLayout.SOUTH);
jp2.add(btn_start);
this.setResizable(false);
icon1 = new ImageIcon("001.jpg");
icon2 = new ImageIcon("002.jpg");
btn_start.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == mItem1) {
this.dispose();
new Game6();
}
if (e.getSource() == mItem2) {
this.dispose();
System.exit(0);
}
else if (e.getSource() == mItem3)
JOptionPane.showMessageDialog(null,"游戏规则:"+"\n"
+"在三子棋游戏中,两个游戏者在3*3网格的有效单元格中轮流作标记(一个人用X,另一个人用O)。如果一个游戏者在网格的水平、垂直或对角线方向上作了三个连续标记,游戏就以这个游戏者得胜而告终。当网络的所有单元格都标满了标记而没有产生优胜者,就出现了平局。");
else if (e.getSource() == mItem4)
JOptionPane.showMessageDialog(null,"作者:07计本055苏小凯");
else if (e.getSource() == btn_start) {
this.dispose(); //销毁当前对象
new Game6();
}
else {
count++;
if (count%2 == 1) {
lbl.setText("绿方下");
for (int i = 0; i<9; i++) {
if (e.getSource() == btn[i]) {
btn[i].setIcon(icon1);
btn[i].removeActionListener(this);
// btn[i].setEnabled(false); //这样会使按钮图片变灰;
this.win();
}
}
}
else if (count%2 == 0) {
lbl.setText("红方下");
for (int i = 0; i<9; i++) {
if (e.getSource() == btn[i]) {
btn[i].setIcon(icon2);
btn[i].removeActionListener(this);
// btn[i].setEnabled(false); //这样会使按钮图片变灰;
this.win();
}
}
}
}
}
public void win() {
for (int j = 0; j<9; j=j+3) {
if (btn[j].getIcon()==btn[j+1].getIcon() && btn[j+1].getIcon()==btn[j+2].getIcon())
{
if (btn[j].getIcon() == icon1) this.bbb();
else if (btn[j].getIcon() == icon2) this.ccc();
}
}
for (int j = 0; j<3; j++) {
if (btn[j].getIcon()==btn[j+3].getIcon() && btn[j+3].getIcon()==btn[j+6].getIcon())
{
if (btn[j].getIcon() == icon1) this.bbb();
else if (btn[j].getIcon() == icon2) this.ccc();
}
} if (btn[0].getIcon()==btn[4].getIcon() && btn[4].getIcon()==btn[8].getIcon())
{
if (btn[0].getIcon() == icon1) this.bbb();
else if (btn[0].getIcon() == icon2) this.ccc();
}
if (btn[2].getIcon()==btn[4].getIcon() && btn[4].getIcon()==btn[6].getIcon())
{
if (btn[2].getIcon() == icon1) this.bbb();
else if (btn[2].getIcon() == icon2) this.ccc();
}
}
public void bbb() {
lbl.setText("游戏结束了!!!");
JOptionPane.showMessageDialog(null,"红方胜利,绿方要加油哦!");
for (int i = 0; i<9; i++) btn[i].removeActionListener(this);
}
public void ccc() {
lbl.setText("game is over!");
JOptionPane.showMessageDialog(null,"绿方胜利,红方要加油哦!");
for (int i = 0; i<9; i++) btn[i].removeActionListener(this);
}
public static void main(String[]args) {
Game6 game2 = new Game6();
}
}
这是个三子棋的,我们老师让做一个网络版三子棋,呵呵