자바 간단 한 콘 솔 오목 게임 실현
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;
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.