关于使用java 武松打虎的小游戏

package com;
import java.util.Random;

public class Wusongdahu {
	public static void main(String[] args) {
		//实例化对象
		wusong wu = new wusong();
		laohu hu = new laohu();
		
		int i = 1;//	计数器
		//当武松与老虎的生命值大于0的时候进入循环,不满足就跳出循环
		while(wu.hp >0&&hu.hp > 0){
			System.out.println("第"+i+"回合");
			i++;
			
		int wu_sh = wu.daHU();	//接收wusong类里的daHU的方法返回值
		hu.hp = hu.hp - wu_sh;	//老虎的生命值-武松的伤害
		
		if(hu.hp < 0) {					//如果老虎的生命值小于0,就把0重新赋值于老虎的生命值
			hu.hp = 0;
		}
		System.out.println("老虎剩余生命值:" + hu.hp);
		int hu_sh = hu.daRen();  //接收laohu类里的daRen的方法返回值
		wu.hp = wu.hp - hu_sh;	//武松的生命值-老虎的伤害
		
		if(wu.hp < 0) {					//如果武松的生命值小于0,就把0重新赋值于武松的生命值
			wu.hp = 0;
		}
		System.out.print("武松剩余生命值:" + wu.hp);
		System.out.println("\n");	//换行
		
		}if(wu.hp == 0&&hu.hp ==0 ) {
			System.out.println();
			System.out.println("两人势均力敌,两败俱伤,不久都是死在破伤风。默哀");
			//如果武松的生命值小于等于零那么老虎胜利,否则武松胜利
		}else if(wu.hp <=0){
			System.out.println("老虎赢得胜利");
		}else {
			System.out.println("武松赢得胜利");
		}
	}
}

//创建一个武松模板
class wusong{
	//武松的生命值
	int hp =200;
	//武松的招式
	String jiNen[] = {"脚踹","手锤","头撞"};
	//招式伤害
	int shangHai[] = {10,30,40};
	String []leixing = {"普通","猛击","智力"};
	
	//武松打虎对象
	int daHU(){
		//随机函数套用入arr整形变量
		int arr = new Random().nextInt(3);
		//将jiNen里的的值随机化
		String jN = jiNen[arr];
		
		//将随机的数赋予sH
		int sH = shangHai[arr];
		String lX = leixing[arr];
		System.out.print("武松使用: "+jN+"\t攻击老虎,造成" + sH + "点: "+lX+"伤害,");
		//返回sH值
		return sH ;
	}
}

//创建一个老虎模板
class laohu{
	//老虎的生命值
	int hp = 300;
	//老虎的招式
	String jiNen[] = {"撕咬","抓","扫"};
	//招式伤害
	int shangHai[] = {30,20,10};
	String []leixing = {"掉肉","流血","普通"};
	
	//老虎打武松对象
	int daRen(){
		//随机函数套用入arr整形变量
		int arr = new Random().nextInt(3);
		//将jiNen里的的值随机化
		String jN = jiNen[arr];
		
		//将随机的数赋予sH
		int sH = shangHai[arr];
		
		String lX = leixing[arr];
		//返回sH值
		System.out.print("老虎使用: "+jN+"\t攻击武松,造成"+ sH +"点: "+lX+"伤害,");
		return sH ;
	}
}


<think>好的,用户想用C语言实现“武松打虎”的故事情节或游戏逻辑。首先,我需要明确用户的需求到底是什么。他们可能是在学习C语言,想通过一个有趣的项目来练习,比如文本冒险游戏或者简单的角色扮演游戏。武松打虎是一个经典的故事,涉及战斗、选择等元素,适合用程序来模拟。 接下来,我得考虑如何将这个故事转化为C语言的程序结构。可能需要使用条件语句(if-else)来处理用户的选择,循环语句(比如while或for)来控制游戏流程,变量来记录角色状态(如血量、攻击力),随机数生成来模拟战斗的不确定性。此外,可能需要数组或结构体来管理角色数据。 然后,参考用户提供的引用,特别是引用[3]中提到的随机数生成,可以用rand()和srand()函数,这和战斗中的伤害计算可能相关。引用[1]提到C语言的循环结构,可以用来处理游戏的主循环,确保游戏持续运行直到结束。 用户可能需要一个简单的示例,所以得构思一个基本的框架。例如,开始场景描述,玩家选择是否战斗,战斗中使用随机数决定攻击效果,根据血量判断胜负。同时,要确保代码结构清晰,有注释说明各部分的功能。 可能遇到的问题包括如何管理游戏状态、处理用户输入以及确保程序流畅运行。需要提醒用户注意输入验证,比如防止无效的选择导致程序崩溃。此外,随机数的种子设置(srand(time(NULL)))也很重要,以确保每次运行结果不同。 最后,思考如何扩展这个程序,比如增加更多场景、道具系统或更复杂的战斗机制,这可以作为相关问题提出,帮助用户进一步学习。</think># C语言实现"武松打虎"故事逻辑的实现思路 根据您提供的引用内容[^3]中关于C语言数组和随机数的应用方法,我们可以设计一个基于文本的交互式故事程序。以下是实现该逻辑的逐步方案: ## 1. 基础框架设计 ```c #include <stdio.h> #include <stdlib.h> #include <time.h> // 角色状态结构体 typedef struct { int hp; int attack; } Character; ``` ## 2. 核心战斗逻辑 ```c void fight(Character *hero, Character *tiger) { srand(time(NULL)); while(hero->hp > 0 && tiger->hp > 0) { // 武松攻击 int hero_dmg = rand() % hero->attack + 5; tiger->hp -= hero_dmg; printf("武松使出醉拳,造成%d点伤害!\n", hero_dmg); // 老虎反击 if(tiger->hp > 0) { int tiger_dmg = rand() % tiger->attack + 8; hero->hp -= tiger_dmg; printf("猛虎扑咬,武松失去%d点生命!\n", tiger_dmg); } } } ``` ## 3. 完整代码实现 ```c int main() { Character wusong = {120, 25}; // 武松初始状态 Character tiger = {100, 30}; // 老虎初始状态 int choice; printf("【景阳冈打虎】\n"); printf("武松来到酒肆,面前有三碗酒:\n"); printf("1. 喝一碗\n2. 喝三碗\n3. 不喝\n"); scanf("%d", &choice); if(choice == 1) { wusong.attack += 5; printf("武松力量微增!\n"); } else if(choice == 2) { wusong.attack += 15; wusong.hp -= 20; printf("武松醉意朦胧,攻击力大涨但生命下降!\n"); } printf("\n突然林中窜出一只吊睛白额虎!\n"); fight(&wusong, &tiger); if(wusong.hp > 0) { printf("\n武松成功制服猛虎,成为打虎英雄!\n"); } else { printf("\n武松体力不支,不幸...\n"); } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值