Heim  >  Artikel  >  Java  >  So implementieren Sie einfaches schnittstellenloses Backgammon in Java

So implementieren Sie einfaches schnittstellenloses Backgammon in Java

WBOY
WBOYnach vorne
2023-04-27 18:40:071077Durchsuche

Projekteinführung:

Dieses Design ist ein kleines Backgammon-Spielprogramm, das auf der Grundlage von Wissenspunkten, Java-Klassen, Objekten und Arrays entwickelt wurde. Wählen Sie zu Beginn des Spiels schwarzes oder weißes Schach aus, platzieren Sie eine Schachfigur auf der ersten Koordinate des Schachbretts und platzieren Sie dann abwechselnd die Schachfiguren usw., bis eine Seite zum ersten Mal fünf Figuren miteinander verbindet Egal ob in vertikaler, horizontaler oder diagonaler Richtung der Schachbrettlinie, diese Seite gewinnt das Spiel.

Projektimplementierungsideen:

1. Das Schachbrettdesign besteht aus 10 * 10 Gittern. Der Schachbretttyp ist ein zweidimensionales Array, das das Attribut String chessType enthält ".
2. Initialisieren Sie das zweidimensionale Array
3. Nachdem der Spieler den schwarzen und weißen Kreis ausgewählt hat, beginnt er mit dem Schachspielen. Geben Sie die Zeilen- und Spaltenkoordinaten der zu spielenden Schachfiguren ein, und die schwarzen und weißen Schachfiguren werden abwechselnd platziert. Wenn eine Seite fünf Figuren in einer Reihe hat oder das Brett voll ist, endet das Spiel (die Seite mit fünf). Die Anzahl der Figuren in einer Reihe gewinnt, und das gesamte Spielbrett ist unentschieden).
4. Stellen Sie nach jeder erfolgreichen Platzierung sofort fest, ob sich Schachfiguren derselben Farbe in den acht Richtungen befinden, die auf dieser Position zentriert sind: oben, unten, links, rechts, oben links, unten links, oben rechts und unten rechts Also, Fünf Stücke, das Spiel endet und die entsprechende Information wird ausgegeben.
5. Wenn eine Seite des Spiels gewinnt, werden die Sieginformationen angezeigt. Von der Oberfläche des Programms aus handelt es sich um eine zweidimensionale ebene Karte, sodass die Daten durch ein zweidimensionales Array dargestellt werden. Die beiden Indizes des Arrays können die Position auf dem Schachbrett darstellen Zustand des Schachbretts. Es gibt jeweils drei Situationen: Ja, ⭕ steht für weißes Schach, ● steht für schwarzes Schach und ➕ steht für Gitter.

Quellcode

1. Schachfigur

/**
 * @author hudongsheng
 * @date 2020/10/29 - 9:28
 */
public class ChessType {
    private String chessType;
    private int x;
    private int y;

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }


    public ChessType() {

    }

    public String getChessType() {
        return chessType;
    }

    public void setChessType(String chessType) {
        this.chessType = chessType;
    }
}

2. Schach spielen

/**
 * @author hudongsheng
 * @date 2020/10/29 - 9:27
 */
public class Gobang {
    private int size = 1;
    private ChessType[][] chessTypes;
    private int row;
    private int colum;
    private int x;
    private int y;


    //创建一个棋盘
    public Gobang(int row,int colum){
        this.row = row;
        this.colum = colum;
        chessTypes = new ChessType[row][colum];
    }

    //初始化棋盘
    public void initChessType(){

        for(int i = 0; i< chessTypes.length; i++){
            for (int j = 0; j< chessTypes[i].length; j++){
                chessTypes[i][j] = new ChessType();
                chessTypes[i][j].setChessType("➕");
            }
        }
    }

    //下白棋
    public void setWhiteChess(int x,int y){
        chessTypes[x][y].setChessType("⭕");
    }

    //下黑棋
    public void setBlackChess(int x,int y){
        chessTypes[x][y].setChessType("●");
    }

   //判断是否胜利
        public boolean checkWin(int i,int j) {
            // TODO Auto-generated method stub
            boolean flag = false;
            //判断纵向是否有五个棋子是相同的颜色
            int count1 = 1;//相同颜色棋子的个数
            String color = chessTypes[i][j].getChessType(); //刚下的棋子的颜色
            int a = 1;  //棋子索引的增量
            while((i+a)<row && color == chessTypes[i+a][j].getChessType()){
                count1++;
                a++;
            }
            a = 1;
            while((i-a)>=0 && color == chessTypes[i-a][j].getChessType()){
                count1++;
                a++;
            }
            if(count1 >= 5){
                flag = true;
            }

            //判断纵向是否有五个棋子是相同的颜色
            int count2 = 1;
            a = 1;
            while((j+a)<colum && color == chessTypes[i][j+a].getChessType()){
                count2++;
                a++;
            }
            a = 1;
            while((j-a)>=0 && color == chessTypes[i][j-a].getChessType()){
                count2++;
                a++;
            }
            if(count2 >= 5){
                flag = true;
            }

            //右上    左下 是否有五个棋子是相同的颜色
            int count3 = 1;
            a = 1;
            while((i+a)<row && (j-a)>=0 && color == chessTypes[i+a][j-a].getChessType()){
                count3++;
                a++;
            }
            a = 1;
            while((i-a)>=0 && (j+a)<colum && color == chessTypes[i-a][j+a].getChessType()){
                count3++;
                a++;
            }
            if(count3 >= 5){
                flag = true;
            }

            //左上  右下  是否有五个棋子是相同的颜色
            int count4 = 1;
            a = 1;
            while((i-a)>0 && (j-a)>=0 && color == chessTypes[i-a][j-a].getChessType()){
                count4++;
                a++;
            }
            a = 1;
            while((i+a)<row && (j+a)<colum && color == chessTypes[i+a][j+a].getChessType()){
                count4++;
                a++;
            }
            if(count4 >= 5){
                flag = true;
            }
            return flag;
        }

        //落子后打印棋盘
    public void print(){
        for(int i = 0; i< chessTypes.length; i++){
            for (int j = 0; j< chessTypes[i].length; j++){
                System.out.print(chessTypes[i][j].getChessType());
            }
            System.out.println();
        }
    }

}

3

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einfaches schnittstellenloses Backgammon in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen