创建数据库
1 create database duizhan 2 go 3 use duizhan 4 go 5 create table duizhan 6 ( 7 Code varchar(20) not null primary key, 8 Name varchar(20) not null, 9 Sex varchar(20) not null,10 Blood int,11 Attack int,12 Defence int,13 Mingzhong int,14 Shanbi int, 15 Speed int,16 Experience int,17 Lv int,18 )
DBconnect.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Data.SqlClient; 7 8 namespace 对战 9 {10 public class DBconnect11 {12 private static string connstring = "server=.;database=duizhan;user=sa;pwd=diushiDEwutong0";13 14 public static SqlConnection conn15 {16 get17 {18 return new SqlConnection(connstring);19 }20 }21 22 }23 }
duizhan.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 对战 8 { 9 public class duizhan 10 { 11 private string code; 12 13 public string Code 14 { 15 get { return code; } 16 set { code = value; } 17 } 18 19 private string name; 20 21 public string Name 22 { 23 get { return name; } 24 set { name = value; } 25 } 26 27 private string sex; 28 29 public string Sex 30 { 31 get { return sex; } 32 set { sex = value; } 33 } 34 35 private int blood; 36 37 public int Blood 38 { 39 get { return blood; } 40 set { blood = value; } 41 } 42 43 private int attack; 44 45 public int Attack 46 { 47 get { return attack; } 48 set { attack = value; } 49 } 50 51 private int defence; 52 53 public int Defence 54 { 55 get { return defence; } 56 set { defence = value; } 57 } 58 59 private int mingzhong; 60 61 public int Mingzhong 62 { 63 get { return mingzhong; } 64 set { mingzhong = value; } 65 } 66 67 private int shanbi; 68 69 public int Shanbi 70 { 71 get { return shanbi; } 72 set { shanbi = value; } 73 } 74 75 private int speed; 76 77 public int Speed 78 { 79 get { return speed; } 80 set { speed = value; } 81 } 82 83 private int experience; 84 85 public int Experience 86 { 87 get { return experience; } 88 set { experience = value; } 89 } 90 91 private int lv; 92 93 public int Lv 94 { 95 get { return lv; } 96 set { lv = value; } 97 } 98 99 }100 }
duizhanDA.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Data.SqlClient; 7 8 namespace 对战 9 { 10 public class duizhanDA 11 { 12 private SqlConnection _conn; 13 private SqlCommand _cmd; 14 private SqlDataReader _dr; 15 16 //用构造函数来初始化连接对象,命令对象 17 public duizhanDA() 18 { 19 _conn = DBconnect.conn; 20 _cmd = _conn.CreateCommand(); 21 } 22 23 //添加数据 24 25 public bool Add(string code, string name, string sex) 26 { 27 int seed = (int)Convert.ToChar(name.Substring(0, 1)) + (int)Convert.ToChar(name.Substring(1, 1)); 28 Random rand = new Random(seed); 29 //Random rand = new Random(); 30 31 int blood = 3000 + rand.Next(3000); 32 int attack = 600 + rand.Next(400); 33 int defence = 10 + rand.Next(90); 34 int minzhong = rand.Next(50) + 50; 35 int shanbi = rand.Next(50) + 10; 36 int speed = 100 + rand.Next(50); 37 int exprience = 0; 38 int lv = 1; 39 40 _cmd.CommandText = "insert into duizhan values(@code,@name,@sex,@blood,@attack,@defence,@minzhong,@shanbi,@speed,@experience,@lv)"; 41 _cmd.Parameters.Clear(); 42 _cmd.Parameters.AddWithValue("@code", code); 43 _cmd.Parameters.AddWithValue("@name", name); 44 _cmd.Parameters.AddWithValue("@sex", sex); 45 _cmd.Parameters.AddWithValue("@blood", blood); 46 _cmd.Parameters.AddWithValue("@attack", attack); 47 _cmd.Parameters.AddWithValue("@defence", defence); 48 _cmd.Parameters.AddWithValue("@minzhong", minzhong); 49 _cmd.Parameters.AddWithValue("@shanbi", shanbi); 50 _cmd.Parameters.AddWithValue("@speed", speed); 51 _cmd.Parameters.AddWithValue("@experience", exprience); 52 _cmd.Parameters.AddWithValue("@lv", lv); 53 54 _conn.Open(); 55 int n = _cmd.ExecuteNonQuery(); 56 _conn.Close(); 57 58 if (n > 0) 59 { 60 return true; 61 } 62 else 63 { 64 return false; 65 } 66 } 67 68 //查询所有数据 69 public ListSelect() 70 { 71 _cmd.CommandText = "select * from duizhan"; 72 _conn.Open(); 73 _dr = _cmd.ExecuteReader(); 74 75 76 //定义一个空的集合 77 List list = new List (); 78 79 if (_dr.HasRows) 80 { 81 while (_dr.Read()) 82 { 83 //造一个duizhan对象 84 duizhan data = new duizhan(); 85 86 data.Code = _dr[0].ToString(); 87 data.Name = _dr[1].ToString(); 88 data.Sex = _dr[2].ToString(); 89 data.Blood = (int)_dr[3]; 90 data.Attack = (int)_dr[4]; 91 data.Defence = (int)_dr[5]; 92 data.Mingzhong = (int)_dr[6]; 93 data.Shanbi = (int)_dr[7]; 94 data.Speed = (int)_dr[8]; 95 data.Experience = (int)_dr[9]; 96 data.Lv = (int)_dr[10]; 97 98 //扔到集合里面 99 list.Add(data);100 }101 }102 _conn.Close();103 return list;104 }105 106 107 108 //根据姓名查询109 public List Select(string name)110 {111 _conn.Open();112 _cmd.CommandText = "select * from duizhan where name=@name";113 _cmd.Parameters.Clear();114 _cmd.Parameters.AddWithValue("@name", name);115 116 _dr = _cmd.ExecuteReader();117 118 119 List list = new List ();120 121 if (_dr.HasRows)122 {123 while (_dr.Read())124 {125 //造一个duizhan对象126 duizhan data = new duizhan();127 128 data.Code = _dr[0].ToString();129 data.Name = _dr[1].ToString();130 data.Sex = _dr[2].ToString();131 data.Blood = (int)_dr[3];132 data.Attack = (int)_dr[4];133 data.Defence = (int)_dr[5];134 data.Mingzhong = (int)_dr[6];135 data.Shanbi = (int)_dr[7];136 data.Speed = (int)_dr[8];137 data.Experience = (int)_dr[9];138 data.Lv = (int)_dr[10];139 140 //扔到集合里面141 list.Add(data);142 }143 }144 _conn.Close();145 return list;146 }147 148 //更改经验数据149 public bool update(int experience, string name)150 {151 _cmd.CommandText = "update duizhan set experience ='" + experience + "' where name=@name";152 _cmd.Parameters.Clear();153 _cmd.Parameters.AddWithValue("@name", name);154 _conn.Open();155 int n = _cmd.ExecuteNonQuery();156 _conn.Close();157 158 if (n > 0)159 {160 return true;161 }162 else163 {164 return false;165 }166 }167 168 //升级169 public bool update(string name)170 {171 List list = Select(name);172 173 list[0].Blood += 300;174 list[0].Attack += 50;175 list[0].Defence += 10;176 list[0].Lv += 1;177 _cmd.CommandText = "update duizhan set Blood=" + list[0].Blood + ",Attack=" + list[0].Attack + ",Defence=" + list[0].Defence + ",lv=" + list[0].Lv+ " where Name=@name";178 _cmd.Parameters.Clear();179 _cmd.Parameters.AddWithValue("@name", name);180 _conn.Open();181 int n = _cmd.ExecuteNonQuery();182 _conn.Close();183 if (n > 0)184 {185 return true;186 }187 else188 {189 return false;190 }191 }192 193 //删除程序194 public bool delete(string name)195 {196 _cmd.CommandText = "delete from duizhan where name=@name";197 _cmd.Parameters.Clear();198 _cmd.Parameters.AddWithValue("@name", name);199 _conn.Open();200 int n = _cmd.ExecuteNonQuery();201 _conn.Close();202 203 if (n > 0)204 {205 return true;206 }207 else208 {209 return false;210 }211 212 }213 214 //对战215 public List PK(List list1, List list2)216 {217 218 int s1 = list1[0].Speed;219 int s2 = list2[0].Speed;220 while (list1[0].Blood > 0 && list2[0].Blood > 0)221 {222 Random mz = new Random();223 while (s1 != 0 && s2 != 0)224 {225 s1--;226 s2--;227 228 }229 Console.ForegroundColor = ConsoleColor.Blue;230 Console.WriteLine(list1[0].Name + "速度值:" + s1 +"---"+ list2[0].Name + "速度值:" + s2);231 Console.ForegroundColor = ConsoleColor.Black;232 if (s1 == 0)233 {234 Console.WriteLine(list1[0].Name + "攻击");235 if (mz.Next(101) < list1[0].Mingzhong)236 {237 Random sb = new Random();238 if (sb.Next(101) < list2[0].Shanbi)239 {240 Console.ForegroundColor = ConsoleColor.Green;241 Console.WriteLine(list1[0].Name + "未命中");242 Console.ForegroundColor = ConsoleColor.Black;243 244 }245 else246 {247 Console.ForegroundColor = ConsoleColor.Red;248 list2[0].Blood = list2[0].Blood - list1[0].Attack * (1-(list2[0].Defence / 300));249 Console.WriteLine(list1[0].Name + "输出" + (list1[0].Attack * (1 - list2[0].Defence / 300)) + "伤害");250 Console.ForegroundColor = ConsoleColor.Black;251 }252 }253 else254 {255 Console.ForegroundColor = ConsoleColor.Green;256 Console.WriteLine(list1[0].Name + "未命中");257 Console.ForegroundColor = ConsoleColor.Black;258 }259 Console.ForegroundColor = ConsoleColor.Red;260 Console.WriteLine(list2[0].Name + "血量:" + (list2[0].Blood < 0 ? 0 : list2[0].Blood) + "———" + list1[0].Name + "血量:" + (list1[0].Blood < 0 ? 0 : list1[0].Blood));261 Console.ForegroundColor = ConsoleColor.Black;262 s1 = list1[0].Speed;263 }264 else if (s2 == 0)265 {266 Console.WriteLine(list2[0].Name + "攻击");267 if (mz.Next(101) < list2[0].Mingzhong)268 {269 Random sb = new Random();270 if (sb.Next(101) < list1[0].Shanbi)271 {272 Console.ForegroundColor = ConsoleColor.Green;273 Console.WriteLine(list2[0].Name + "未命中");274 Console.ForegroundColor = ConsoleColor.Black;275 }276 else277 {278 Console.ForegroundColor = ConsoleColor.Red;279 list1[0].Blood = list1[0].Blood - (list2[0].Attack * (1-(list1[0].Defence / 300)));280 Console.WriteLine(list2[0].Name + "输出" + (list2[0].Attack * (1 - (list1[0].Defence / 300))) + "伤害");281 Console.ForegroundColor = ConsoleColor.Black;282 }283 }284 else285 {286 Console.ForegroundColor = ConsoleColor.Green;287 Console.WriteLine(list2[0].Name + "未命中");288 Console.ForegroundColor = ConsoleColor.Black;289 }290 Console.ForegroundColor = ConsoleColor.Red;291 Console.WriteLine(list2[0].Name + "血量:" + (list2[0].Blood < 0 ? 0 : list2[0].Blood) + "———" + list1[0].Name + "血量:" + (list1[0].Blood < 0 ? 0 : list1[0].Blood));292 Console.ForegroundColor = ConsoleColor.Black;293 s2 = list2[0].Speed;294 }295 System.Threading.Thread.Sleep(1000);296 Console.WriteLine();297 298 }299 if (list1[0].Blood < 0)300 {301 List fanhui = list2;302 return fanhui;303 }304 else305 {306 List fanhui = list1;307 return fanhui;308 }309 310 311 312 313 314 315 316 }317 318 319 320 321 }322 323 }
主函数
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Data.SqlClient; 7 8 namespace 对战 9 { 10 class Program 11 { 12 13 14 static void Main(string[] args) 15 { 16 Console.BackgroundColor = ConsoleColor.White; 17 Console.ForegroundColor = ConsoleColor.Black; 18 string[] AR = new string[] { "code", "姓名", "性别", "血量", "攻击", "防御", "命中", "闪避", "速度", "经验", "等级" }; 19 20 Console.WriteLine("添加还是查询?添加输入1,查询输入2,战斗输入3"); 21 string s = Console.ReadLine(); 22 duizhanDA da = new duizhanDA(); 23 string code = ""; 24 string name = ""; 25 if (s == "1") 26 { 27 //添加数据 28 while (true) 29 { 30 Console.WriteLine("添加数据程序"); 31 Console.WriteLine("请输入您要添加的成员代号"); 32 code = Console.ReadLine(); 33 Console.WriteLine("请输入您要添加的成员姓名"); 34 name = Console.ReadLine(); 35 Console.WriteLine("请输入您要添加的成员性别"); 36 string sex = Console.ReadLine(); 37 if (da.Add(code, name, sex)) 38 { 39 Console.WriteLine("添加成功"); 40 } 41 else 42 { 43 Console.WriteLine("添加失败"); 44 } 45 Console.WriteLine("是否继续添加,继续请输入1,跳出输入任意键"); 46 string a = Console.ReadLine(); 47 if (a == "1") 48 { 49 Console.WriteLine("继续输入"); 50 } 51 else 52 { 53 Console.WriteLine("程序跳出"); 54 break; 55 } 56 } 57 } 58 else if (s == "2") 59 { 60 Console.WriteLine("输出属性"); 61 62 Console.WriteLine("可查询的人员名单:"); 63 ListList = new List (); 64 while (true) 65 { 66 List = da.Select(); 67 if (List.Count() != 0) 68 { 69 70 int i = 0; 71 72 while (i < List.Count()) 73 { 74 Console.Write(List[i].Name + "\t"); 75 i++; 76 } 77 78 Console.Write("\n"); 79 break; 80 } 81 else 82 { 83 Console.WriteLine("输入错误,请重新输入"); 84 code = Console.ReadLine(); 85 } 86 87 } 88 89 Console.WriteLine("请输入要查询的姓名"); 90 name = Console.ReadLine(); 91 92 93 while (true) 94 { 95 List = da.Select(name); 96 if (List.Count() != 0) 97 { 98 99 int i = 0;100 while (i < 11)101 {102 Console.Write(AR[i] + "\t");103 i++;104 }105 Console.Write("\n");106 107 Console.Write(List[0].Code + "\t");108 Console.Write(List[0].Name + "\t");109 //Console.Write(((List[0].Sex == "True") ? "男" : "女") + "\t"); 110 Console.Write(List[0].Sex + "\t");111 Console.Write(List[0].Blood + "\t");112 Console.Write(List[0].Attack + "\t");113 Console.Write(List[0].Defence + "\t");114 Console.Write(List[0].Mingzhong + "\t");115 Console.Write(List[0].Shanbi + "\t");116 Console.Write(List[0].Speed + "\t");117 Console.Write(List[0].Experience + "\t");118 Console.Write(List[0].Lv + "\t");119 120 Console.Write("\n");121 break;122 }123 else124 {125 Console.WriteLine("输入错误,请重新输入");126 code = Console.ReadLine();127 }128 129 }130 }131 else if (s == "3")132 {133 Console.WriteLine("战斗序列");134 Console.WriteLine("可以选择的对战人员为:");135 List List = new List ();136 while (true)137 {138 List = da.Select();139 if (List.Count() != 0)140 {141 142 int i = 0;143 144 while (i < List.Count())145 {146 Console.Write(List[i].Name + "\t");147 Console.Write("等级"+List[i].Lv + "\t");148 i++;149 }150 151 Console.Write("\n");152 break;153 }154 else155 {156 Console.WriteLine("输入错误,请重新输入");157 code = Console.ReadLine();158 }159 160 }161 162 Console.WriteLine("请输入参与战斗的人员");163 Console.WriteLine("请输入第一位参加战斗的人员姓名");164 string name1 = Console.ReadLine();165 Console.WriteLine("请输入第二位参加战斗的人员姓名");166 string name2 = Console.ReadLine();167 List List1 = da.Select(name1);168 List List2 = da.Select(name2);169 170 171 List jieguo = da.PK(List1, List2);172 Console.WriteLine(jieguo[0].Name + "胜利");173 int experience = 0;174 if (jieguo[0].Name == List1[0].Name)175 {176 experience = 50 * List2[0].Lv + List1[0].Experience;177 da.update(experience, List1[0].Name);178 Console.WriteLine(jieguo[0].Name+"获得经验"+experience);179 }180 else181 {182 experience = 50 * List1[0].Lv + List2[0].Experience;183 da.update(experience, List2[0].Name);184 Console.WriteLine(jieguo[0].Name + "获得经验" + experience);185 }186 //升级需要经验50,100,200,400,800,1600,3200,6400,12800187 int[] lvexp = new int[] { 0, 50,100,200,400,800,1600,3200,6400,12800};188 List uplv = da.Select(jieguo[0].Name);189 int lv = uplv[0].Lv;190 while (true)191 {192 if (lvexp[lv] <= uplv[0].Experience)193 {194 Console.WriteLine("升级了");195 da.update(uplv[0].Name);196 Console.WriteLine("属性改变为:");197 while (true)198 {199 List = da.Select(uplv[0].Name);200 if (List.Count() != 0)201 {202 203 int i = 0;204 while (i < 11)205 {206 Console.Write(AR[i] + "\t");207 i++;208 }209 Console.Write("\n");210 Console.Write(List[0].Code + "\t");211 Console.Write(List[0].Name + "\t");212 //Console.Write(((List[0].Sex == "True") ? "男" : "女") + "\t"); 213 Console.Write(List[0].Sex + "\t");214 Console.Write(List[0].Blood + "\t");215 Console.Write(List[0].Attack + "\t");216 Console.Write(List[0].Defence + "\t");217 Console.Write(List[0].Mingzhong + "\t");218 Console.Write(List[0].Shanbi + "\t");219 Console.Write(List[0].Speed + "\t");220 Console.Write(List[0].Experience + "\t");221 Console.Write(List[0].Lv + "\t");222 Console.Write("\n");223 break;224 } 225 226 }227 lv++;228 }229 else230 {231 break;232 }233 }234 235 }236 else237 {238 Console.WriteLine("删除数据");239 }240 241 242 243 Console.ReadLine();244 245 }246 }247 }