六一用代码找回童心,花几分钟开发JAVA小游戏

这篇具有很好参考价值的文章主要介绍了六一用代码找回童心,花几分钟开发JAVA小游戏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

😄😄个人介绍

光子郎.进行开发工作七年以上,目前涉及全栈领域并进行开发。会经常跟小伙伴分享前沿技术知识,java后台、web前端、移动端(Android,uniapp,小程序)相关的知识以及经验体会,不定期会有源码及框架的分享,如果你有相关的知识想要及时了解或者讨论,那么请关注光子郎.,点点文末小卡片,不定期会有免费的资源分享给大家,感谢支持~

🍉🍉人生格言

你要批评指点四周风景,首先你要爬上屋顶。

🌈🌈今天是六一,各位被选召的孩子们节日快乐。今天光子郎带大家用JAVA写几个简单的小游戏玩玩,用代码找回同心。废话少说,开整!

目录

🚗🚗猜数字游戏

🐍🐍贪吃蛇游戏

🎇🎇井字棋小游戏

👊👊石头、剪刀、布游戏


🚗🚗猜数字游戏

import java.util.Random;
import java.util.Scanner;

public class GuessNumberGame {

    public static void main(String[] args) {
        Random random = new Random();
        int targetNumber = random.nextInt(100) + 1;
        int guessCount = 0;

        System.out.println("欢迎来到猜数字游戏!");

        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.print("请输入一个1到100之间的整数:");
            int guess = scanner.nextInt();
            guessCount++;

            if (guess == targetNumber) {
                System.out.println("恭喜你,猜对了!你总共猜了" + guessCount + "次。");
                break;
            } else if (guess < targetNumber) {
                System.out.println("猜的数字太小了,请再试一次。");
            } else {
                System.out.println("猜的数字太大了,请再试一次。");
            }
        }

        scanner.close();
    }
}

这个游戏的规则很简单,程序会随机生成一个1到100之间的整数,玩家需要通过输入数字来猜测这个数是多少。程序会根据玩家猜测的数字给出提示,直到玩家猜对为止。在游戏结束时,程序会告诉玩家猜测的次数。

🐍🐍贪吃蛇游戏

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class SnakeGame extends JFrame implements ActionListener {
    private static final int SCALE = 10;
    private static final int WIDTH = 40;
    private static final int HEIGHT = 40;
    private static final int DELAY = 100;

    private Snake snake;
    private Timer timer;
    private boolean gameOver;

    public SnakeGame() {
        setTitle("贪吃蛇游戏");
        setSize(WIDTH * SCALE, HEIGHT * SCALE);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);

        snake = new Snake();
        timer = new Timer(DELAY, this);
        gameOver = false;

        addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                int key = e.getKeyCode();
                if (key == KeyEvent.VK_UP && snake.getDirection() != Direction.DOWN)
                    snake.setDirection(Direction.UP);
                if (key == KeyEvent.VK_DOWN && snake.getDirection() != Direction.UP)
                    snake.setDirection(Direction.DOWN);
                if (key == KeyEvent.VK_LEFT && snake.getDirection() != Direction.RIGHT)
                    snake.setDirection(Direction.LEFT);
                if (key == KeyEvent.VK_RIGHT && snake.getDirection() != Direction.LEFT)
                    snake.setDirection(Direction.RIGHT);
            }
        });

        setVisible(true);
        startGame();
    }

    public void startGame() {
        timer.start();
    }

    public void paint(Graphics g) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, WIDTH * SCALE, HEIGHT * SCALE);

        if (!gameOver) {
            snake.move();
            snake.draw(g);
            if (snake.checkCollision()) {
                gameOver = true;
            }
        } else {
            gameOver(g);
        }
    }

    public void gameOver(Graphics g) {
        g.setColor(Color.RED);
        g.setFont(new Font("Arial", Font.BOLD, 20));
        g.drawString("Game Over", WIDTH * SCALE / 2 - 70, HEIGHT * SCALE / 2);
    }

    public void actionPerformed(ActionEvent e) {
        repaint();
    }

    public static void main(String[] args) {
        new SnakeGame();
    }
}

import java.awt.*;
import java.util.*;

public class Snake {
    private ArrayList<Point> body;
    private Direction direction;
    private boolean grow;

    public Snake() {
        body = new ArrayList<>();
        body.add(new Point(20, 20));
        direction = Direction.RIGHT;
        grow = false;
    }

    public void setDirection(Direction direction) {
        this.direction = direction;
    }

    public Direction getDirection() {
        return direction;
    }

    public void move() {
        Point head = body.get(0);
        Point newHead = new Point(head.x, head.y);
        switch (direction) {
            case UP:
                newHead.y--;
                break;
            case DOWN:
                newHead.y++;
                break;
            case LEFT:
                newHead.x--;
                break;
            case RIGHT:
                newHead.x++;
                break;
        }
        body.add(0, newHead);
        if (!grow) {
            body.remove(body.size() - 1);
        } else {
            grow = false;
        }
    }

    public void draw(Graphics g) {
        g.setColor(Color.GREEN);
        for (Point p : body) {
            g.fillRect(p.x * SnakeGame.SCALE, p.y * SnakeGame.SCALE, SnakeGame.SCALE, SnakeGame.SCALE);
        }
    }

    public boolean checkCollision() {
        Point head = body.get(0);
        for (int i = 1; i < body.size(); i++) {
            if (head.equals(body.get(i))) {
                return true;
            }
        }
        int x = head.x;
        int y = head.y;
        return x < 0 || x >= SnakeGame.WIDTH || y < 0 || y >= SnakeGame.HEIGHT;
    }
}

public enum Direction {
    UP, DOWN, LEFT, RIGHT
}

这个贪吃蛇游戏使用Java的图形界面库(Swing)来实现,玩家通过控制方向键来控制蛇的移动,目标是吃到食物并避免碰到自己的身体或边界。当蛇的头部与身体或边界发生碰撞时,游戏结束。(如果你有兴趣,还可以尝试增加一些功能,比如计分系统、难度级别等等)

🎇🎇井字棋小游戏

import java.util.Scanner;

public class TicTacToeGame {
    private char[][] board;
    private char currentPlayer;
    private boolean gameOver;

    public TicTacToeGame() {
        board = new char[3][3];
        currentPlayer = 'X';
        gameOver = false;
        initializeBoard();
    }

    public void playGame() {
        System.out.println("欢迎来到井字棋游戏!");

        while (!gameOver) {
            printBoard();
            int[] move = getPlayerMove();
            makeMove(move[0], move[1]);
            if (checkWin()) {
                printBoard();
                System.out.println("玩家 " + currentPlayer + " 赢了!");
                gameOver = true;
            } else if (checkDraw()) {
                printBoard();
                System.out.println("平局!");
                gameOver = true;
            } else {
                switchPlayer();
            }
        }
    }

    private void initializeBoard() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                board[i][j] = '-';
            }
        }
    }

    private void printBoard() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print(board[i][j] + " ");
            }
            System.out.println();
        }
    }

    private int[] getPlayerMove() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("玩家 " + currentPlayer + ",请输入您的下一步坐标(行 列):");
        int row = scanner.nextInt();
        int col = scanner.nextInt();
        return new int[]{row, col};
    }

    private void makeMove(int row, int col) {
        if (row >= 0 && row < 3 && col >= 0 && col < 3 && board[row][col] == '-') {
            board[row][col] = currentPlayer;
        } else {
            System.out.println("无效的移动!请重新输入。");
            int[] move = getPlayerMove();
            makeMove(move[0], move[1]);
        }
    }

    private boolean checkWin() {
        for (int i = 0; i < 3; i++) {
            if (board[i][0] == currentPlayer && board[i][1] == currentPlayer && board[i][2] == currentPlayer) {
                return true;
            }
            if (board[0][i] == currentPlayer && board[1][i] == currentPlayer && board[2][i] == currentPlayer) {
                return true;
            }
        }
        if (board[0][0] == currentPlayer && board[1][1] == currentPlayer && board[2][2] == currentPlayer) {
            return true;
        }
        if (board[0][2] == currentPlayer && board[1][1] == currentPlayer && board[2][0] == currentPlayer) {
            return true;
        }
        return false;
    }

    private boolean checkDraw() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (board[i][j] == '-') {
                    return false;
                }
            }
        }
        return true;
    }

    private void switchPlayer() {
        if (currentPlayer == 'X') {
            currentPlayer = 'O';
        } else {
            currentPlayer = 'X';
        }
    }

    public static void main(String[] args) {
        TicTacToeGame game = new TicTacToeGame();
        game.playGame();
    }
}

经典的井字棋游戏,两位玩家轮流下棋,首先连成一条线的玩家获胜,如果棋盘填满且没有玩家获胜,则为平局。

👊👊石头、剪刀、布游戏

import java.util.Random;
import java.util.Scanner;

public class RockPaperScissorsGame {
    public static void main(String[] args) {
        String[] choices = { "石头", "剪刀", "布" };
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();

        System.out.println("欢迎来到石头、剪刀、布游戏!");

        while (true) {
            System.out.print("请输入你的选择(石头、剪刀、布)或输入 q 退出游戏:");
            String playerChoice = scanner.nextLine();

            if (playerChoice.equalsIgnoreCase("q")) {
                break;
            }

            int randomIndex = random.nextInt(choices.length);
            String computerChoice = choices[randomIndex];

            System.out.println("你的选择:" + playerChoice);
            System.out.println("电脑的选择:" + computerChoice);

            String result = determineWinner(playerChoice, computerChoice);
            System.out.println(result);
            System.out.println();
        }

        System.out.println("游戏结束。谢谢你的参与!");
    }

    public static String determineWinner(String playerChoice, String computerChoice) {
        if (playerChoice.equalsIgnoreCase(computerChoice)) {
            return "平局!";
        } else if (
                (playerChoice.equalsIgnoreCase("石头") && computerChoice.equalsIgnoreCase("剪刀")) ||
                (playerChoice.equalsIgnoreCase("剪刀") && computerChoice.equalsIgnoreCase("布")) ||
                (playerChoice.equalsIgnoreCase("布") && computerChoice.equalsIgnoreCase("石头"))
        ) {
            return "你赢了!";
        } else {
            return "电脑赢了!";
        }
    }
}

这个石头、剪刀、布游戏需要输入自己的选择(石头、剪刀、布),然后与电脑进行对战,决定胜负。游戏会根据规则判断出胜负,并展示结果。可以输入 "q" 退出游戏。

希望这几款小游戏能够让大家找回当初敲代码的初心,虽然是谋生手段但是也不妨碍我们乐在其中这个六一希望大家能够开心敲代码用代码找回童心~ 

🍓🍓🍓🍓🍓这次的分享就到这里,不要忘记关注光子郎,也点点文末小卡片,一定会有你喜欢的资源分享以及干货整理,我们下期再见啦,拜拜~文章来源地址https://www.toymoban.com/news/detail-467161.html

到了这里,关于六一用代码找回童心,花几分钟开发JAVA小游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python开发小游戏:写一个飞机大战只需要500行代码!

    ‘’’ :param background_image_path: 背景图片的路径地址 :param size: 游戏窗口的大小 :param title: 游戏窗口的标题 :param font_name: 指定字体 :param font_size: 指定字体大小 :param speed: 背景图滚动整个窗口一次所用时间,单位为ms ‘’’ self.size = size self.screen = pygame.display.set_mode(size) self.tit

    2024年04月11日
    浏览(40)
  • 五子棋小游戏 java版(代码+详细注释)

    游戏展示         这周闲来无事,再来写个五子棋小游戏。基本功能都实现了,包括人人对战、人机对战。界面布局和功能都写的还行,没做到很优秀,但也不算差。如有需要,做个java初学者的课程设计或者自己写着玩玩也都是不错的(非常简单,小白照着就能写出来)。

    2024年02月07日
    浏览(39)
  • Java实现五子棋小游戏(附思路讲解,全部代码,游戏截图)

    本文章是如何实现一个单机版双人五子棋小游戏,通过Swing技术进行可视操作. 个人简介: 🤦‍♂️个人主页:码云不秃头. 😜本人是一名大三学生,马上就要变成考研狗啦,通过一学期对Java学习,经过老师的教学,实现单机版的双人五子棋小游戏,大家互相学习,也同时为了完成我的实

    2024年02月07日
    浏览(40)
  • Java实现俄罗斯方块小游戏。(附完整源代码)

    大家好,我是百思不得小赵。 创作时间:2022 年 5 月 12 日 博客主页: 🔍点此进入博客主页 —— 新时代的农民工 🙊 —— 换一种思维逻辑去看待这个世界 👀 今天是加入CSDN的第1167天。觉得有帮助麻烦👏点赞、🍀评论、❤️收藏 目录 一、游戏背景 二、功能实现 三、效果

    2024年02月03日
    浏览(52)
  • 实现用java做一个简易版《羊了个羊》小游戏(附源代码)

    该项目是跟着这个b站视频一步一步写出来的,初学java有些地方我看不是很明白,但是讲解很仔细,大家可以看原视频,我没有添加背景音乐和背景图片,做出来的效果也勉勉强强。 代码已经上传到github上了,大家可以去github上直接下载代码,附上链接:点击进入github源码链接

    2024年02月04日
    浏览(55)
  • 【Java项目介绍和界面搭建】拼图小游戏完结——源代码分析以及资料上传

    目录 以后工作的时候拿到一个需求之后: 1,所需要的技术点 2,分析业务逻辑 项目实现步骤: 添加组件 绑定事件: 分析业务逻辑 分析所需要的技术点 在这个界面中,我们需要哪些技术点: 整个的菜单就是JMenuBar 功能,关于我们:JMenu 更换图片:JMenu 重新游戏,重新登录

    2024年03月11日
    浏览(50)
  • 10分钟教你用Python写一个贪吃蛇小游戏,适合练手项目

    贪吃蛇,大家应该都玩过。当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎。今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 所有的游戏最主要的内容都是程序的内循环,这才是保证一个游戏能够正常运行的前提。 以下是编写贪吃

    2024年01月17日
    浏览(43)
  • (小白必看)CentOS 7(1.7)及以上版本等切换运行级别模式以及单用户模式修改root密码教程指南(亲测3分钟操作找回密码)

            CentOS 6中的运行级别是以 数字 划分标识的,而在7则是以 英文单词 划分。不废话,直接上图 CentOS 6 CentOS 7 备注 level 0  poweroff.target 关机 level 1 rescue.target 单用户模式(重置root密码) level 2 multi-user.target 多用户无网络服务 level 3 multi-user.target 多用户有网络服务 level

    2024年02月04日
    浏览(44)
  • git代码拉取报错,找回丢失代码

    git拉取代码时,由于不明原因导致本地代码消失了,而且本地代码并没commit到本地仓库,导致无法找回,此方法可以把这部分代码找回 2个步骤: 1.在命令行输入:git fsck --lost-found,查看到本地丢失代码的id;如 点击enter会自动加载。 2.输入:git show +id,按enter,就会得到丢失

    2024年02月07日
    浏览(28)
  • git找回丢失的代码

    问题描述        某次rebase导致我本地已经提交的代码丢失,没有提交到gitlab上。git log也没有记录。 解决办法        使用git reflog + git cherry-pick commitId来重新将该次commit来添加到代码中 步骤 1.使用git reflog命令来查看你最近所有的提交(非常详细的git记录,包括rebase等操作

    2024年02月13日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包