双人对战游戏

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Threading;
namespace ConsoleApplication36
{
    class Program
    {

             struct Player
        {
            public string name;
            public int blood;
            public int attack;
            public int defence;
            public int shanbi;
            public ArrayList jineng ;
            public ArrayList shanghai;
        }

        static void Main(string[] args)
        {

            #region 定义技能库
            string [] jn = new string[10]{
                "横扫千军",
                "叽叽歪歪",
                "龙腾",
                "降龙十八掌",
                "大鹏展翅",
                "一阳指",
                "六脉神剑",
                "死亡一指",
                "恩赐解脱",
                "破釜沉舟",
            };
            int [] sh = new int[10]{
                500,
                300,
                350,
                500,
                360,
                400,
                480,
                490,
                500,
                450
            };

            #endregion

            Console.WriteLine("请输入第一个玩家的姓名:");
            string name1 = Console.ReadLine();

            Console.WriteLine("请输入第二个玩家的姓名:");
            string name2 = Console.ReadLine();

            #region 造玩家,赋初始值

            Player p1 = new Player();
            int seed1=0;
            if (name1.Length == 2)
            {
                seed1 = (int)Convert.ToChar(name1.Substring(0, 1)) + (int)Convert.ToChar(name1.Substring(1, 1));
            }
            else
            {
                seed1 = (int)Convert.ToChar(name1.Substring(0, 1)) + (int)Convert.ToChar(name1.Substring(1, 1)) + (int)Convert.ToChar(name1.Substring(2, 1));
            }
            Random r1 = new Random(seed1);
            p1.name = name1;
            p1.blood = 3000+r1.Next(1500);
            p1.attack = 200 + r1.Next(100);
            p1.defence = 80 + r1.Next(50);
            p1.shanbi = 2+r1.Next(2);
            p1.jineng = new ArrayList();
            p1.shanghai = new ArrayList();
            Random rj = new Random();
            for(int i=0;i<3;i++)
            {
                int jnh = rj.Next(10);
                string jnm = jn[jnh];
                if (!p1.jineng.Contains(jnm))
                {
                    p1.jineng.Add(jnm);
                    p1.shanghai.Add(sh[jnh]);
                }
                else
                {
                    i--;
                }
            }

            Player p2 = new Player();
            int seed2 = 0;
            if (name2.Length == 2)
            {
                seed2 = (int)Convert.ToChar(name2.Substring(0, 1)) + (int)Convert.ToChar(name2.Substring(1, 1));
            }
            else
            {
                seed2 = (int)Convert.ToChar(name2.Substring(0, 1)) + (int)Convert.ToChar(name2.Substring(1, 1)) + (int)Convert.ToChar(name2.Substring(2, 1));
            }
            Random r2 = new Random(seed2);
            p2.name = name2;
            p2.blood = 3000 + r2.Next(1500);
            p2.attack = 200 + r2.Next(100);
            p2.defence = 80 + r2.Next(50);
            p2.shanbi = 2 + r2.Next(2);
            p2.jineng = new ArrayList();
            p2.shanghai = new ArrayList();

            for (int i = 0; i < 3; i++)
            {
                int jnh = rj.Next(10);
                string jnm = jn[jnh];
                if (!p2.jineng.Contains(jnm))
                {
                    p2.jineng.Add(jnm);
                    p2.shanghai.Add(sh[jnh]);
                }
                else
                {
                    i--;
                }
            }

            #endregion

            #region 显示玩家基础信息
            Console.WriteLine("玩家1:姓名:{0},血量{1},攻击力{2},防御{3},闪避{4},所会技能1:{5},所会技能2:{6},所会技能3:{7}",p1.name,p1.blood,p1.attack,p1.defence,p1.shanbi,p1.jineng[0],p1.jineng[1],p1.jineng[2]);
            Console.WriteLine("玩家2:姓名:{0},血量{1},攻击力{2},防御{3},闪避{4},所会技能1:{5},所会技能2:{6},所会技能3:{7}", p2.name, p2.blood, p2.attack, p2.defence, p2.shanbi, p2.jineng[0], p2.jineng[1], p2.jineng[2]);
            #endregion

            Console.WriteLine("--------------------------------------------");

            Console.WriteLine("请按空格键开始对战");
            ConsoleKeyInfo key = Console.ReadKey();
            Console.Clear();
            if (key.Key.ToString().ToLower() == "spacebar")
            {
                #region 对战

                while (true)
                {
                    //判断退出条件
                    if (p1.blood == 0 && p2.blood == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("同归于尽了!");
                        break;
                    }
                    else if (p1.blood == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.WriteLine(p2.name + "将" + p1.name + "KO了。。。");
                        break;
                    }
                    else if (p2.blood == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.WriteLine(p1.name + "将" + p2.name + "KO了。。。");
                        break;
                    }

                    //开始打
                    #region p1打p2
                    //p1对p2进行殴打
                    Random rdz = new Random();
                    int dz1 = rdz.Next(10);
                    if (dz1 > 7) //使用大招
                    {
                        int dzs = rdz.Next(3);
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine(p1.name + "使用了" + p1.jineng[dzs] + ",对" + p2.name + "造成了" + p1.shanghai[dzs] + "伤害!");
                        p2.blood = p2.blood - Convert.ToInt32(p1.shanghai[dzs]);
                        if (p2.blood <= 0)
                        {
                            p2.blood = 0;
                        }
                    }
                    else //普通攻击
                    {
                        int ptgjsb = rdz.Next(10);
                        if (ptgjsb < p2.shanbi) //p2闪避
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine(p2.name + "躲避了" + p1.name + "的这次攻击!");
                        }
                        else //未闪避
                        {
                            int p2sh = (p1.attack + rdz.Next(50)) - (p2.defence + rdz.Next(20));
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine(p1.name + "对" + p2.name + "进行了普通攻击,造成了" + p2sh + "伤害!");
                            p2.blood = p2.blood - p2sh;
                            if (p2.blood <= 0)
                            {
                                p2.blood = 0;
                            }
                        }

                    }
                    #endregion
                    #region P2打P1
                    //p1对p2进行殴打
                    int dz2 = rdz.Next(10);
                    if (dz2 > 7) //使用大招
                    {
                        int dzs = rdz.Next(3);
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine(p2.name + "使用了" + p2.jineng[dzs] + ",对" + p1.name + "造成了" + p2.shanghai[dzs] + "伤害!");
                        p1.blood = p1.blood - Convert.ToInt32(p2.shanghai[dzs]);
                        if (p1.blood <= 0)
                        {
                            p1.blood = 0;
                        }
                    }
                    else //普通攻击
                    {
                        int ptgjsb = rdz.Next(10);
                        if (ptgjsb < p1.shanbi) //p2闪避
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine(p1.name + "躲避了" + p2.name + "的这次攻击!");
                        }
                        else //未闪避
                        {
                            int p1sh = (p2.attack + rdz.Next(50)) - (p1.defence + rdz.Next(20));
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine(p2.name + "对" + p1.name + "进行了普通攻击,造成了" + p1sh + "伤害!");
                            p1.blood = p1.blood - p1sh;
                            if (p1.blood <= 0)
                            {
                                p1.blood = 0;
                            }
                        }

                    }
                    #endregion

                    Console.ForegroundColor = ConsoleColor.DarkYellow;
                    Console.WriteLine(p1.name + "的剩余血量为:" + p1.blood + ",  " + p2.name + "的剩余血量为:" + p2.blood);

                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("-----------------------------------------");
                    Console.WriteLine();
                    Thread.Sleep(2000);

                }

                #endregion

            }
        }
    }
}
时间: 2024-10-28 01:55:13

双人对战游戏的相关文章

[游戏学习22] MFC 井字棋 双人对战

>_<:太多啦,感觉用英语说的太慢啦,没想到一年做的东西竟然这么多.....接下来要加速啦! >_<:注意这里必须用MFC和前面的Win32不一样啦! >_<:这也是第一次出现MFC游戏,其框架和逻辑的写法和Win32有很大的区别,建议先看一下MFC的基础再理解代码: >_<:TicTac.h 1 #define EX 1 //该点左鼠标 2 #define OH 2 //该点右鼠标 3 4 class CMyApp : public CWinApp 5 {

双人对战的球类游戏ios源代码项目

双人对战的球类游戏源代码,这个是一款双人对战的ios球类游戏源代码.游戏的源代码也比較具体的,我们在屏幕上下看到各有一个球门.内有一球,两边通过控制轮盘使球进入对方的球门的.事实上玩法也非常easy的.我们知道体育类的游戏眼下,还是非常少的,大家可以參考一下这个游戏的方案,希望可以推出更强大的游戏. 源代码下载: http://code.662p.com/view/6261.html <ignore_js_op> 具体说明:http://ios.662p.com/thread-1426-1-1

双人对战的球类游戏IOS源码

双人对战的球类游戏源码,这个是一款双人对战的ios球类游戏源码,游戏的源码也比较详细的,我们在屏幕上下看到各有一个球门,内有一球,两边通过控制轮盘使球进入对方的球门的,其实玩法也很简单的,我们知道体育类的游戏目前,还是很少的,大家可以参考一下这个游戏的方案,希望能够推出更强大的游戏. <ignore_js_op> <ignore_js_op> 详细说明:http://ios.662p.com/thread-1426-1-1.html

双人对战的球类游戏ios源码项目

双人对战的球类游戏源码,这个是一款双人对战的ios球类游戏源码,游戏的源码也比较详细的,我们在屏幕上下看到各有一个球门,内有一球,两边通过控制***使球进入对方的球门的,其实玩法也很简单的,我们知道体育类的游戏目前,还是很少的,大家可以参考一下这个游戏的方案,希望能够推出更强大的游戏. 源码下载: http://code.662p.com/view/6261.html <ignore_js_op> 详细说明:http://ios.662p.com/thread-1426-1-1.html

模拟德州扑克对战游戏

================================================================ 注意:本文参考"巧妙的Python数据结构玩法|实战德州扑克"的相关内容,并在此基础之上完成模拟扑克对战游戏. 原文网址:http://mp.weixin.qq.com/s/JQ0zJGf7Tz49Xn78x7Z40g ================================================================ 我们写了两

对战游戏

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(

封装练习 对战游戏

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 对战游戏 { class Program { static void Main(string[] args) { Random r = new Random(); //战士,名字,生命值,攻击力,招式 Soldier s1 = new Soldier(); Console.Write("请输入第一个战士的姓

结构体、枚举类型及其练习题,最后的对战游戏(基础版)

结构体:在内存中临时存储数据的方式1.变量.常量2.数组,可以存储固定长度统一类型的数据3.集合4.结构体 学生信息:姓名,性别,年龄,系别 结构体含义:就是将生活中的一些个体,封装成一个特殊的类型 结构体是:用户自定义数据类型 创建:创建的位置:main函数之外struct Student{ public int Code; public string Name; public string Sex; public int Old; public DateTime Birthday;} 定义:

第十二天学习内容 综合应用 推箱子和对战游戏

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace day12{    class Program    {        static void Main(string[] args)        { //推箱子游戏            int x = 1, y = 1, i = 0;