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

主:

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. 错误 1 “System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制

    new DataRow 的方式: DataTable pDataTable = new DataTable(); DataRow pRow = new DataRow(); 正确的方式: DataRo ...

  2. linux系统免密码登陆

    有两台机器,系统都是CentOS6.5,IP分别为192.168.2.150,192.168.2.151.现在150需要SSH免密码登陆151. 在150上面执行命令,当前登录用户是root: # s ...

  3. Android java传递int类型数组给C

    接着前面的文章<Android java传递int类型数据给C><Android java传递string类型数据给C>,继续实践 实现public native int[] ...

  4. 【代码笔记】iOS-创建具有中划线的文字

    一, 效果图. 二,工程图. 三,代码. RootViewController.h RootViewController.m - (void)viewDidLoad { [super viewDidL ...

  5. 【代码笔记】iOS-按钮带下划线的写法

    一,效果图. 二,工程图. 三,代码. RootViewController.h RootViewController.m - (void)viewDidLoad { [super viewDidLo ...

  6. OC与JS的交互

    现在APP的开发已经不局限于原生开发,很多都是原生+html5这种混合开发 我们可以通过webView这个控件,实现混合开发. 1.首先你需要创建一个html页面 <html> <h ...

  7. django 基于proxy实现用户权限管理

    项目中经常会遇到用户权限管理的问题,django adminsite已经提供非常实用的用户权限管理机制.不过有些时候,我们希望根据相关用户属性来过滤adminsite中显示的内容.下文将结束如何实现: ...

  8. 使用getopts处理shell中的输入参数

    在编写shell脚本中,经常要处理一些输入参数,在使用过程中发现getopts更加方便,能够很好的处理用户输入的参数和参数值.   getopts用于处理用户输入参数,举例说明使用方法: while ...

  9. EnumMap

    以下内容基于jdk1.7.0_79源码: 什么是EnumMap Map接口的实现,其key-value映射中的key是Enum类型: 补充说明 其原理就是一个对象数组,数组的下标索引就是根据Map中的 ...

  10. spring 和springMVC的区别

    springmvc只是spring其中的一部分.spring 可以 支持 hibernate ,ibatis ,JMS,JDBC 支持事务管理, 注解功能,表达式语言,测试springmvc 就是一个 ...