第一代,不是很完善,会在后续增加更多的功能

主:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 对战游戏
{
class Program
{
static void Main(string[] args)
{
Random r = new Random(); Soldier s1 = new Soldier(); Console.Write("请输入角色名:");
s1.Name = Console.ReadLine();
s1.Attack = r.Next(, );
s1.Blood = r.Next(, );
zhaoshi z1 = new zhaoshi();
Console.Write("请输入技能1名称:");
z1.Name = Console.ReadLine();
z1.Attack= r.Next(, );
s1.Skill = z1;
zhaoshi z2 = new zhaoshi();
Console.Write("请输入技能2名称:");
z2.Name1 = Console.ReadLine();
z2.Attack1 = r.Next(, );
s1.Skill1 = z2;
zhaoshi z3 = new zhaoshi();
Console.Write("请输入必杀技名称:");
z3.Name = Console.ReadLine();
z3.Attack = r.Next(, );
s1.Slay= z3;
//闪避
s1.Miss = r.Next(, );
//格挡
s1.block = r.Next(, ); Soldier s2 = new Soldier();
Console.Write("请输入角色名:");
s2.Name = Console.ReadLine();
s2.Attack = r.Next(, );
s2.Blood = r.Next(, );
zhaoshi z4 = new zhaoshi();
Console.Write("请输入技能1名称:");
z4.Name = Console.ReadLine();
z4.Attack = r.Next(, );
s2.Skill = z4;
zhaoshi z5 = new zhaoshi();
Console.Write("请输入技能2名称:");
z5.Name1 = Console.ReadLine();
z5.Attack1 = r.Next(, );
s2.Skill1 = z5;
zhaoshi z6 = new zhaoshi();
Console.Write("请输入必杀技名称:");
z6.Name = Console.ReadLine();
z6.Attack = r.Next(, );
s2.Slay = z6; s2.Miss = r.Next(, );
s2.block = r.Next(, ); Console.WriteLine("============================================战士信息展示=============================================");
Console.WriteLine("战士1:" + s1.Name + ",攻击:" + s1.Attack + ",闪避:" + s1.Miss + ",格挡:" + s1.block + ", 血量:" + s1.Blood + ",技能1:" + s1.Skill.Name + "," + s1.Skill.Attack + ",技能2:" + s1.Skill1.Name1 + "," + s1.Skill1.Attack1 + ",必杀技:" + s1.Slay.Name + "," + s1.Slay.Attack);
Console.WriteLine("战士2:" + s2.Name + ",攻击:" + s2.Attack + ",闪避:" + s2.Miss + ",格挡:" + s1.block + ",血量:" + s2.Blood + ",技能1:" + s2.Skill.Name + "," + s2.Skill.Attack + ",技能2:" + s2.Skill1.Name1 + "," + s2.Skill1.Attack1 + ",必杀技:" + s2.Slay.Name + "," + s2.Slay.Attack);
Console.WriteLine("按下任意键开始战斗!!!");
Console.ReadKey(); int count = ;
while (true)
{
Console.WriteLine("==========================第" + count + "回合==========================");
System.Threading.Thread.Sleep(); if (r.Next(, ) < s2.Miss)
{
Console.WriteLine(s2.Name + "躲避了此次攻击!!!");
}
else
{
if (r.Next(, ) < s2.block)
{
{
Console.WriteLine(s2.Name + "格挡了此次攻击!!!");
}
}
else
{
int ss1 = r.Next(, ); if (ss1 > )//开大招
{
Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("【" + s1.Name + "】对【" + s2.Name + "】释放了★★★★★▄︻┻═┳一" + s1.Slay.Name + "★★★★★,造成" + s1.Slay.Attack + "点伤害,【" + s2.Name + "】剩余" + (s2.Blood - s1.Slay.Attack) + "点血量");
Console.WriteLine();
//S2扣血
s2.Blood -= s1.Slay.Attack;
}
else if (ss1 >= && ss1 <= )//开小招
{
int ss3 = r.Next(, ); if (ss3 >= && ss3 < )
{
Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("【" + s1.Name + "】对【" + s2.Name + "】释放了☆☆☆" + s1.Skill.Name + "☆☆☆,造成" + s1.Skill.Attack + "点伤害,【" + s2.Name + "】剩余" + (s2.Blood - s1.Skill.Attack) + "点血量");
Console.WriteLine();
//S2扣血
s2.Blood -= s1.Skill.Attack;
}
else
{
Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("【" + s1.Name + "】对【" + s2.Name + "】释放了☆☆☆" + s1.Skill1.Name1 + "☆☆☆,造成" + s1.Skill1.Attack1 + "点伤害,【" + s2.Name + "】剩余" + (s2.Blood - s1.Skill1.Attack1) + "点血量");
Console.WriteLine();
//S2扣血
s2.Blood -= s1.Skill.Attack;
}
}
else//普通攻击
{
Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("【" + s1.Name + "】攻击了【" + s2.Name + "】,造成" + s1.Attack + "点伤害,【" + s2.Name + "】剩余" + (s2.Blood - s1.Attack) + "点血量");
Console.WriteLine();
//S2扣血
s2.Blood -= s1.Attack;
} //判断战士2是否阵亡
if (s2.Blood <= )
{
Console.WriteLine("【" + s2.Name + "】已阵亡!【" + s1.Name + "】是获胜者!!!");
break;
}
}
//战士2开始攻击 System.Threading.Thread.Sleep(); if (r.Next(, ) < s1.Miss)
{
Console.WriteLine(s1.Name + "躲避了此次攻击!!!");
}
else
{
if (r.Next(, ) < s1.block)
{
{
Console.WriteLine(s1.Name + "格挡了此次攻击!!!");
}
}
else
{
int ss2 = r.Next(, ); if (ss2 > )//开大招
{
Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("【" + s2.Name + "】对【" + s1.Name + "】释放了★★★★★▄︻┻═┳一" + s2.Slay.Name + "★★★★★,造成" + s2.Slay.Attack + "点伤害,【" + s1.Name + "】剩余" + (s1.Blood - s2.Slay.Attack) + "点血量");
Console.WriteLine();
//S2扣血
s1.Blood -= s2.Slay.Attack;
}
else if (ss2 >= && ss2 <= )//开小招
{
int ss4 = r.Next(, );
if (ss4 >= && ss4 < )
{
Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("【" + s2.Name + "】对【" + s1.Name + "】释放了☆☆☆" + s2.Skill.Name + "☆☆☆,造成" + s2.Skill.Attack + "点伤害,【" + s1.Name + "】剩余" + (s1.Blood - s2.Skill.Attack) + "点血量");
Console.WriteLine();
//S2扣血
s1.Blood -= s2.Skill.Attack;
}
else
{
Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("【" + s2.Name + "】对【" + s1.Name + "】释放了☆☆☆" + s2.Skill1.Name1 + "☆☆☆,造成" + s2.Skill1.Attack1 + "点伤害,【" + s1.Name + "】剩余" + (s1.Blood - s2.Skill1.Attack1) + "点血量");
Console.WriteLine();
//S2扣血
s1.Blood -= s2.Skill.Attack;
}
}
else//普通攻击
{
Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("【" + s2.Name + "】攻击了【" + s1.Name + "】,造成" + s2.Attack + "点伤害,【" + s1.Name + "】剩余" + (s1.Blood - s2.Attack) + "点血量");
Console.WriteLine();
//S2扣血
s1.Blood -= s2.Attack;
}
if (s1.Blood <= )
{
Console.WriteLine("【" + s1.Name + "】已阵亡!【" + s2.Name + "】是获胜者!!!");
break;
}
}
}
} count++;
}
Console.ReadKey(); }
}
}

辅:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 对战游戏
{
class zhaoshi
{
private string name; /// <summary>
/// 招式名称
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
} private string name1; /// <summary>
/// 招式名称
/// </summary>
public string Name1
{
get { return name1; }
set { name1 = value; }
} private int attack; /// <summary>
/// 招式攻击
/// </summary>
public int Attack
{
get { return attack; }
set { attack = value; }
} private int attack1; /// <summary>
/// 招式攻击
/// </summary>
public int Attack1
{
get { return attack1; }
set { attack1 = value; }
} }
}

技能

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 对战游戏
{
class Soldier
{
//名字
private string name; public string Name
{
get { return name; }
set { name = value; }
}
//血量
private int blood; public int Blood
{
get { return blood; }
set { blood = value; }
}
//攻击力
private int attack; public int Attack
{
get { return attack; }
set { attack = value; }
}
//技能
private zhaoshi skill; public zhaoshi Skill
{
get { return skill; }
set { skill = value; }
} private zhaoshi skill1; public zhaoshi Skill1
{
get { return skill1; }
set { skill1 = value; }
}
//必杀技
private zhaoshi slay; internal zhaoshi Slay
{
get { return slay; }
set { slay = value; }
}
//闪避
private int miss; public int Miss
{
get { return miss; }
set { miss = value; }
}
//暴击
private int critical; public int Critical
{
get { return critical; }
set { critical = value; }
}
//格挡
private int Block; public int block
{
get { return Block; }
set { Block = value; }
} }
}

人物属性

内容截图:

C#小游戏(文字对战游戏)的更多相关文章

  1. 基于Udp的五子棋对战游戏

    引言 本文主要讲述在局域网内,使用c#基于Udp协议编写一个对战的五子棋游戏.主要从Udp的使用.游戏的绘制.对战的逻辑这三个部分来讲解. 开发环境:vs2013,.Net4.0,在文章的末尾提供源代 ...

  2. ADO.Net(五)——实战:对战游戏

    对战游戏 要求: 自建数据表(例如:数据表包含:代号,姓名,性别,血量,攻击力,防御力,命中,闪避,等级等字段) 需要通过程序向数据表添加人员 添加的时候,根据用户输入的名字,自动计算生成相应的血量. ...

  3. 【经典】C++&RPG对战游戏

    博文背景: 还记大二上学期的时候看的这个C++&RPG游戏(博主大一下学期自学的php,涵盖oop内容),一个外校的同学他们大一学的C++,大二初期C++实训要求做一个程序填空,就是这个 RP ...

  4. c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;

    网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...

  5. ADO.NET 扩展属性、配置文件 和 对战游戏

    扩展属性 有外键关系时将信息处理成用户可看懂的 利用扩展属性 如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称 需要在Info类里面扩展一个显示nation名称的属性 例:先前 ...

  6. 微信小程序开发(5) 2048游戏

    在这篇微信小程序开发教程中,我们将介绍如何使用微信小程序开发2048小游戏. 本文主要分为两个部分,小程序主体部分及小游戏页面部分 一.小程序主体部分 一个小程序主体部分由三个文件组成,必须放在项目的 ...

  7. python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。

    python小练习:使用循环和函数实现一个摇骰子小游戏.游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“ ...

  8. C# 推箱子游戏&对战游戏

    推箱子游戏提纲,只有向右向上的操作,向左向下同理,后期需完善. namespace 推箱子 { class Program { static void Main(string[] args) { // ...

  9. 自己写的一个小的剪刀——石头——布游戏的GUI程序

    很简单的一个程序,建议各位初学Java的同学可以试试写写这个程序: import javax.swing.JOptionPane; public class Game { public static ...

随机推荐

  1. getDate()返回日期不一致问题引发的bug

    问题描述 最近在webapp的开发中遇到一个Date对象中getDate获取日期的兼容性问题,Date对象的getDate方法返回的日期和传入的日期不一致,例如: 在android 4.3以下版本,g ...

  2. ABAP 动态生成内表的几种方法

    最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了.网上讲述 ...

  3. 记Ubuntu开机黑屏及解决过程

    之前遇到一次Ubuntu因为失误卸载了xinit.xserver的原因,导致开机黑屏无法进入系统,实际上当时是第一次遇到这种情况,因此花了点时间自己摸索,事后想来解决方案还是比较简单的,从目前的观点来 ...

  4. 使用Autodesk OAuth服务在用户认证的示例

    大家知道以Autodesk 360为核心的Autodesk 云服务已经陆续发布,ReCap API.InfraWorks API和PLM 360 REST API已经开始的Pilot项目供第三方开发者 ...

  5. webservice简单引用

    //1.创建网站//2.新建项=>添加web服务//运行texttweb.asmx可以通过访问http://域名/webservice/texttweb.asmx来验证了//3.添加服务引用=& ...

  6. Fragment与FragmentActivity的关系

    前阵用viewpaper+fragment做滑动引导,查阅了下网上的资料,发现在有两种做法,一个是自建类直接继承Activity另一种是继承FragmentActivity,很是迷惑,在查了些goog ...

  7. Android 应用程序的反编译

    1.ApkTool工具 安装ApkTool工具,该工具可以解码得到资源文件,但不能得到Java源文件.安装环境:需要安装JRE1.61> 到http://code.google.com/p/an ...

  8. IrfanView 4.36 中文版发布了

    IrfanView 4.36 简体中文便携版 小而快的图片浏览器 仅仅不到2M的小软件,功能却能与体积大到几十M的ACDSee相媲美!这个软件就是IrfanView.图片.音频.视频浏览,图片批量格式 ...

  9. 【转】C# 中的委托和事件

    阅读目录 C# 中的委托和事件 引言 将方法作为方法的参数 将方法绑定到委托 事件的由来 事件和委托的编译代码 委托.事件与Observer设计模式 .Net Framework中的委托与事件 总结 ...

  10. 一个简单的Servlet容器实现

    上篇写了一个简单的Java web服务器实现,只能处理一些静态资源的请求,本篇文章实现的Servlet容器基于前面的服务器做了个小改造,增加了Servlet请求的处理. 程序执行步骤 创建一个Serv ...