首页 > 代码库 > 对战的小游戏

对战的小游戏

创建数据库:

create database duizhangouse duizhangocreate 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 = http://www.mamicode.com/new duizhan();"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 = http://www.mamicode.com/new duizhan();"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 + "\t");
i++;
}

Console.Write("\n");
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] + "\t");
i++;
}
Console.Write("\n");

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

Console.Write("\n");
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 + "\t");
Console.Write("等级"+List[i].Lv + "\t");
i++;
}

Console.Write("\n");
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] + "\t");
i++;
}
Console.Write("\n");
Console.Write(List[0].Code + "\t");
Console.Write(List[0].Name + "\t");
//Console.Write(((List[0].Sex == "True") ? "男" : "女") + "\t");
Console.Write(List[0].Sex + "\t");
Console.Write(List[0].Blood + "\t");
Console.Write(List[0].Attack + "\t");
Console.Write(List[0].Defence + "\t");
Console.Write(List[0].Mingzhong + "\t");
Console.Write(List[0].Shanbi + "\t");
Console.Write(List[0].Speed + "\t");
Console.Write(List[0].Experience + "\t");
Console.Write(List[0].Lv + "\t");
Console.Write("\n");
break;
}

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

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

 

Console.ReadLine();

}
}
}

对战的小游戏