博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作数据库(对战小游戏)
阅读量:5856 次
发布时间:2019-06-19

本文共 19880 字,大约阅读时间需要 66 分钟。

创建数据库

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 List
Select() 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                 List
List = 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 }

 

转载于:https://www.cnblogs.com/bloodPhoenix/p/5787659.html

你可能感兴趣的文章
论网站内容建设策略
查看>>
10月18日云栖精选夜读:解读OpenMessaging开源项目,阿里巴巴发起首个分布式消息领域的国际标准...
查看>>
如何把SVG小图片转换为 html字体图表
查看>>
MongDB的安装和基本操作 二(增删改查)
查看>>
RvmTranslator 3.1 is released
查看>>
WCF的三个名称/命名空间,你是否傻傻分不清楚?
查看>>
解析深度学习的未来十大趋势
查看>>
中桥国际:如何应对客户端计算趋势
查看>>
云栖长卷:一张图看懂云栖七年
查看>>
飞利浦的选择:传统IT系统迁移到云平台
查看>>
Ubuntu支持LinuxONE大型机:为云而生的强强新组合
查看>>
英特尔至强E7 v4上市,剑指Power
查看>>
IT部门不应该推迟的10个项目
查看>>
使用SQL Server 助力解决全行业数字化能力
查看>>
理解Android虚拟机体系结构
查看>>
越想越恐怖:从美国互联网瘫痪说起
查看>>
5个常见的展示不同类型数据的错误形式以及如何避免
查看>>
CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
查看>>
助人就是助己:IBM宣布大规模资助开源大数据项目Spark
查看>>
Faraday:协同渗透测试与安全漏洞管理平台
查看>>