操作数据库(对战小游戏)
2018-06-17 21:42:10来源:未知 阅读 ()
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 DBconnect 11 { 12 private static string connstring = "server=.;database=duizhan;user=sa;pwd=diushiDEwutong0"; 13 14 public static SqlConnection conn 15 { 16 get 17 { 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<duizhan> Select() 70 { 71 _cmd.CommandText = "select * from duizhan"; 72 _conn.Open(); 73 _dr = _cmd.ExecuteReader(); 74 75 76 //定义一个空的集合 77 List<duizhan> list = new List<duizhan>(); 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<duizhan> 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<duizhan> list = new List<duizhan>(); 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 else 163 { 164 return false; 165 } 166 } 167 168 //升级 169 public bool update(string name) 170 { 171 List<duizhan> 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 else 188 { 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 else 208 { 209 return false; 210 } 211 212 } 213 214 //对战 215 public List<duizhan> PK(List<duizhan> list1, List<duizhan> 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 else 246 { 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 else 254 { 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 else 277 { 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 else 285 { 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<duizhan> fanhui = list2; 302 return fanhui; 303 } 304 else 305 { 306 List<duizhan> 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<duizhan> List = new List<duizhan>(); 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 else 124 { 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<duizhan> List = new List<duizhan>(); 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 else 155 { 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<duizhan> List1 = da.Select(name1); 168 List<duizhan> List2 = da.Select(name2); 169 170 171 List<duizhan> 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 else 181 { 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,12800 187 int[] lvexp = new int[] {0, 50,100,200,400,800,1600,3200,6400,12800}; 188 List<duizhan> 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 else 230 { 231 break; 232 } 233 } 234 235 } 236 else 237 { 238 Console.WriteLine("删除数据"); 239 } 240 241 242 243 Console.ReadLine(); 244 245 } 246 } 247 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:简单分页控件
- PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql 2019-09-23
- 使用 Shell 在多服务器上批量操作 2019-09-23
- MySQL性能优化的20条经验 2019-09-23
- 一份非常完整的MySQL规范 2019-09-17
- Laravel实现找回密码及密码重置,详细操作 2019-08-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash