如何用java实现一个贪吃蛇小游戏?

1天前 (04-25 11:05)阅读1回复0
wojiukan
wojiukan
  • 管理员
  • 注册排名1
  • 经验值2891055
  • 级别管理员
  • 主题578211
  • 回复0
楼主
  1. 如何用Java实现一个贪吃蛇小游戏

    如何用java实现一个贪吃蛇小游戏?

    以下是实现贪吃蛇小游戏的Java代码:

    如何用java实现一个贪吃蛇小游戏?

    public class GreedySnake {
        private static final int GRID_SIZE = 2;
        private static final int[][] GRID_SIZE2 = new int[GRID_SIZE][GRID_SIZE];
        private static final int[][] SELED = new int[][]{{, 1, 2}, {3, 0, 4}, {5, 6, 7}};
        private static final int[][] FOOD = new int[][]{{1, 1}, {1, 2}, {2, 15}};
        private static final int[] KINETIC_SPEED = 2;
        public GreedySnake() {
            init();
        }
        void init() {
            for (int i = 0; i < GRID_SIZE; i++) {
                Arrays.fill(GRID_SIZE2, 0);
            }
            // 初始化蛇的位置
            initSnake();
            // 初始化食物的位置
            initFood();
            // 初始化方向
            initDirection();
        }
        void initSnake() {
            int x = (Math.random() < 0.5) ? 9 : 1;
            int y = (Math.random() < 0.5) ? 9 : 1;
            GRID_SIZE2[x][y] = SELED[x][y];
            while (Arrays.equals(GRID_SIZE2[x][y], SELED[x][y])) {
                x = (x + 1) % GRID_SIZE;
                y = (y + 1) % GRID_SIZE;
            }
        }
        void initFood() {
            int x = (Math.random() < 0.5) ? 9 : 1;
            int y = (Math.random() < 0.5) ? 9 : 1;
            GRID_SIZE2[x][y] = FOOD[x][y];
            while (Arrays.equals(GRID_SIZE2[x][y], FOOD[x][y])) {
                x = (x + 1) % GRID_SIZE;
                y = (y + 1) % GRID_SIZE;
            }
        }
        void initDirection() {
            int dx = Math.random() < 0.5 ? 1 : -1;
            int dy = Math.random() < 0.5 ? 1 : -1;
        }
        void move() {
            int x = GRID_SIZE2[ GRID_SIZE2[x][y] ][x];
            int y = GRID_SIZE2[ GRID_SIZE2[x][y] ][y];
            GRID_SIZE2[x][y] = SELED[x][y];
            GRID_SIZE2[x][y + dx] = SELED[x][y] + 1;
            GRID_SIZE2[x][y - dx] = SELED[x][y] - 1;
            GRID_SIZE2[x + dy][y] = SELED[x][y] + 1;
            GRID_SIZE2[x - dy][y] = SELED[x][y] - 1;
            if (x == GRID_SIZE2[ GRID_SIZE2[x][y] ][ GRID_SIZE2[x][y] ] &&
                y == GRID_SIZE2[ GRID_SIZE2[x][y] ][ GRID_SIZE2[x][y] ]) {
                initSnake();
                initFood();
                initDirection();
                if (canMove()) {
                    snake = new ArrayList<>();
                    snake.add(new int[]{x, y});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y - dy});
                    snake.add(new int[]{x - dx, y - dy});
                    snake.add(new int[]{x, y - dy});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y + dx});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y - dy});
                    snake.add(new int[]{x + dx, y - dy});
                    snake.add(new int[]{x - dx, y - dy});
                    snake.add(new int[]{x, y - dy});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x - dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x - dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x - dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x - dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x + dx, y});
                    snake.add(new int[]{x - dx, y});
                    snake.add(new int[]{x, y + dy});
                    snake.add(new int[]{x + dx, y + dy});
                    snake.add(new int[]{x, y + dx});
                    snake.add(new int[]{x + dx, y - dx});
                    snake.add(new int[]{x - dx, y - dx});
                    snake.add(new int[]{x, y - dx});
                    snake.add(new int[]{x
0
回帖

如何用java实现一个贪吃蛇小游戏? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息