자바 간단 한 콘 솔 오목 게임 실현

7218 단어 자바콘 솔오목
본 논문 의 사례 는 자바 가 간단 한 콘 솔 오목 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
Gobangmain 이라는 종 류 는 게임 의 주 된 방법 으로 주로 게임 의 실행 을 제어 하 는 데 사 용 됩 니 다.주의해 야 할 것 은 입력 한 좌표 의 형식 은 3,4 의 스타일 로 다른 형식 이 될 수도 없고 빈 칸 이 나타 날 수도 없습니다.

package com.qf.Gobang;

import java.util.Scanner;

import org.omg.CORBA.PUBLIC_MEMBER;

public class GobangMain {
  public static String white = "  ";
  public static String black = "  ";
  public static boolean color=true;
  public static String spoint;//    
  public static void main(String[] args) {

    Gobang gobang = new Gobang();
    Scanner scanner=new Scanner(System.in);
    while(true){
      System.out.println(" "+(color?white:black)+"  :");
      spoint=scanner.next();//    
      Point point=gobang.analysisPoint(spoint);//    ,       

      if(gobang.luoZi(point,color)){
        gobang.printMap();
        if(gobang.isWin(point,color)){
          System.out.println(""+(color?white:black)+"  !");
          break;
        }
        color=!color;
      }
    }

  }
}
Point 클래스

public class Point {

  public Point(int x, int y) {
    super();
    this.x = x;
    this.y = y;
  }
  int x;
  int y;
}
Gobang 류 는 게임 류 로 게임 의 판단 게임 의 끝 등 을 포함한다.

package com.qf.Gobang;

import java.awt.Event;
import java.util.Scanner;

public class Gobang {
  public int n = 20;//      
  public String color;//      ,    
  public String mark = "╋";
  public String white = "○";
  public String black = "●";
  public String[][] map = new String[n][n];;
  public String[] coordinate = { "⒈", "⒉", "⒊", "⒋", "⒌", "⒍", "⒎", "⒏", "⒐", "⒑", "⒒", "⒓", "⒔", "⒕", "⒖", "⒗", "⒘",
      "⒙", "⒚", "⒛" };

  public Gobang() {
    //      
    init();
  }

  //      
  public void init() {
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if (i == n - 1) {
          map[i][j] = coordinate[j];
        } else if (j == n - 1) {
          map[i][j] = coordinate[i];
        } else {
          map[i][j] = mark;
        }
      }
    }
    printMap();
  }

  //     
  public void printMap() {
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        System.out.print(map[i][j]);
      }
      System.out.println();
    }
  }

  //     
  public Point analysisPoint(String point) {
    String[] points = point.split(",");
    int x = Integer.parseInt(points[0]) - 1;
    int y = Integer.parseInt(points[1]) - 1;
    return new Point(x, y);
  }

  //   
  public boolean luoZi(Point point, Boolean color) {
    //       
    if (point.x < 0 || point.y > 18 || point.y < 0 || point.y > 18) {
      return false;
    }
    //               
    if (map[point.x][point.y] != mark) {
      return false;
    }
    map[point.x][point.y] = color ? white : black;
    return true;
  }

  //       
  public boolean isWin(Point point, boolean color) {
    //   
    int zxS = 0;//    
    for (int i = 0; i < 5; i++) {
      if (point.x - i < 0) {
        break;
      }
      if (map[point.x - i][point.y].equals(color ? white : black)) {
        zxS++;
      } else {
        break;
      }
    }
    int zxX = 0;//    
    for (int i = 1; i < 5; i++) {
      if (point.x + i > 18) {
        break;
      }
      if (map[point.x + i][point.y].equals(color ? white : black)) {
        zxX++;
      } else {
        break;
      }
    }
    //   
    int hxZ = 0;//    
    for (int i = 0; i < 5; i++) {
      if (point.y - i < 0) {
        break;
      }
      if (map[point.x][point.y - i].equals(color ? white : black)) {
        hxZ++;
      } else {
        break;
      }
    }
    int hxY = 0;//    
    for (int i = 1; i < 5; i++) {
      if (point.y + i > 18) {
        break;
      }
      if (map[point.x][point.y + i].equals(color ? white : black)) {
        hxY++;
      } else {
        break;
      }
    }
    //   
    int zxxS = 0;//    
    for (int i = 0; i < 5; i++) {
      if (point.y + i > 18 || point.x - i < 0) {
        break;
      }
      if (map[point.x - i][point.y + i].equals(color ? white : black)) {
        zxxS++;
      } else {
        break;
      }
    }
    int zxxX = 0;//    
    for (int i = 1; i < 5; i++) {
      if (point.y - i < 0 || point.x + i > 18) {
        break;
      }
      if (map[point.x + i][point.y - i].equals(color ? white : black)) {
        zxxX++;
      } else {
        break;
      }
    }
    //   
    int fxxS = 0;//    
    for (int i = 0; i < 5; i++) {
      if (point.y - i < 0 || point.x - i < 0) {
        break;
      }
      if (map[point.x - i][point.y - i].equals(color ? white : black)) {
        fxxS++;
      } else {
        break;
      }
    }
    int fxxX = 0;//    
    for (int i = 1; i < 5; i++) {
      if (point.y + i > 18 || point.x + i >18) {
        break;
      }
      if (map[point.x + i][point.y + i].equals(color ? white : black)) {
        fxxX++;
      } else {
        break;
      }
    }
    System.out.println();
    System.out.print("   I:" + fxxS+"\t");
    System.out.print("   ↑:" + zxS+"\t");
    System.out.print("   J:" + zxxS);
    System.out.println();
    System.out.print("   ←:" + hxZ+"\t\t\t");
    System.out.print("   →:" + hxY);
    System.out.println();
    System.out.print("   L:" + zxxX+"\t");
    System.out.print("   ↓:" + zxX+"\t");
    System.out.print("   K:" + fxxX);
    System.out.println();
    if (zxS + zxX > 4 || hxY + hxZ > 4 || zxxS + zxxX > 4 || fxxS + fxxX > 4) {
      return true;
    }
    return false;
  }
}

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기