자바 오목 게임 의 전체 코드 구현

12108 단어 자바오목
자바 로 간단 한 오목 을 만 들 었 습 니 다.참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
머리말
요 이틀 동안 여가 시간 에 오목 종목 을 만들어 서 여러분 께 보 여 드 렸 습 니 다.화면 은 이 렇 습 니 다.

화면 이 매우 못 생 겼 다 는 것 을 알 고 있 습 니 다.저 는 몇 년 동안 PS 기반 을 가지 고 있 지만 지식 이 얕 고 심미관 이 만 족 스 럽 지 못 합 니 다.이렇게 하 는 것 은 정말 한계 입 니 다.(사실은 제 가 하기 가 귀 찮 습 니 다)여러분 은 그냥 보 세 요.
아래 에 코드 를 놓 아서 여러분 의 참 고 를 편리 하 게 하기 위해 서 저 는 거의 모든 코드 에 주석 을 표시 합 니 다.   
테스트 클래스 코드

public class Test {
 public static void main(String[] args) {
 MyJFrame mj=new MyJFrame();
 mj.myJFrame();
 }
}
MyJFrame 클래스 코드

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class MyJFrame extends JFrame implements MouseListener {
 int qx = 20, qy = 40, qw = 490, qh = 490;//    、  
 int bw = 150, bh = 50, bx = 570, by = 150;//    、  
 int x = 0, y = 0;//      
 int[][] SaveGame = new int[15][15];//      
 int qc = 1;//    =2,  =1
 int qn = 0;//        
 boolean canplay = true;//           
 String go = "    ";//    


 //---------------------------------------------------------------------------------------------------------------------
 //  
 public void myJFrame() {

 this.setTitle("   "); //  
 this.setSize(800, 550); //    
 this.setResizable(false); //          = 
 this.setDefaultCloseOperation(MyJFrame.EXIT_ON_CLOSE);//                 

 int width = Toolkit.getDefaultToolkit().getScreenSize().width;//      
 int height = Toolkit.getDefaultToolkit().getScreenSize().height;//      
// System.out.println("  :"+width);//  
// System.out.println("  :"+height);//  

 this.setLocation((width - 800) / 2, (height - 600) / 2); //             

 this.addMouseListener(this);

 this.setVisible(true); //      = 
 }


 //---------------------------------------------------------------------------------------------------------------------
 //  paint  ,    
 public void paint(Graphics g) {

 //           
 BufferedImage bi = new BufferedImage(800, 550, BufferedImage.TYPE_INT_ARGB);
 Graphics g2 = bi.createGraphics();

 //      
 BufferedImage image = null;
 try {
  image = ImageIO.read(new File("D:/#Java/   /tp/wzqbj.jpg"));
 } catch (IOException e) {
  e.printStackTrace();
 }
 g2.drawImage(image, 10, 10, this);//    

 g2.setColor(Color.BLACK);//      
 g2.setFont(new Font("    ", 10, 50));//    
 g2.drawString("     ", 525, 100);//    

 //  
 g2.setColor(Color.getHSBColor(30, (float) 0.10, (float) 0.90));//      
 g2.fillRect(qx, qy, qw, qh);//        

 //    
 g2.setColor(Color.WHITE);//      
 g2.fillRect(bx, by, bw, bh);//      
 g2.setFont(new Font("    ", 10, 30));//    
 g2.setColor(Color.black);//      
 g2.drawString("  ", 615, 185);//    

 //    
 g2.setColor(Color.LIGHT_GRAY);//      
 g2.fillRect(bx, by + 60, bw, bh);//      
 g2.setFont(new Font("    ", 10, 30));//    
 g2.setColor(Color.WHITE);//      
 g2.drawString("  ", 615, 245);//    

 //    
 g2.setColor(Color.GRAY);//      
 g2.fillRect(bx, by + 120, bw, bh);//      
 g2.setFont(new Font("    ", 10, 30));//    
 g2.setColor(Color.WHITE);//      
 g2.drawString("  ", 615, 305);//    

 //     
 g2.setColor(Color.getHSBColor(30, (float) 0.10, (float) 0.90));//      
 g2.fillRect(550, 350, 200, 150);//        
 g2.setColor(Color.black);//      
 g2.setFont(new Font("  ", 10, 20));//    
 g2.drawString("    ", 610, 380);//    
 g2.drawString(go, 610, 410);//    
 g2.drawString("  :    ", 560, 440);//    
 g2.drawString("    :", 560, 465);//    
 g2.drawString("qq 717535996", 560, 490);//    


 g2.setColor(Color.BLACK);//      

 //      
 for (int x = 0; x <= qw; x += 35) {
  g2.drawLine(qx, x + qy, qw + qx, x + qy);//      
  g2.drawLine(x + qx, qy, x + qx, qh + qy);//      
 }

 //     
 for (int i = 3; i <= 11; i += 4) {
  for (int y = 3; y <= 11; y += 4) {
  g2.fillOval(35 * i + qx - 3, 35 * y + qy - 3, 6, 6);//     
  }
 }


 //    
 for (int i = 0; i < 15; i++) {
  for (int j = 0; j < 15; j++) {
  if (SaveGame[i][j] == 1)//  
  {
   int sx = i * 35 + qx;
   int sy = j * 35 + qy;
   g2.setColor(Color.BLACK);
   g2.fillOval(sx - 13, sy - 13, 26, 26);//     
  }
  if (SaveGame[i][j] == 2)//  
  {
   int sx = i * 35 + qx;
   int sy = j * 35 + qy;
   g2.setColor(Color.WHITE);
   g2.fillOval(sx - 13, sy - 13, 26, 26);//     
   g2.setColor(Color.BLACK);
   g2.drawOval(sx - 13, sy - 13, 26, 26);//     
  }
  }
 }
 g.drawImage(bi, 0, 0, this);


// g.drawRect(20, 20, 20, 20);//      
 }


 //---------------------------------------------------------------------------------------------------------------------
 //    
 private boolean WinLose() {
 boolean flag = false;//  
 int count = 1;//   
 int color = SaveGame[x][y];//      

 //          
 int i = 1;//   
 while (color == SaveGame[x + i][y]) {
  count++;
  i++;
 }
 i = 1;//   
 while (color == SaveGame[x - i][y]) {
  count++;
  i++;
 }
 if (count >= 5) {
  flag = true;
 }

 //          
 count = 1;
 i = 1;//   
 while (color == SaveGame[x][y + i]) {
  count++;
  i++;
 }
 i = 1;//   
 while (color == SaveGame[x][y - i]) {
  count++;
  i++;
 }
 if (count >= 5) {
  flag = true;
 }

 //          (    )
 count = 1;
 i = 1;//   
 while (color == SaveGame[x - i][y - i]) {
  count++;
  i++;
 }
 i = 1;//   
 while (color == SaveGame[x + i][y + i]) {
  count++;
  i++;
 }
 if (count >= 5) {
  flag = true;
 }

 //          (    )
 count = 1;
 i = 1;//   
 while (color == SaveGame[x + i][y - i]) {
  count++;
  i++;
 }
 i = 1;//   
 while (color == SaveGame[x - i][y + i]) {
  count++;
  i++;
 }
 if (count >= 5) {
  flag = true;
 }

 return flag;
 }


 //---------------------------------------------------------------------------------------------------------------------
 //     
 public void Initialize() {
 //        
 for (int i = 0; i < 15; i++) {
  for (int j = 0; j < 15; j++) {
  SaveGame[i][j] = 0;
  }
 }

 //    
 qc = 1;
 go = "    ";
 }


 //---------------------------------------------------------------------------------------------------------------------
 @Override//    
 public void mouseClicked(MouseEvent e) {

 }

 @Override//    
 public void mousePressed(MouseEvent e) {

 //        
 x = e.getX();
 y = e.getY();


 //         
 if (canplay == true) {
  //          
  if (x > qx && x < qx + qw && y > qy && y < qy + qh) {
  //          
  if ((x - qx) % 35 > 17) {
   x = (x - qx) / 35 + 1;
  } else {
   x = (x - qx) / 35;
  }
  if ((y - qy) % 35 > 17) {
   y = (y - qy) / 35 + 1;
  } else {
   y = (y - qy) / 35;
  }

  //           
  if (SaveGame[x][y] == 0) {
   SaveGame[x][y] = qc;
   qn = 0;
  } else {
   qn = 1;
  }

  //    
  if (qn == 0) {
   if (qc == 1) {
   qc = 2;
   go = "    ";
   } else {
   qc = 1;
   go = "    ";
   }
  }

  this.repaint();//      paint  

  //       
  boolean wl = this.WinLose();
  if (wl) {
   JOptionPane.showMessageDialog(this, "    ," + (SaveGame[x][y] == 1 ? "    " : "    "));//       
   canplay = false;
  }


//  System.out.println(1);//  
  } else {
//  System.out.println(0);//  
  }
 }


 //      
 //          
 if (e.getX() > bx && e.getX() < bx + bw && e.getY() > by && e.getY() < by + bh) {
  //        
  if (canplay == false) {
  //      ,     
  canplay = true;
  JOptionPane.showMessageDialog(this, "    ");
  //     
  Initialize();

  this.repaint();//      paint  

  } else {
  //       ,     
  JOptionPane.showMessageDialog(this, "    ");
  //     
  Initialize();

  this.repaint();//      paint  

  }
 }


 //      
 //          
 if (e.getX() > bx && e.getX() < bx + bw && e.getY() > by + 60 && e.getY() < by + 60 + bh) {
  //        
  if (canplay == true) {
  //          
  int z = 0;
  for (int i = 0; i < 15; i++) {
   for (int j = 0; j < 15; j++) {
   if (SaveGame[i][j] != 0) {
    z++;
   }
   }
  }
  //       
  if (z != 0) {
   JOptionPane.showMessageDialog(this, "      ,            。");
  } else {
   JOptionPane.showMessageDialog(this, "       ");
  }

  } else {
  JOptionPane.showMessageDialog(this, "      ");
  }
 }


 //      
 //          
 if (e.getX() > bx && e.getX() < bx + bw && e.getY() > by + 120 && e.getY() < by + 120 + bh) {
  //        
  if (canplay == true) {
  //      
  if (qc == 1) {
   JOptionPane.showMessageDialog(this, "    ,    ");
   canplay = false;
  } else if (qc == 2) {
   JOptionPane.showMessageDialog(this, "    ,    ");
   canplay = false;
  }
  } else {
  JOptionPane.showMessageDialog(this, "      ");
  }
 }


 }


 @Override//    
 public void mouseReleased(MouseEvent e) {

 }

 @Override//    
 public void mouseEntered(MouseEvent e) {

 }

 @Override//    
 public void mouseExited(MouseEvent e) {

 }
}
종결 어
제 가 직접 테스트 한 것 이기 때문에 주요 기능 은 문제 가 없 을 것 입 니 다.세부 사항 을 무시 할 수 있 습 니 다.잘못된 부분 이 있 으 면 지적 해 주세요.
더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
자바 클래식 게임 모음
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기