我的五子棋未完成~~求救大虾!!!

来源:互联网 发布:淘宝放单的商家 编辑:程序博客网 时间:2024/06/10 11:24

做了个差不多的,因为刚开始学的java做的还不完整,望高手指点下,判断输赢的我还没写出来,就是扫描谁先有了五个连一起

import java.awt.*;
import java.awt.event.*;
public class MyQP extends Frame
implements MouseListener
{
 int d = 25;
 int jj = 30;
 int hl = 15;
 int bk =hl*jj;
 int y = 5;
 int x = 5;
 int num = 16;
 
 int qz[][] = new int[num][num];//0表示无子,1表示白子,2表示黑子
 boolean b = true;
 MenuBar bt = new MenuBar();
 Menu t1 = new Menu("游戏");
 Menu t2 = new Menu("帮助");
 MenuItem t3 = new MenuItem("开局");
 MenuItem t4 = new MenuItem("悔棋");
 MenuItem t5 = new MenuItem("关闭");
 MenuItem t6 = new MenuItem("关于五子棋");
 public MyQP()
 {
  
  this.setTitle("五子棋");
  this.setMenuBar(bt);
  bt.add(t1);
  bt.add(t2);
  t1.add(t3);
  t1.add(t4);
  t1.add(t5);
  t2.add(t6);
  this.setBounds(100,100,bk+40+20,bk+40+60);
  this.setResizable(false);
  this.addMouseListener(this);
  this.addWindowListener(new MyApd());
  this.setBackground(new Color(128,128,64));
  this.setVisible(true);
 }
 public void mouseReleased(MouseEvent e){}
 public void mouseClicked(MouseEvent e)
 {
  
 }
 public void mouseEntered(MouseEvent e)
 {
  
 }
 public void mouseExited(MouseEvent e)
 {
  
 }
 public void mousePressed(MouseEvent e)
 {
  System.out.println(e.getX()+":"+e.getY());//打印X,Y的坐标
  x=(e.getX()-30+jj/2-1)/jj;//减一归前面,加一归后面
  y=(e.getY()-60+jj/2-1)/jj;
  if(x<0||x>=16||y<0||y>=16)//是否下在棋盘外
  {
   return;//不让在棋盘外落子
  }
  System.out.println(x+":"+y);
  
  b=!b;
  if(qz[x][y]!=0)
  {
   return;
  }
  
  if(b)
  {
   qz[x][y] = 1;
  
  }else
  {
   qz[x][y] = 2;
  
  }
  
  this.repaint();
 }
 public void paint(Graphics g)
 {
  
      g.setColor(new Color(128,128,64));
 
   g.fillRect(10,40,bk+40,bk+40);
   g.setColor(Color.BLACK);
  for(int i =0;i<=hl;i++)
 
  {
   g.drawLine(30,60+i*jj,30+hl*jj,60+i*jj);
      g.drawLine(30+i*jj,60,30+i*jj,60+hl*jj);
  }
 
    
  Graphics2D g2d=(Graphics2D)g;
  g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                        RenderingHints.VALUE_ANTIALIAS_ON);
        
 
 for(int i=0;i<num;i++)//扫看棋盘上
 {
   for(int j=0;j<num;j++)
  {
   switch(qz[i][j])//当数组的值为1时画白子,为2时黑子
      {
    case 1:g.setColor(Color.white);break;
    case 2:g.setColor(Color.black);break;
      }
      if(qz[i][j]!=0)
       {
         g.fillOval(30-d/2+i*jj,60-d/2+j*jj,d,d);
       }
   
  }
 }
  
 }

 public static void main(String args[])
 {
  new MyQP();
 }
}
class MyApd extends WindowAdapter
{
 public void windowClosing(WindowEvent e)
 {
  System.exit(0);
 }
}

 

 

 

原创粉丝点击