以下是一个简单的九宫格拼图小游戏的Java代码实现:

import java.util.Scanner;

public class PuzzleGame {
    private int[][] board;  // 存储拼图板的二维数组
    private int size;  // 拼图板的大小

    public PuzzleGame(int size) {
        this.size = size;
        board = new int[size][size];
        int num = 1;
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                board[i][j] = num;
                num++;
            }
        }
        board[size-1][size-1] = 0;  // 将最后一个位置设置为空白
    }

    // 打印当前拼图板的状态
    public void displayBoard() {
        System.out.println();
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (board[i][j] == 0) {
                    System.out.print("  ");
                } else {
                    System.out.print(board[i][j] + " ");
                }
            }
            System.out.println();
        }
        System.out.println();
    }

    // 获取空白位置的横坐标和纵坐标
    private int[] getBlankPosition() {
        int[] pos = new int[2];
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (board[i][j] == 0) {
                    pos[0] = i;
                    pos[1] = j;
                    break;
                }
            }
        }
        return pos;
    }

    // 移动拼图块
    private void move(int x, int y) {
        int[] blankPos = getBlankPosition();
        int blankX = blankPos[0];
        int blankY = blankPos[1];
        // 判断是否可以移动
        if ((x == blankX && Math.abs(y - blankY) == 1) || (y == blankY && Math.abs(x - blankX) == 1)) {
            int temp = board[x][y];
            board[x][y] = board[blankX][blankY];
            board[blankX][blankY] = temp;
        } else {
            System.out.println("无法移动该块!");
        }
    }

    // 判断是否完成拼图
    public boolean isCompleted() {
        int num = 1;
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (board[i][j] != num) {
                    return false;
                }
                num++;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入拼图板的大小:");
        int size = scanner.nextInt();
        PuzzleGame game = new PuzzleGame(size);
        game.displayBoard();
        while (!game.isCompleted()) {
            System.out.print("请输入要移动的拼图块的横坐标和纵坐标(用空格隔开):");
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            game.move(x, y);
            game.displayBoard();
        }
        System.out.println("恭喜你完成了拼图!");
    }
}

这个小游戏的实现比较简单,主要是通过一个二维数组来存储拼图板的状态,然后实现移动拼图块、显示拼图板状态以及判断是否完成拼图的方法。在main方法中,通过循环输入要移动的拼图块的坐标来进行游戏,直到完成拼图为止。

使用java语言 设计一个九宫格拼图小游戏

原文地址: https://www.cveoy.top/t/topic/b1ls 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录