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

主:

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. JavaSript模块规范 - AMD规范与CMD规范介绍 (转载lovenyf.blog.chinaunix.net)

    JavaSript模块化   在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?       模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题 ...

  2. JavaBean 基础概念、使用实例及代码分析

    JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...

  3. Android项目实战(二十):浅谈ListView悬浮头部展现效果

    先看下效果:需求是 滑动列表 ,其中一部分视图(粉丝数,关注数这一部分)在滑动到顶端的时候不消失,而是停留在整个界面头部. 我们先分析要解决的问题: 1.如何实现列表ListView顶部视图跟随Lis ...

  4. Android 6.0 运行时权限处理

    在运行时请求权限 从Android 6.0(API级别23)开始,用户权限授予应用程序在应用程序运行时,当他们安装程序.这种方法简化了应用程序的安装过程,因为用户不需要安装或更新应用程序时授予权限.这 ...

  5. 【代码笔记】iOS-带输入框的UIAlertView

    一,效果图. 二,代码. //点击任何处,弹出输入框 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UIAlertV ...

  6. Swift 二维码扫描 简单实现

    3.30看视频  学到了二维码简单的实现 还有一些动画的实现  今天就先记录一下二维码扫描的简单实现  不太好记手写一遍 学习的基础在于模仿嘛 创建一个实现二维码扫描的步骤 1.首先是懒加载创建 会话 ...

  7. windows7 下伪静态配置方法

    今天终于算是彻底知道windows7下伪静态的IIS配置了.尼玛真坑爹,竟然64位的和32位的配置竟然不一样... 网上找的比较详细的文章地址: http://jingyan.baidu.com/ar ...

  8. Listener监听器与Filter过滤器

    1.Listener     [1]监听器简介         > Listener是JavaWeb的三大组件之一,Servlet.Filter.Listener         > Li ...

  9. 关于input全选反选恶心的异常情况

    上一篇讲到:第一次点击全选按钮input显示对勾,第二次则不显示,需要用prop来添加checked属性. 但是用prop会出现一个问题,对勾显示,而checked属性不会被添加(比如:$(" ...

  10. nutz如何体现mvc思想的

    如何理解web mvc框架?? 一.没有使用mvc框架之前我们都是自己根据mvc分层思想的理解去把它物理化,比如:根据包的命名,根据类的后缀名,根据文件夹的命名去定义分层. 因为每个人对mvc的理解不 ...