>  기사  >  Java  >  Java에서 간단한 인터페이스 없는 주사위 놀이를 구현하는 방법

Java에서 간단한 인터페이스 없는 주사위 놀이를 구현하는 방법

WBOY
WBOY앞으로
2023-04-27 18:40:071078검색

프로젝트 소개:

이 디자인은 지식 포인트 Java 클래스, 객체 및 배열을 기반으로 개발된 작은 주사위 놀이 게임 프로그램입니다. 게임 시작 시 검은색 또는 흰색 체스를 선택하여 시작하고 체스판의 첫 번째 좌표에 체스 말을 놓은 다음 교대로 체스 말을 놓는 식으로 한쪽이 먼저 5개의 말을 연결할 때까지 계속합니다. 체스판 라인의 수직, 수평 또는 대각선 방향이 라운드에서 승리합니다.

프로젝트 구현 아이디어:

1. 체스판 디자인은 10*10 그리드입니다. 체스판 유형은 String 속성을 포함하는 2차원 배열입니다. 체스판의 첫 번째 chessType 값은 "➕입니다. ".
2. 2차원 배열 초기화
3. 플레이어가 흑백 원을 선택한 후 체스를 시작합니다. 플레이할 체스 말의 행과 열 좌표를 입력하고, 한 쪽이 연속으로 5개의 체스 말이 있거나 보드가 가득 차면 게임이 종료됩니다(5개 있는 쪽). 연속된 조각이 승리하고 전체 보드는 무승부입니다.
4. 배치가 성공적으로 완료되면 해당 위치를 중심으로 위, 아래, 왼쪽, 오른쪽, 왼쪽 위, 왼쪽 아래, 오른쪽 위, 오른쪽 아래 등 8개 방향에 동일한 색상의 체스 조각이 있는지 즉시 확인합니다. 따라서 Five Pieces 게임이 종료되고 해당 정보가 출력됩니다.
5. 게임의 한쪽이 승리하면 승리 정보가 표시됩니다. 프로그램 표면에서 보면 이는 2차원 평면 지도이므로 데이터는 2차원 배열로 표시됩니다. 배열의 두 첨자는 체스판의 위치를 ​​나타낼 수 있습니다. 체스판의 상태는 각각 세 가지입니다. ⭕는 흰색 체스, ●는 검은색 체스, ➕는 그리드를 나타냅니다.

소스 코드

1. 체스 조각

/**
 * @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. 체스를 두는 중

/**
 * @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.

위 내용은 Java에서 간단한 인터페이스 없는 주사위 놀이를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제