자바 오목 실현(상세 소스 첨부)

36164 단어 자바오목
본 논문 의 사례 는 자바 가 오목 게임 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
학습 목적:자바 에서 swing 류 와 자바 기초 지식의 공고 함 을 숙지 합 니 다.(문장 끝 에 소스 코드 파일 과 포 장 된 jar 파일 이 있 습 니 다)
효과 그림:

사고방식:**1.먼저 Frame 프레임 워 크 를 구축 하여 메뉴 옵션 과 버튼 클릭 이 벤트 를 설정 합 니 다.
MyFrame.java 파일 코드 는 다음 과 같 습 니 다.

package StartGame;

import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

//     
public class MyFrame extends JFrame {
 // static boolean canPlay1 = false;          
 final MyPanel panel = new MyPanel();

 public MyFrame() {

 //           
 this.setSize(500, 600); //       
 this.setTitle("     "); //       

 int width = Toolkit.getDefaultToolkit().getScreenSize().width;//        
 int height = Toolkit.getDefaultToolkit().getScreenSize().height;//        
 this.setLocation((width - 500) / 2, (height - 500) / 2); //        (  )
 this.setResizable(false); //          
 // this.setLocationRelativeTo(null);//            
 /*
 *         
 */
 //      
 JMenuBar bar = new JMenuBar();
 this.setJMenuBar(bar);
 //        
 JMenu menu1 = new JMenu("    "); //         
 JMenu menu2 = new JMenu("  ");
 JMenu menu3 = new JMenu("  ");
 bar.add(menu1); //          
 bar.add(menu2);
 bar.add(menu3);

 JMenu menu4 = new JMenu("    "); //  “  ”     “  ”  
 menu2.add(menu4);

 // JMenuItem item1=new JMenuItem("    ");
 // JMenuItem item2=new JMenuItem("    ");
 //   “”        
 JRadioButtonMenuItem item1 = new JRadioButtonMenuItem("    ");
 JRadioButtonMenuItem item2 = new JRadioButtonMenuItem("    ");
 // item1            
 item1.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "      ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setIsManAgainst(true);
  panel.Start();
  item1.setSelected(true);
 }

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //   item2         ,         
 item2.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub

 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "      ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setIsManAgainst(false);
  panel.Start();
  item2.setSelected(true);
 }
 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //                           
 ButtonGroup bg = new ButtonGroup();
 bg.add(item1);
 bg.add(item2);
 //            
 menu4.add(item1);
 menu4.add(item2);
 item2.setSelected(true);

 //     
 JMenu menu5 = new JMenu("    "); //  “    ”     “  ”  
 menu2.add(menu5);
 //                
 JRadioButtonMenuItem item3 = new JRadioButtonMenuItem("    ");
 JRadioButtonMenuItem item4 = new JRadioButtonMenuItem("    ");
 //   item3       ,      
 item3.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "      ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setIsBlack(true);
  panel.Start();
  item3.setSelected(true);
 }

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //   item4       
 item4.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "      ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setIsBlack(false);
  panel.Start();
  item4.setSelected(true);
 }

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //                           
 ButtonGroup bg1 = new ButtonGroup();
 bg1.add(item3);
 bg1.add(item4);
 //            
 menu5.add(item3);
 menu5.add(item4);
 item3.setSelected(true);
 //   “  ”      
 JMenuItem menu6 = new JMenuItem("  ");
 menu3.add(menu6);
 /*
 *           
 */
 //         
 JMenuItem menu7 = new JMenuItem("    ");
 menu1.add(menu7);
 JMenuItem menu8 = new JMenuItem("    ");
 menu1.add(menu8);
 menu7.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub

 panel.Start();
 // panel.repaint();

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 menu8.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "      ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "      ", "  ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.Start();
 }

 // panel.repaint();

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //         
 JMenuItem menu9 = new JMenuItem("    ");
 menu1.add(menu9);
 menu9.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "    ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "      ", "  ", 0, 1, icon, options, "         ");
 if (n == 0) {
  System.exit(0);//     
 }

 // panel.repaint();

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //       
 JRadioButtonMenuItem item5 = new JRadioButtonMenuItem("  ");//     
 JRadioButtonMenuItem item6 = new JRadioButtonMenuItem("  ");
 JRadioButtonMenuItem item7 = new JRadioButtonMenuItem("  ");
 // JRadioButtonMenuItem item8= new JRadioButtonMenuItem("  ");
 ButtonGroup bg3 = new ButtonGroup();//      
 bg3.add(item5);
 bg3.add(item6);
 bg3.add(item7);
 // bg3.add(item8);
 JMenu menu10 = new JMenu("      ");//         
 menu2.add(menu10);
 menu10.add(item5);//            
 menu10.add(item6);
 menu10.add(item7);
 // menu2.add(item8);
 item5.setSelected(true);//       
 //              
 item5.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub

 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "      ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setGameDifficulty(0);
  panel.Start();
  item5.setSelected(true);
 }
 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //         
 item6.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub

 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "    ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setGameDifficulty(1);
  panel.Start();
  item6.setSelected(true);
 }
 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //       
 item7.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub

 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 Object[] options = { "         ", " ,  " };
 int n = JOptionPane.showOptionDialog(null, "           ", "      ", 0, 1, icon, options, "         ");
 if (n == 0) {
  panel.setGameDifficulty(2);
  panel.Start();
  item7.setSelected(true);
 }
 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 //        
 menu6.addMouseListener(new MouseListener() {

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mousePressed(MouseEvent e) {
 // TODO Auto-generated method stub
 Icon icon = new Icon() {

  @Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
  // TODO Auto-generated method stub

  }

  @Override
  public int getIconWidth() {
  // TODO Auto-generated method stub
  return 0;
  }

  @Override
  public int getIconHeight() {
  // TODO Auto-generated method stub
  return 0;
  }
 };
 JOptionPane.showMessageDialog(null, "    :   ");

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }
 });
 /*
 *          
 */
 Container con = this.getContentPane(); //          
 con.add(panel); //         
 /*
 *            
 */

 }

}
2.두 번 째 단 계 는 바둑판 을 표시 하 는 용 기 를 설정 합 니 다.파일 원본 코드 는 MyPanel.java 입 니 다.

package StartGame;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.*;
import java.io.File;
import java.net.URL;
import java.util.Arrays;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

//           
public class MyPanel extends JPanel implements MouseListener, Runnable {
 private static final Toolkit ResourceUtil = null;
 public Image boardImg; //       
 static int[][] allChess = new int[15][15]; //     
 static int[][] temporaryChess = new int[15][15];
 int x;//         
 int y;//         
 Boolean canPlay = false; //       ,     
 Boolean isBlack = true;//      ,     
 Boolean isManAgainst = false; //          
 String message = "    ";
 Thread t = new Thread(this);
 int maxTime = 120;
 int blackTime = 120;
 int whiteTime = 120;
 String blackMessage = "   ";
 String whiteMessage = "   ";
 static int gameDifficulty = 0;//       ,0     ,1   ,2   ,3   
 //   isBlack  
public boolean getIsBlack() {
 return this.isBlack;
 }

 //   isBlack  
 public void setIsBlack(boolean isBlack) {
 this.isBlack = isBlack;
 }

 //   isManAgainst  
 public boolean getIsManAgainst() {
 return this.isManAgainst;
 }

 //   isManAgainst  
 public void setIsManAgainst(boolean isManAgainst) {
 this.isManAgainst = isManAgainst;
 }

 //   isManAgainst  
 public int getGameDifficulty() {
 return this.gameDifficulty;
 }

 //   setGameDifficulty  
 public void setGameDifficulty(int gameDifficulty) {
 this.gameDifficulty = gameDifficulty;
 }

 //     
 public MyPanel() {

 boardImg = Toolkit.getDefaultToolkit().getImage("./src/StartGame/fiveCHessBourd.jpg");
 this.repaint();
 //        
 addMouseListener((MouseListener) this);
 // addMouseMotionListener((MouseMotionListener) this);
 // this.requestFocus();
 t.start();
 t.suspend();//     

 // t.resume();

 }

 //      

 @Override
 public void paint(Graphics g) {

 super.paint(g);
 int imgWidth = boardImg.getWidth(this); //        
 int imgHeight = boardImg.getHeight(this); //        
 int FWidth = getWidth();
 int FHeight = getHeight();
 String message; //      
 int x = (FWidth - imgWidth) / 2;
 int y = (FHeight - imgHeight) / 2;
 g.drawImage(boardImg, x, y, null); //            
 g.setFont(new Font("  ", 0, 14));
 g.drawString("    :" + blackTime, 30, 470);
 g.drawString("    :" + whiteTime, 260, 470);
 //     
 for (int i = 0; i < 15; i++) {
 g.drawLine(30, 30 + 30 * i, 450, 30 + 30 * i);
 g.drawLine(30 + 30 * i, 30, 30 + 30 * i, 450);
 }

 //        
 g.fillRect(240 - 5, 240 - 5, 10, 10); //          
 g.fillRect(360 - 5, 360 - 5, 10, 10); //         
 g.fillRect(360 - 5, 120 - 5, 10, 10); //         
 g.fillRect(120 - 5, 360 - 5, 10, 10);//         
 g.fillRect(120 - 5, 120 - 5, 10, 10);//         

 //       

 for (int i = 0; i < 15; i++) {
 for (int j = 0; j < 15; j++) {
 // if (allChess[i][j] == 1) {
 // //   
 // int tempX = i * 30 + 30;
 // int tempY = j * 30 + 30;
 // g.fillOval(tempX - 7, tempY - 7, 14, 14);
 // }
 // if (allChess[i][j] == 2) {
 // //   
 // int tempX = i * 30 + 30;
 // int tempY = j * 30 + 30;
 // g.setColor(Color.WHITE);
 // g.fillOval(tempX - 7, tempY - 7, 14, 14);
 // g.setColor(Color.BLACK);
 // g.drawOval(tempX - 7, tempY - 7, 14, 14);
 // }
 draw(g, i, j); //        
 }

 }
 }

 //           
 @Override
 public void mousePressed(MouseEvent e) {
 // x = e.getX();//             
 // y = e.getY();//             
 // if (x >= 29 && x <= 451 && y >= 29 && y <= 451) { //              
 //
 // }

 if (canPlay == true) {//           
 x = e.getX(); //        
 y = e.getY();
 if (isManAgainst == true) {//          
 manToManChess();
 } else { //        ,    
 manToMachine();
 }
 }
 }

 //          
 private boolean checkWin(int x, int y) {
 // TODO Auto-generated method stub

 boolean flag = false;
 //               
 int count = 1;
 //        :allChess[x][y] y   
 int color = allChess[x][y];
 //     
 count = this.checkCount(x, y, 1, 0, color);
 if (count >= 5) {
 flag = true;
 } else {
 //     
 count = this.checkCount(x, y, 0, 1, color);
 if (count >= 5) {
 flag = true;
 } else {
 //       
 count = this.checkCount(x, y, 1, -1, color);
 if (count >= 5) {
  flag = true;
 } else {
  //       
  count = this.checkCount(x, y, 1, 1, color);
  if (count >= 5) {
  flag = true;
  }
 }
 }
 }
 return flag;
 }

 //            
 private int checkCount(int x, int y, int xChange, int yChange, int color) {
 // TODO Auto-generated method stub
 int count = 1;
 int tempX = xChange;
 int tempY = yChange;
 while (x + xChange >= 0 && x + xChange <= 14 && y + yChange >= 0 && y + yChange <= 14
 && color == allChess[x + xChange][y + yChange]) {
 count++;
 if (xChange != 0) {
 xChange++;
 }
 if (yChange != 0) {
 if (yChange > 0) {
  yChange++;
 } else {
  yChange--;
 }
 }
 }
 xChange = tempX;
 yChange = tempY;
 while (x - xChange >= 0 && x - xChange <= 14 && y - yChange >= 0 && y - yChange <= 14
 && color == allChess[x - xChange][y - yChange]) {
 count++;
 if (xChange != 0) {
 xChange++;
 }
 if (yChange != 0) {
 if (yChange > 0) {
  yChange++;
 } else {
  yChange--;
 }
 }
 }
 return count;
 }

 //             
 private int checkCountMachine(int x, int y, int xChange, int yChange, int color) {
 // TODO Auto-generated method stub
 int count = 0;
 int tempX = xChange;
 int tempY = yChange;
 while (x + xChange >= 0 && x + xChange <= 14 && y + yChange >= 0 && y + yChange <= 14
 && color == allChess[x + xChange][y + yChange]) {
 count++;
 if (xChange != 0) {
 xChange++;
 }
 if (yChange != 0) {
 if (yChange > 0) {
  yChange++;
 } else {
  yChange--;
 }
 }
 }
 xChange = tempX;
 yChange = tempY;
 while (x - xChange >= 0 && x - xChange <= 14 && y - yChange >= 0 && y - yChange <= 14
 && color == allChess[x - xChange][y - yChange]) {
 count++;
 if (xChange != 0) {
 xChange++;
 }
 if (yChange != 0) {
 if (yChange > 0) {
  yChange++;
 } else {
  yChange--;
 }
 }
 }
 return count;
 }

 public void paintConmponents(Graphics g) {
 super.paintComponents(g);

 }

 //       
 public void draw(Graphics g, int i, int j) {
 if (allChess[i][j] == 1) {
 g.setColor(Color.black);//     
 g.fillOval(30 * i + 30 - 7, 30 * j + 30 - 7, 14, 14);
 g.drawString(message, 230, 20);

 }
 if (allChess[i][j] == 2) {
 g.setColor(Color.white);//     
 g.fillOval(30 * i + 30 - 7, 30 * j + 30 - 7, 14, 14);
 g.drawString(message, 230, 20);

 }

 }

 @Override
 public void mouseClicked(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseReleased(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseEntered(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void mouseExited(MouseEvent e) {
 // TODO Auto-generated method stub

 }

 @Override
 public void run() {
 // TODO Auto-generated method stub
 //          

 if (maxTime > 0) {
 while (true) {
 // System.out.println(canPlay + "11");
 if (isManAgainst) {
  if (isBlack) {
  blackTime--;
  if (blackTime == 0) {
  JOptionPane.showMessageDialog(this, "    ,    !");
  }
  } else {
  whiteTime--;
  if (whiteTime == 0) {
  JOptionPane.showMessageDialog(this, "    ,    !");
  }
  }
 } else {
  //          ,          
  blackTime--;
  if (blackTime == 0) {
  JOptionPane.showMessageDialog(this, "    ,    !");
  }

  //          

 }
 blackMessage = blackTime / 3600 + ":" + (blackTime / 60 - blackTime / 3600 * 60) + ":"
  + (blackTime - blackTime / 60 * 60);
 whiteMessage = whiteTime / 3600 + ":" + (whiteTime / 60 - whiteTime / 3600 * 60) + ":"
  + (whiteTime - whiteTime / 60 * 60);

 this.repaint();
 try {
  Thread.sleep(1000);
 } catch (InterruptedException e) {
  e.printStackTrace();
 }

 }
 }
 }

 //           ,    
 public void Start() {
 this.canPlay = true;
 for (int i = 0; i < 14; i++) {
 for (int j = 0; j < 14; j++) {
 allChess[i][j] = 0;
 }
 }
 if (canPlay == true) {
 t.resume();
 }
 this.repaint();
 JOptionPane.showMessageDialog(this, "     ,     ");

 if (isBlack == false && isManAgainst == false) {
 machineChess(gameDifficulty);
 }
 //       allChess=new int[19][19]
 // message = "    ";
 //
 // isBlack = true;
 // blackTime = maxTime;
 // whiteTime = maxTime;
 // if (maxTime > 0) {
 // blackMessage = maxTime / 3600 + ":" + (maxTime / 60 - maxTime / 3600
 // * 60) + ":"
 // + (maxTime - maxTime / 60 * 60);
 // whiteMessage = maxTime / 3600 + ":" + (maxTime / 60 - maxTime / 3600
 // * 60) + ":"
 // + (maxTime - maxTime / 60 * 60);
 // t.resume();
 // } else {
 // blackMessage = "   ";
 // whiteMessage = "   ";
 // }
 // this.repaint();//        ,       

 }

 //         
 public void manToManChess() {
 if (x >= 29 && x <= 451 && y >= 29 && y <= 451) {
 // System.out.println("      :"+x+"--"+y);
 x = (x + 15) / 30 - 1; //            
 y = (y + 15) / 30 - 1;
 if (allChess[x][y] == 0) {
 //             
 if (isBlack == true) {
  allChess[x][y] = 1;
  isBlack = false;
  blackTime = 120;
  message = "    ";
 } else {
  allChess[x][y] = 2;
  isBlack = true;
  whiteTime = 120;
  message = "    ";
 }
 }

 //                5 
 boolean winFlag = this.checkWin(x, y);
 this.repaint(); //     
 if (winFlag == true) {
 JOptionPane.showMessageDialog(this, "    ," + (allChess[x][y] == 1 ? "  " : "  ") + "  !");
 canPlay = false;
 }
 } else {
 // JOptionPane.showMessageDialog(this,
 // "         ,     !!!");
 }
 }

 //         
 public void manToMachine() {
 if (x >= 29 && x <= 451 && y >= 29 && y <= 451) {
 // System.out.println("      :"+x+"--"+y);
 x = (x + 15) / 30 - 1; //            
 y = (y + 15) / 30 - 1;
 if (allChess[x][y] == 0) {
 //             
 if (isBlack == true) {
  allChess[x][y] = 1;
  this.repaint(); //     
  machineChess(gameDifficulty);
  isBlack = true;
  blackTime = 120;
  message = "    ";
  whiteTime = 120;
  boolean winFlag = this.checkWin(x, y);
  this.repaint(); //     

  if (winFlag == true) {
  JOptionPane.showMessageDialog(this, "    ," + (allChess[x][y] == 1 ? "  " : "  ") + "  !");
  canPlay = false;
  }

 } else {

  allChess[x][y] = 1;
  // allChess[x][y] = 2;
  this.repaint();
  isBlack = false;

  whiteTime = 120;
  blackTime = 120;
  boolean winFlag = this.checkWin(x, y);
  this.repaint(); //     

  if (winFlag == true) {
  JOptionPane.showMessageDialog(this, "    ," + (allChess[x][y] == 1 ? "  " : "  ") + "  !");
  canPlay = false;
  }
  machineChess(gameDifficulty);
 }
 }

 //                5 
 // boolean winFlag = this.checkWin(x, y);
 // this.repaint(); //     
 //
 // if (winFlag == true) {
 // JOptionPane.showMessageDialog(this, "    ," + (allChess[x][y] ==
 // 1 ? "  " : "  ") + "  !");
 // canPlay = false;
 // }
 }
 }

 //        
 public void machineChess(int gameDifficulty) {
 if (gameDifficulty == 0) {
 int i, j;
 boolean chessSucceed = true;//        
 while (chessSucceed) {
 i = (int) (Math.random() * 15);
 j = (int) (Math.random() * 15);
 if (allChess[i][j] == 0) {
  allChess[i][j] = 2;
  chessSucceed = false;
 }
 }
 } else if (gameDifficulty == 1) {
 int max = 0;
 int m = 0, n = 0;
 int figureSort[] = new int[4];//             
 for (int i = 0; i < 15; i++) {
 for (int j = 0; j < 15; j++) {
  if (allChess[i][j] == 0) {
  figureSort[0] = checkCountMachine(i, j, 0, 1, 1);
  figureSort[1] = checkCountMachine(i, j, 1, 0, 1);
  figureSort[2] = checkCountMachine(i, j, 1, -1, 1);
  figureSort[3] = checkCountMachine(i, j, 1, 1, 1);
  sortFourFigure(figureSort);
  temporaryChess[i][j] = figureSort[0] * 12 + figureSort[1] * 25 + figureSort[2] * 50//           
  + figureSort[3] * 100;
  }
  // System.out.print(temporaryChess[i][j] + " ");
 }
 // System.out.print("
"); } // System.out.print("=============================
"); for (int i = 0; i < 15; i++) { for (int j = 0; j < 15; j++) { if (temporaryChess[i][j] > max && allChess[i][j] != 2 && allChess[i][j] != 1) { m = i; n = j; max = temporaryChess[i][j]; } } } allChess[m][n] = 2; } else if (gameDifficulty == 2) { } else { } this.repaint(); } // public void sortFourFigure(int n[]) { Arrays.sort(n);// } }
3.마지막 으로 전체 게임 의 입구 주 함수 StartEntrance.java 설정

package StartGame;

import javax.swing.JFrame;

public class StartEntrance {
 //public static boolean canPlay =false;
 public static void main(String[] args) {
 //        

 MyFrame myFrame = new MyFrame();
 myFrame.setVisible(true); //        
 myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //           

 }

}
상기 모든 코드 는 디 버 깅 을 통 과 했 고 인간 과 컴퓨터 의 알고리즘 은 비교적 간단 하 며 간단 한 수비 기능 을 실현 할 수 있다.
자바 소스 코드:링크
포 장 된 jar 파일:링크
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기