・ Schwarze und weiße abwechselnde Steine in 5x5 (veränderbaren) Quadraten ・ Gewinnen Sie, wenn alle vertikalen, horizontalen und diagonalen Quadrate mit den gleichen Farbsteinen gefüllt sind
・ Steinklasse → Steininformationen verwalten ・ Board-Klasse → Board-Informationen verwalten ・ Richterklasse → Verwalten Sie das Siegesurteil · Konstante Schnittstelle → Konstanten verwalten ・ Spielklasse → Als Spiel zusammenfassen
Stone.java
package Gomokunarabe;
public class Stone implements Constant{
Board board = new Board();
//Richtig, wenn der Stein normal platziert werden kann,Falsch, wenn nicht platziert
private boolean stoneSet;
public boolean getStoneSet() {
return stoneSet;
}
public void setStoneSet(boolean stoneSet) {
this.stoneSet = stoneSet;
}
//Feld bezüglich der Steinposition
private int tatePosition;
private int yokoPosition;
public int getTatePosition() {
return tatePosition;
}
public void setTatePosition(int tatePosition) {
this.tatePosition = tatePosition;
}
public int getYokoPosition() {
return yokoPosition;
}
public void setYokoPosition(int yokoPosition) {
this.yokoPosition = yokoPosition;
}
//Steinplatzierungsverarbeitung
@SuppressWarnings("resource")
public void stoneConfig(boolean stoneColor) {
//Argument stoneColor ist wahr für schwarz, falsch für weiß
System.out.println("Bitte geben Sie die Position des Steins ein");
try {
int tatePosition = new java.util.Scanner(System.in).nextInt();
int yokoPosition = new java.util.Scanner(System.in).nextInt();
if((tatePosition>=0&&yokoPosition>=0)&&(tatePosition<BOARD_LENGTH && yokoPosition<BOARD_LENGTH)) {
if(Board.getPosition(tatePosition, yokoPosition)==EMPTY_STONE) {
setTatePosition(tatePosition);
setYokoPosition(yokoPosition);
board.board(getTatePosition(), getYokoPosition(), stoneColor);
setStoneSet(true);
}
else {
setStoneSet(false);
System.out.println("Bitte wählen Sie einen Ort, an dem keine Steine platziert sind");
}
}
else {
setStoneSet(false);
System.out.println("0~"+(BOARD_LENGTH-1)+"Bitte geben Sie eines von ein");
}
}
catch(Exception e) {
setStoneSet(false);
System.out.println("Bitte geben Sie als Ganzzahl ein");
}
}
}
Board.java
package Gomokunarabe;
public class Board implements Constant{
//Speichern Sie die Position des Steins
private static String[][] position = new String[BOARD_LENGTH][BOARD_LENGTH];
public static void setPosition(int tate, int yoko, String stone) {
position[tate][yoko] = stone;
}
public static String getPosition(int tate, int yoko) {
return position[tate][yoko];
}
//Schwarz wenn wahr, weiß wenn falsch
private Boolean stoneColor;
public Boolean isStoneColor() {
return stoneColor;
}
public void setStoneColor(Boolean stoneColor) {
this.stoneColor = stoneColor;
}
public void firstShowBoard() {
//Nummernanzeige auf der Tafel
for(int i=0; i<BOARD_LENGTH;i++) {
if(i==(BOARD_LENGTH-1)) {
System.out.println(i);
}
else if(i==0) {
System.out.print(" "+i+",");
}
else {
System.out.print(i + ",");
}
}
for(int j=0; j<BOARD_LENGTH; j++) {
System.out.println(j);
}
//Bei allen Koordinaten des Positionsarrays"□"Geschäft
//Verhindern Sie Null, wenn Sie auf die Position verweisen
for(int i=0; i<BOARD_LENGTH;i++) {
for(int j=0; j<BOARD_LENGTH; j++) {
setPosition(i,j,EMPTY_STONE);
System.out.print(EMPTY_STONE);
}
System.out.println("");
}
}
//Go Board-Erstellungsmethode
public void board(int tate, int yoko, boolean stoneColor) {
//stoneColor ist wahr und schwarz,Weiß mit falsch
setStoneColor(stoneColor);
for(int i=0; i<BOARD_LENGTH; i++) {
//Die Variable i in für Anweisung bedeutet vertikal
for(int j=0; j<BOARD_LENGTH; j++) {
//Die Variable j in für Anweisung bedeutet horizontal
if((i==tate) && (j==yoko)) {
if(isStoneColor()) {
setPosition(tate,yoko,BLACK_STONE);
System.out.print(getPosition(tate,yoko));
}
else{
setPosition(tate,yoko,WHITE_STONE);
System.out.print(getPosition(tate,yoko));
}
}
else {
System.out.print(getPosition(i,j));
}
}
System.out.println("");
}
}
}
Judge.java
package Gomokunarabe;
public class Judge implements Constant{
private int win = 0;
public int getWin() {
return win;
}
public void setWin(int win) {
this.win += win;
}
public void resetWin() {
this.win = 0;
}
public boolean winJudge() {
//Ist die Gewinnvariable 5?-Wenn die Summe von 5 erhalten wird, wird true zurückgegeben und der Sieg beurteilt.
//Row Sieg Urteil
for(int i=0; i<BOARD_LENGTH; i++) {
for(int j=0; j<BOARD_LENGTH; j++) {
if(Board.getPosition(i, j)==BLACK_STONE) {
setWin(1);
}
else if(Board.getPosition(i, j)==WHITE_STONE) {
setWin(-1);
}
else {
setWin(0);
}
}
if((getWin()==BOARD_LENGTH) || (getWin()==(-BOARD_LENGTH))) {
return true;
}
else {
resetWin();
}
}
//Säulensiegsurteil
for(int j=0; j<BOARD_LENGTH; j++){
for(int i=0; i<BOARD_LENGTH; i++)
{
if(Board.getPosition(i, j)==BLACK_STONE) {
setWin(1);
}
else if(Board.getPosition(i, j)==WHITE_STONE) {
setWin(-1);
}
else {
setWin(0);
}
}
if((getWin()==BOARD_LENGTH) || (getWin()==(-BOARD_LENGTH))) {
return true;
}
else {
resetWin();
}
}
//Siegesurteil in der linken diagonalen Spalte
for(int i=0; i<BOARD_LENGTH; i++) {
for(int j=0; j<BOARD_LENGTH; j++) {
if((i==j) && (Board.getPosition(i, j)==BLACK_STONE)) {
setWin(1);
}
else if((i==j) && (Board.getPosition(i, j)==WHITE_STONE)) {
setWin(-1);
}
else {
setWin(0);
}
}
}
if((getWin()==BOARD_LENGTH) || (getWin()==(-BOARD_LENGTH))) {
return true;
}
else {
resetWin();
}
//Siegesurteil in der rechten diagonalen Spalte
for(int i=0; i<BOARD_LENGTH; i++) {
for(int j=0; j<BOARD_LENGTH; j++) {
if((i+j == (BOARD_LENGTH - 1)) && (Board.getPosition(i, j)==BLACK_STONE)) {
setWin(1);
}
else if((i+j == (BOARD_LENGTH - 1)) && (Board.getPosition(i, j)==WHITE_STONE)) {
setWin(-1);
}
else {
setWin(0);
}
}
}
if((getWin()==BOARD_LENGTH) || (getWin()==(-BOARD_LENGTH))) {
return true;
}
else {
resetWin();
}
return false;
}
}
Constant.java
package Gomokunarabe;
public interface Constant{
/*
*Durch Ändern der Konstante bezüglich der Länge des Go-Boards
*Ändern Sie die Quadrate
*/
//Gehen Sie Brettlänge
int BOARD_LENGTH = 5;
//Schwarzer Stein
String BLACK_STONE = "●";
//weißer Stein
String WHITE_STONE = "〇";
//Leer
String EMPTY_STONE = "□";
}
Game.java
package Gomokunarabe;
public class Game {
Stone stone = new Stone();
Judge judge = new Judge();
Board board = new Board();
//Richtig, um das Spiel fortzusetzen, falsch, um das Spiel zu beenden
private boolean gameLoop = true;
public boolean isGameLoop() {
return gameLoop;
}
public void setGameLoop(boolean gameLoop) {
this.gameLoop = gameLoop;
}
//Schwarz für ungerade Zahlen, Weiß für gerade Zahlen
private int loop=1;
public int getLoop() {
return loop;
}
public void setLoop(int loop) {
this.loop = loop;
}
public void gameStart() {
board.firstShowBoard();
while(isGameLoop()) {
//Wenn gameLoop wahr ist, setze das Spiel fort
if(getLoop()%2 == 1) {
//Schwarz, wenn die Schleife ungerade ist
System.out.println("Es ist schwarz");
//Black Turn mit echtem Argument
stone.stoneConfig(true);
if(stone.getStoneSet()) {
if(!judge.winJudge()) {
//winJudge ist falsch, um das Spiel fortzusetzen, wahr, um zu gewinnen
//stoneSet ist wahr und nach der nächsten weißen Kurve
setLoop(2);
}
else {
System.out.println("Schwarzer Sieg!\n Beenden Sie das Spiel!");
setGameLoop(false);
}
}
else {
setLoop(1);
}
}
//Weiß, wenn die Schleife gerade ist
else{
System.out.println("Es ist weiß");
stone.stoneConfig(false);
if(stone.getStoneSet()) {
if(!judge.winJudge()) {
//winJudge ist falsch, um das Spiel fortzusetzen, wahr, um zu gewinnen
//stoneSet ist wahr und nach der nächsten weißen Kurve
setLoop(1);
}
else {
System.out.println("Weißer Sieg!\n Beenden Sie das Spiel!");
setGameLoop(false);
}
//stoneSet ist wahr und wechselt in die schwarze Kurve
}
else {
setLoop(2);
}
}
}
}
}
Main.java
package Gomokunarabe;
public class Main {
public static void main(String[] args) {
Game game = new Game();
game.gameStart();
}
}
★ Fünf Reihen ★ 0,1,2,3,4 0 1 2 3 4 □□□□□ □□□□□ □□□□□ □□□□□ □□□□□ Es ist schwarz Bitte geben Sie die Position des Steins ein 0 0 ●□□□□ □□□□□ □□□□□ □□□□□ □□□□□ Es ist weiß Bitte geben Sie die Position des Steins ein 0 4 ●□□□〇 □□□□□ □□□□□ □□□□□ □□□□□ Es ist schwarz Bitte geben Sie die Position des Steins ein 1 1 ●□□□〇 □●□□□ □□□□□ □□□□□ □□□□□ Es ist weiß Bitte geben Sie die Position des Steins ein 1 4 ●□□□〇 □●□□〇 □□□□□ □□□□□ □□□□□ Es ist schwarz Bitte geben Sie die Position des Steins ein 2 2 ●□□□〇 □●□□〇 □□●□□ □□□□□ □□□□□ Es ist weiß Bitte geben Sie die Position des Steins ein 2 0 ●□□□〇 □●□□〇 〇□●□□ □□□□□ □□□□□ Es ist schwarz Bitte geben Sie die Position des Steins ein 3 3 ●□□□〇 □●□□〇 〇□●□□ □□□●□ □□□□□ Es ist weiß Bitte geben Sie die Position des Steins ein 2 4 ●□□□〇 □●□□〇 〇□●□〇 □□□●□ □□□□□ Es ist schwarz Bitte geben Sie die Position des Steins ein 4 4 ●□□□〇 □●□□〇 〇□●□〇 □□□●□ □□□□● Schwarzer Sieg! Beende das Spiel!