我想在方法中创建随机数但是没办法限制在0-20。还有我想如果怪物没打死就一直战斗这个循环该怎么做呢?
可以的话麻烦提供一下整段代码参考
var rd = new Random();
Console.WriteLine(rd.Next(0, 21));
打死写个while循环判断所有怪物血量大于0或奥特曼血量大于0就继续互怼,示例如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
public class Item
{
public int Blood { get; set; }
public string Name { get; set; }
public int max { get; set; }
Random r = new Random();
/// <summary>
/// 单体攻击
/// </summary>
/// <param name="item">被攻击对象</param>
public void Attack(Item item)
{
Console.Write(this.Name + " 攻击 " + item.Name + "," + item.Name + "状态==》当前血量:" + item.Blood);
var value = r.Next(0, max + 1);
item.Blood -= value;
Console.WriteLine(",减少血量:" + value + ",剩余血量:" + item.Blood);
}
/// <summary>
/// 群攻
/// </summary>
/// <param name="items"></param>
public void Attack(List<Monster> items)
{
foreach (var item in items) Attack(item);
}
}
public class Ultraman: Item { }
public class Monster: Item { }
class Program
{
/// <summary>
/// 判断怪物是否全部挂了
/// </summary>
/// <param name="monsters"></param>
/// <returns></returns>
static bool AllDead(List<Monster> monsters)
{
bool allDead = true;
foreach(var item in monsters) if(item.Blood>0){ allDead = false;break; }
return allDead;
}
static void Main(string[] args)
{
var man = new Ultraman { Name = "凹凸曼", Blood = 100, max = 20 };
var monsters = new List<Monster> { };
for (var i = 0; i < 4; i++) monsters.Add(new Monster { Name = "怪物" + i, Blood = 20, max = 20 });
bool manIsDead = false;
while (true)
{
man.Attack(monsters);
if (AllDead(monsters)) { break; }
foreach (var item in monsters)
{
if (item.Blood > 0) item.Attack(man);
if (man.Blood < 0) { manIsDead = true; break; }
}
if (manIsDead) break;
}
Console.WriteLine("--------------------------\n互怼结果:" + (manIsDead ? "怪物赢" : "凹凸曼赢"));
Console.ReadKey();
}
}
}
实例化一个全局的 Random 对象,然后用这个对象 .Next,不要直接用静态方法
奥特曼和怪兽相当于两个实体对象,血量和姓名就是他们的属性定义。
首先获取触发攻击的场景和随机技能的伤害值。
string Spelldamage=输入值;
Random rd = new Random();
int RadNumber= rd.Next(0,20);
Attack(Spelldamage,RadNumber);
编写一个方法
private void Attack(stirng Spelldamage,int RadNumber)
{
if(Spelldamage=="群体技能")
{
创建四个怪兽的对象
给怪兽的属性血量进行赋值。
遍历怪兽的血量若血量等于0就跳出循环,并给出提示,怪兽被消灭了。
原有血量减去传递过来的血量
最后把结果进行输出就饿可以了。
}else
{
单体技能,只对一个怪兽起作用,
}
}