【Java实例-英雄对战】Java战斗之旅,既分胜负也决生死

简介: 游戏规则:在“英雄对战”中,玩家和敌人轮流选择行动,目标是在对方生命值归零前将其击败。游戏开始时,玩家和敌人都有100生命值。每回合,玩家可以选择“攻击”,“追击”,“闪避反击”这三种行动之一。

top.png

在数字世界的战场上,每一次决策都可能改变战局,每一次行动都充满了未知。今天,我将带你走进一个充满策略和激情的战斗世界——“英雄对战”游戏。这不仅是一个简单的控制台游戏,更是一场智力与勇气的较量。无论你是编程新手还是资深开发者,这款游戏都能带给你无尽的乐趣和挑战。

游戏规则:在“英雄对战”中,玩家和敌人轮流选择行动,目标是在对方生命值归零前将其击败。游戏开始时,玩家和敌人都有100生命值。每回合,玩家可以选择“攻击”,“追击”,“闪避反击”这三种行动之一。每回合结束后,根据双方的选择判断胜负并更新生命值。如果双方选择相同,则该回合为平局,生命值不变。当一方生命值降至零或以下时,游戏结束,该方被击败。


该文章的目录:

1. 游戏目标

2. 游戏流程设计

3. 关键技术点

4. 完整代码

5. 测试和运行


原创-谷宇博客,拥有更多小游戏案例:https://biguyu.top/home

--------------------

一. 游戏目标

设计一个简单的控制台游戏“英雄对战”,玩家和人机轮流选择行动(包括攻击、追击和闪避反击),目标是在对方生命值归零前将其击败。


二. 游戏流程设计

(1) 初始化游戏:设置初始生命值,打印游戏规则和欢迎信息。

(2) 玩家输入:接收玩家的行动选择,并验证输入的有效性。

(3) 程序随机选择:随机生成程序的行动选择。

(4) 判断胜负:根据玩家和程序的选择,更新生命值并判断胜负。

(5) 游戏循环:重复上述步骤,直到一方生命值归零或游戏结束。

(6) 游戏结束:输出最终结果,结束游戏。


三. 关键技术点

(1) 随机数生成:如何使用Random类生成随机行动。

(2) 用户输入处理:如何使用Scanner类接收和验证用户输入。

(3) 胜负判断逻辑:如何根据玩家和程序的选择判断胜负。

(4) 生命值管理:如何管理玩家和程序的生命值,并在每回合更新。

(5) 控制流语句for循环,switch选择,if、if else和 else选择的使用。


四. 完整代码

package com.simple;

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

public class HeroBattle {

    public static void main(String[] args) {
        //游戏开始
        System.out.println("欢迎来到英雄对战游戏!");
        System.out.println("游戏规则:攻击->追击, 追击->闪避反击, 闪避反击->攻击");
        System.out.println("每回合你可以选择:1.攻击、2.追击、3.闪避反击");
        System.out.println("玩家和敌人初始都有 100 生命值");
        System.out.println("----------------------------------");

        //声明Scanner类,用于接收用户的输入
        Scanner scanner = new Scanner(System.in);
        //声明Random类,用户获得随机数
        Random random = new Random();
        //生命值
        int playLife = 100;
        int enemyLife = 100;

        int i = 1;
        while (true) {
            System.out.println("\n第 " + i +" 回合,开始");
            System.out.print("请输入你的行动(1.攻击/2.追击/3.闪避反击):");
            int playerChoice = scanner.nextInt();

            // 验证玩家输入是否正确有效
            if(playerChoice != 1 && playerChoice != 2 && playerChoice != 3){
                System.out.println("无效输入,请重新输入!");
                continue;
            }

            // 敌人随机选择行动
            int enemyChoice = random.nextInt(3) + 1;
            switch (enemyChoice){
                case 1:
                    System.out.println("敌人的行动是:攻击!");
                    break;
                case 2:
                    System.out.println("敌人的行动是:追击!");
                    break;
                case 3:
                    System.out.println("敌人的行动是:闪避反击!");
                    break;
            }


            // 判断胜负
            if (playerChoice == enemyChoice) {
                System.out.println("平局!");
            } else if ((playerChoice == 1 && enemyChoice == 2) ||
                    (playerChoice == 2 && enemyChoice == 3) ||
                    (playerChoice == 3 && enemyChoice == 1)) {
                enemyLife -= 30;
                System.out.println("玩家胜!");
                System.out.println("玩家挥剑攻击,敌人被打掉 30 生命值! 敌人剩余生命值:" + enemyLife);
            } else {
                playLife -= 30;
                System.out.println("敌人胜!");
                System.out.println("敌人挥刀攻击,玩家被打掉 30 生命值! 玩家剩余生命值:" + playLife);
            }

            // 判断玩家或敌人是否生命值归零
            if (playLife < 0) {
                System.out.println("玩家被击败,生命值归零。敌人胜利!");
                break;
            } else if(enemyLife < 0) {
                System.out.println("敌人被击败,生命值归零。玩家胜利!");
                break;
            }
            //回合数+1
            i++;
        }

        System.out.println("游戏结束!");
    }

}


五. 测试和运行

在运行“英雄对战”游戏时,我们重点关注了三种可能的游戏结果:玩家胜利和程序胜利。通过模拟玩家和程序的不同行动组合实现:当玩家的生命值降至零或以下时,程序会判定玩家失败;反之,当人机的生命值归零时,玩家获胜!

runFinish.png


目录
相关文章
|
1月前
|
人工智能 Java 开发者
【Java实例-简易计算机】使用Java实现简单的计算机案例
一个简单的Java案例——“简易计算器”,帮助编程新手快速上手。通过实现用户输入、基本逻辑运算和结果输出,学习者可以掌握变量声明、Scanner对象使用、控制流语句等关键知识点。文章分为设计思路、关键知识点、完整代码和测试运行四个部分。
99 9
【Java实例-简易计算机】使用Java实现简单的计算机案例
|
6天前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
28 0
|
2月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
86 6
|
1月前
|
Java 开发者
【Java实例-神秘年龄】用Java挑战你的直觉
我们一起走进这款款简单却充满趣味的Java小游戏——“神秘年龄”。这款游戏不仅适合编程初学者作为练习项目,也能为有一定基础的开发者提供一个轻松的编程小憩。
23 0
【Java实例-神秘年龄】用Java挑战你的直觉
|
1月前
|
Java 开发者
【Java实例-神秘硬币】用Java投掷你的幸运硬币,你是猜正还是反?
本文分享了一个简单有趣的编程案例——猜硬币正反面游戏。通过模拟抛硬币(0为正面,1为反面),用户输入猜测值,程序判断结果并输出。
70 0
【Java实例-神秘硬币】用Java投掷你的幸运硬币,你是猜正还是反?
|
27天前
|
存储 算法 Java
【Java实例-智慧牌局】Java实现赌桌上的21点
游戏规则:游戏开始时,玩家和庄家各获得两张牌,玩家可以看到自己手中的两张牌以及庄家的一张明牌。玩家需要根据手中的牌面总和,选择“要牌”(Hit)以获取更多牌,或“停牌”(Stand)停止要牌。如果玩家的牌面总和超过21点,即为爆牌,玩家立即输掉游戏。若玩家选择停牌,庄家则开始行动,其策略是当牌面总和小于17点时必须继续要牌。若庄家牌面总和超过21点,则庄家爆牌,玩家获胜。若双方均未爆牌,最终比较牌面总和,更接近21点的一方获胜;若牌面总和相同,则游戏以平局结束。
39 0
|
1月前
|
Java
【Java实例-小兵拆炸弹】Java打造数学挑战-拆炸弹
今天,我将向大家分享一款用Java开发的控制台小案例——“小兵拆炸弹”。游戏规则:玩家需要在有限的尝试次数内解开一系列数学题,以成功拆解炸弹。游戏的目标是连续答对五道数学题,每道题都由系统随机生成。如果玩家在五次机会内成功解密,游戏胜利;否则,炸弹爆炸,游戏结束。
36 0
|
3月前
|
前端开发 JavaScript Java
【Java进阶】JavaScript电灯开关实例:从理论到实践
这个例子展示了JavaScript的基本功能,包括操作HTML元素,监听事件,以及改变元素的样式。通过学习和理解这个例子,你可以了解到JavaScript在网页中的应用,以及如何使用JavaScript来创建交互式的网页。
70 13
|
9月前
|
Java
Java关键字 —— super 详细解释!一看就懂 有代码实例运行!
文章详细解释了Java关键字`super`的用途,包括访问父类的成员变量、调用父类的构造方法和方法,并提供了相应的代码实例。
707 5
Java关键字 —— super 详细解释!一看就懂 有代码实例运行!
|
6月前
|
存储 Java 计算机视觉
Java二维数组的使用技巧与实例解析
本文详细介绍了Java中二维数组的使用方法
175 15