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

主:

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. ABAP 加密解密程序

    用于对字符串的加密和解密: DATA: o_encryptor TYPE REF TO cl_hard_wired_encryptor, o_cx_encrypt_error TYPE REF TO ...

  2. iOS之属性修饰符 retain、strong和copy区别测试

    时不时会有点迷惑属性修饰符retain.strong.copy三者之间的区别,还是把测试过程记录下来好一点! 1.属性修饰符结论 2.给retain.strong.copy修饰的字符串属性赋值指针变化 ...

  3. entityframework lamda 使用where时的注意事项

    我在项目中做了个底层 访问数据库泛型类 BaseEFDao<T> 在获取实体模型的时候使用了 Entities.CreateObjectSet<T>().Where(Func& ...

  4. 【代码笔记】iOS-标题2个图标,点击的时候,页面跳转

    一,效果图. 二,工程图. 三,代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  5. IOS设计模式-观察者模式

    前言:23种软件设计模式中的观察者模式,也是在软件开发中,挺常用的一种设计模式.而在苹果开发中,苹果Cocoa框架已经给我们实现了这个设 计模式,那就是通知和KVO(Key-Value Observi ...

  6. zend studio 8 修字体和大小

    第一步:进入设置窗口    windows -> preferences 第二步:进入修改字体的选项卡.    General -> Appearance -> Colors and ...

  7. new ActiveXObject("Scripting.FileSystemObject") 时抛出异常 .

    使用JScript读写本地文件时,会使用Scripting.FileSystemObject控件. IE默认是不允许运行这类“未标记为安全执行脚本的ActiveX控件”的. 因此执行下行代码时: fs ...

  8. 转:JQuery.Ajax之错误调试帮助信息

    今天发现一篇讲Ajax比较好的文章,汇总下,作为自己的知识储备. 下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. typ ...

  9. asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config

    从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了 [App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleCon ...

  10. Flume应用场景及架构原理

    Flume概念 Flume是一个分布式.可靠.和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. ...