zoukankan      html  css  js  c++  java
  • 对战的小游戏

    创建数据库:

    create database duizhan go use duizhan go create table duizhan ( Code varchar(20) not null primary key, Name varchar(20) not null, Sex varchar(20) not null, Blood int, Attack int, Defence int, Mingzhong int, Shanbi int, Speed int, Experience int, Lv int, )

      DBconnect.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    
    namespace 对战
    {
        public class DBconnect
        {
            private static string connstring = "server=.;database=duizhan;user=sa;pwd=diushiDEwutong0";
    
            public static SqlConnection conn
            {
                get
                {
                    return new SqlConnection(connstring);
                }
            }
    
        }
    }
    

      

    duizhan.cs

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace 对战
    {
    public class duizhan
    {
    private string code;

    public string Code
    {
    get { return code; }
    set { code = value; }
    }

    private string name;

    public string Name
    {
    get { return name; }
    set { name = value; }
    }

    private string sex;

    public string Sex
    {
    get { return sex; }
    set { sex = 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 int defence;

    public int Defence
    {
    get { return defence; }
    set { defence = value; }
    }

    private int mingzhong;

    public int Mingzhong
    {
    get { return mingzhong; }
    set { mingzhong = value; }
    }

    private int shanbi;

    public int Shanbi
    {
    get { return shanbi; }
    set { shanbi = value; }
    }

    private int speed;

    public int Speed
    {
    get { return speed; }
    set { speed = value; }
    }

    private int experience;

    public int Experience
    {
    get { return experience; }
    set { experience = value; }
    }

    private int lv;

    public int Lv
    {
    get { return lv; }
    set { lv = value; }
    }

    }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    
    namespace 对战
    {
        public class duizhanDA
        {
            private SqlConnection _conn;
            private SqlCommand _cmd;
            private SqlDataReader _dr;
    
            //用构造函数来初始化连接对象,命令对象
            public duizhanDA()
            {
                _conn = DBconnect.conn;
                _cmd = _conn.CreateCommand();
            }
    
            //添加数据
    
            public bool Add(string code, string name, string sex)
            {
                int seed = (int)Convert.ToChar(name.Substring(0, 1)) + (int)Convert.ToChar(name.Substring(1, 1));
                Random rand = new Random(seed);
                //Random rand = new Random();
    
                int blood = 3000 + rand.Next(3000);
                int attack = 600 + rand.Next(400);
                int defence = 10 + rand.Next(90);
                int minzhong = rand.Next(50) + 50;
                int shanbi = rand.Next(50) + 10;
                int speed = 100 + rand.Next(50);
                int exprience = 0;
                int lv = 1;
    
                _cmd.CommandText = "insert into duizhan values(@code,@name,@sex,@blood,@attack,@defence,@minzhong,@shanbi,@speed,@experience,@lv)";
                _cmd.Parameters.Clear();
                _cmd.Parameters.AddWithValue("@code", code);
                _cmd.Parameters.AddWithValue("@name", name);
                _cmd.Parameters.AddWithValue("@sex", sex);
                _cmd.Parameters.AddWithValue("@blood", blood);
                _cmd.Parameters.AddWithValue("@attack", attack);
                _cmd.Parameters.AddWithValue("@defence", defence);
                _cmd.Parameters.AddWithValue("@minzhong", minzhong);
                _cmd.Parameters.AddWithValue("@shanbi", shanbi);
                _cmd.Parameters.AddWithValue("@speed", speed);
                _cmd.Parameters.AddWithValue("@experience", exprience);
                _cmd.Parameters.AddWithValue("@lv", lv);
    
                _conn.Open();
                int n = _cmd.ExecuteNonQuery();
                _conn.Close();
    
                if (n > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            //查询所有数据
            public List<duizhan> Select()
            {
                _cmd.CommandText = "select * from duizhan";
                _conn.Open();
                _dr = _cmd.ExecuteReader();
    
    
                //定义一个空的集合
                List<duizhan> list = new List<duizhan>();
    
                if (_dr.HasRows)
                {
                    while (_dr.Read())
                    {
                        //造一个duizhan对象
                        duizhan data = new duizhan();
    
                        data.Code = _dr[0].ToString();
                        data.Name = _dr[1].ToString();
                        data.Sex = _dr[2].ToString();
                        data.Blood = (int)_dr[3];
                        data.Attack = (int)_dr[4];
                        data.Defence = (int)_dr[5];
                        data.Mingzhong = (int)_dr[6];
                        data.Shanbi = (int)_dr[7];
                        data.Speed = (int)_dr[8];
                        data.Experience = (int)_dr[9];
                        data.Lv = (int)_dr[10];
    
                        //扔到集合里面
                        list.Add(data);
                    }
                }
                _conn.Close();
                return list;
            }
    
    
    
            //根据姓名查询
            public List<duizhan> Select(string name)
            {
                _conn.Open();
                _cmd.CommandText = "select * from duizhan where name=@name";
                _cmd.Parameters.Clear();
                _cmd.Parameters.AddWithValue("@name", name);
    
                _dr = _cmd.ExecuteReader();
    
    
                List<duizhan> list = new List<duizhan>();
    
                if (_dr.HasRows)
                {
                    while (_dr.Read())
                    {
                        //造一个duizhan对象
                        duizhan data = new duizhan();
    
                        data.Code = _dr[0].ToString();
                        data.Name = _dr[1].ToString();
                        data.Sex = _dr[2].ToString();
                        data.Blood = (int)_dr[3];
                        data.Attack = (int)_dr[4];
                        data.Defence = (int)_dr[5];
                        data.Mingzhong = (int)_dr[6];
                        data.Shanbi = (int)_dr[7];
                        data.Speed = (int)_dr[8];
                        data.Experience = (int)_dr[9];
                        data.Lv = (int)_dr[10];
    
                        //扔到集合里面
                        list.Add(data);
                    }
                }
                _conn.Close();
                return list;
            }
    
            //更改经验数据
            public bool update(int experience, string name)
            {
                _cmd.CommandText = "update duizhan set experience ='" + experience + "' where name=@name";
                _cmd.Parameters.Clear();
                _cmd.Parameters.AddWithValue("@name", name);
                _conn.Open();
                int n = _cmd.ExecuteNonQuery();
                _conn.Close();
    
                if (n > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            //升级
            public bool update(string name)
            {
                List<duizhan> list = Select(name);
                
                list[0].Blood += 300;
                list[0].Attack += 50;
                list[0].Defence += 10;
                list[0].Lv += 1;
                _cmd.CommandText = "update duizhan set  Blood=" + list[0].Blood + ",Attack=" + list[0].Attack + ",Defence=" + list[0].Defence  + ",lv=" + list[0].Lv+ " where Name=@name";
                _cmd.Parameters.Clear();
                _cmd.Parameters.AddWithValue("@name", name);
                _conn.Open();
                int n = _cmd.ExecuteNonQuery();
                _conn.Close();
                if (n > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            //删除程序
            public bool delete(string name)
            {
                _cmd.CommandText = "delete  from duizhan where name=@name";
                _cmd.Parameters.Clear();
                _cmd.Parameters.AddWithValue("@name", name);
                _conn.Open();
                int n = _cmd.ExecuteNonQuery();
                _conn.Close();
    
                if (n > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
    
            }
    
            //对战
            public List<duizhan> PK(List<duizhan> list1, List<duizhan> list2)
            {
    
                int s1 = list1[0].Speed;
                int s2 = list2[0].Speed;
                while (list1[0].Blood > 0 && list2[0].Blood > 0)
                {
                    Random mz = new Random();
                    while (s1 != 0 && s2 != 0)
                    {
                        s1--;
                        s2--;
                       
                    }
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine(list1[0].Name + "速度值:" + s1 +"---"+ list2[0].Name + "速度值:" + s2);
                    Console.ForegroundColor = ConsoleColor.Black;
                    if (s1 == 0)
                    {
                        Console.WriteLine(list1[0].Name + "攻击");
                        if (mz.Next(101) < list1[0].Mingzhong)
                        {
                            Random sb = new Random();
                            if (sb.Next(101) < list2[0].Shanbi)
                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                                Console.WriteLine(list1[0].Name + "未命中");
                                Console.ForegroundColor = ConsoleColor.Black;
    
                            }
                            else
                            {
                                Console.ForegroundColor = ConsoleColor.Red;
                                list2[0].Blood = list2[0].Blood - list1[0].Attack * (1-(list2[0].Defence / 300));
                                Console.WriteLine(list1[0].Name + "输出" + (list1[0].Attack * (1 - list2[0].Defence / 300)) + "伤害");
                                Console.ForegroundColor = ConsoleColor.Black;
                            }
                        }
                        else
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine(list1[0].Name + "未命中");
                            Console.ForegroundColor = ConsoleColor.Black;
                        }
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine(list2[0].Name + "血量:" + (list2[0].Blood < 0 ? 0 : list2[0].Blood) + "———" + list1[0].Name + "血量:" + (list1[0].Blood < 0 ? 0 : list1[0].Blood));
                        Console.ForegroundColor = ConsoleColor.Black;
                        s1 = list1[0].Speed;
                    }
                    else if (s2 == 0)
                    {
                        Console.WriteLine(list2[0].Name + "攻击");
                        if (mz.Next(101) < list2[0].Mingzhong)
                        {
                            Random sb = new Random();
                            if (sb.Next(101) < list1[0].Shanbi)
                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                                Console.WriteLine(list2[0].Name + "未命中");
                                Console.ForegroundColor = ConsoleColor.Black;
                            }
                            else
                            {
                                Console.ForegroundColor = ConsoleColor.Red;
                                list1[0].Blood = list1[0].Blood - (list2[0].Attack * (1-(list1[0].Defence / 300)));
                                Console.WriteLine(list2[0].Name + "输出" + (list2[0].Attack * (1 - (list1[0].Defence / 300))) + "伤害");
                                Console.ForegroundColor = ConsoleColor.Black;
                            }
                        }
                        else
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine(list2[0].Name + "未命中");
                            Console.ForegroundColor = ConsoleColor.Black;
                        }
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine(list2[0].Name + "血量:" + (list2[0].Blood < 0 ? 0 : list2[0].Blood) + "———" + list1[0].Name + "血量:" + (list1[0].Blood < 0 ? 0 : list1[0].Blood));
                        Console.ForegroundColor = ConsoleColor.Black;
                        s2 = list2[0].Speed;
                    }
                    System.Threading.Thread.Sleep(1000);
                    Console.WriteLine();
    
                }
                if (list1[0].Blood < 0)
                {
                    List<duizhan> fanhui = list2;
                    return fanhui;
                }
                else
                {
                    List<duizhan> fanhui = list1;
                    return fanhui;
                }
    
    
    
    
    
    
    
            }
    
    
    
    
        }
    
    }
    

      主函数:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;

    namespace 对战
    {
    class Program
    {

    static void Main(string[] args)
    {
    Console.BackgroundColor = ConsoleColor.White;
    Console.ForegroundColor = ConsoleColor.Black;
    string[] AR = new string[] { "code", "姓名", "性别", "血量", "攻击", "防御", "命中", "闪避", "速度", "经验", "等级" };

    Console.WriteLine("添加还是查询?添加输入1,查询输入2,战斗输入3");
    string s = Console.ReadLine();
    duizhanDA da = new duizhanDA();
    string code = "";
    string name = "";
    if (s == "1")
    {
    //添加数据
    while (true)
    {
    Console.WriteLine("添加数据程序");
    Console.WriteLine("请输入您要添加的成员代号");
    code = Console.ReadLine();
    Console.WriteLine("请输入您要添加的成员姓名");
    name = Console.ReadLine();
    Console.WriteLine("请输入您要添加的成员性别");
    string sex = Console.ReadLine();
    if (da.Add(code, name, sex))
    {
    Console.WriteLine("添加成功");
    }
    else
    {
    Console.WriteLine("添加失败");
    }
    Console.WriteLine("是否继续添加,继续请输入1,跳出输入任意键");
    string a = Console.ReadLine();
    if (a == "1")
    {
    Console.WriteLine("继续输入");
    }
    else
    {
    Console.WriteLine("程序跳出");
    break;
    }
    }
    }
    else if (s == "2")
    {
    Console.WriteLine("输出属性");

    Console.WriteLine("可查询的人员名单:");
    List<duizhan> List = new List<duizhan>();
    while (true)
    {
    List = da.Select();
    if (List.Count() != 0)
    {

    int i = 0;

    while (i < List.Count())
    {
    Console.Write(List[i].Name + " ");
    i++;
    }

    Console.Write(" ");
    break;
    }
    else
    {
    Console.WriteLine("输入错误,请重新输入");
    code = Console.ReadLine();
    }

    }

    Console.WriteLine("请输入要查询的姓名");
    name = Console.ReadLine();


    while (true)
    {
    List = da.Select(name);
    if (List.Count() != 0)
    {

    int i = 0;
    while (i < 11)
    {
    Console.Write(AR[i] + " ");
    i++;
    }
    Console.Write(" ");

    Console.Write(List[0].Code + " ");
    Console.Write(List[0].Name + " ");
    //Console.Write(((List[0].Sex == "True") ? "男" : "女") + " ");
    Console.Write(List[0].Sex + " ");
    Console.Write(List[0].Blood + " ");
    Console.Write(List[0].Attack + " ");
    Console.Write(List[0].Defence + " ");
    Console.Write(List[0].Mingzhong + " ");
    Console.Write(List[0].Shanbi + " ");
    Console.Write(List[0].Speed + " ");
    Console.Write(List[0].Experience + " ");
    Console.Write(List[0].Lv + " ");

    Console.Write(" ");
    break;
    }
    else
    {
    Console.WriteLine("输入错误,请重新输入");
    code = Console.ReadLine();
    }

    }
    }
    else if (s == "3")
    {
    Console.WriteLine("战斗序列");
    Console.WriteLine("可以选择的对战人员为:");
    List<duizhan> List = new List<duizhan>();
    while (true)
    {
    List = da.Select();
    if (List.Count() != 0)
    {

    int i = 0;

    while (i < List.Count())
    {
    Console.Write(List[i].Name + " ");
    Console.Write("等级"+List[i].Lv + " ");
    i++;
    }

    Console.Write(" ");
    break;
    }
    else
    {
    Console.WriteLine("输入错误,请重新输入");
    code = Console.ReadLine();
    }

    }

    Console.WriteLine("请输入参与战斗的人员");
    Console.WriteLine("请输入第一位参加战斗的人员姓名");
    string name1 = Console.ReadLine();
    Console.WriteLine("请输入第二位参加战斗的人员姓名");
    string name2 = Console.ReadLine();
    List<duizhan> List1 = da.Select(name1);
    List<duizhan> List2 = da.Select(name2);


    List<duizhan> jieguo = da.PK(List1, List2);
    Console.WriteLine(jieguo[0].Name + "胜利");
    int experience = 0;
    if (jieguo[0].Name == List1[0].Name)
    {
    experience = 50 * List2[0].Lv + List1[0].Experience;
    da.update(experience, List1[0].Name);
    Console.WriteLine(jieguo[0].Name+"获得经验"+experience);
    }
    else
    {
    experience = 50 * List1[0].Lv + List2[0].Experience;
    da.update(experience, List2[0].Name);
    Console.WriteLine(jieguo[0].Name + "获得经验" + experience);
    }
    //升级需要经验50,100,200,400,800,1600,3200,6400,12800
    int[] lvexp = new int[] {0, 50,100,200,400,800,1600,3200,6400,12800};
    List<duizhan> uplv = da.Select(jieguo[0].Name);
    int lv = uplv[0].Lv;
    while (true)
    {
    if (lvexp[lv] <= uplv[0].Experience)
    {
    Console.WriteLine("升级了");
    da.update(uplv[0].Name);
    Console.WriteLine("属性改变为:");
    while (true)
    {
    List = da.Select(uplv[0].Name);
    if (List.Count() != 0)
    {

    int i = 0;
    while (i < 11)
    {
    Console.Write(AR[i] + " ");
    i++;
    }
    Console.Write(" ");
    Console.Write(List[0].Code + " ");
    Console.Write(List[0].Name + " ");
    //Console.Write(((List[0].Sex == "True") ? "男" : "女") + " ");
    Console.Write(List[0].Sex + " ");
    Console.Write(List[0].Blood + " ");
    Console.Write(List[0].Attack + " ");
    Console.Write(List[0].Defence + " ");
    Console.Write(List[0].Mingzhong + " ");
    Console.Write(List[0].Shanbi + " ");
    Console.Write(List[0].Speed + " ");
    Console.Write(List[0].Experience + " ");
    Console.Write(List[0].Lv + " ");
    Console.Write(" ");
    break;
    }

    }
    lv++;
    }
    else
    {
    break;
    }
    }

    }
    else
    {
    Console.WriteLine("删除数据");
    }

    Console.ReadLine();

    }
    }
    }

  • 相关阅读:
    龙井和碧螺春的功效与作用
    064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法
    063 01 Android 零基础入门 01 Java基础语法 08 Java方法 01 无参无返回值方法
    062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用
    061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结
    060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序
    059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环
    058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值
    057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和
    056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
  • 原文地址:https://www.cnblogs.com/kun-boke/p/5880372.html
Copyright © 2011-2022 走看看