对战的小游戏

创建数据库:

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 [email protected]";
            _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 [email protected]";
            _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 [email protected]";
            _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 [email protected]";
            _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();

}
}
}

时间: 2024-11-06 23:30:43

对战的小游戏的相关文章

借助实时数据推送快速制作在线对战五子棋小游戏丨实战

1 项目概述 游戏开发,尤其是微信小游戏开发,是最近几年比较热门的话题. 本次「云开发」公开课,将通过实战「在线对战五子棋」,一步步带领大家,在不借助后端的情况下,利用「小程序 ? 云开发」,独立完成一款微信小游戏的开发与上线. 2 任务目标 根据项目初始框架,阅读教程的同时,逐步完成棋盘绘制.音乐播放.玩家对战.输赢判定等功能,最终实现一个可以快乐玩耍的在线对战五子棋. 在这个过程中,会了解到 Serverless 的一些概念,并且实际应用它们,比如:云数据库.云存储.云函数.增值能力.除了这

小游戏●两人对战

利用结构体编写的两人对战小游戏,代码及简要分析如下 1 public struct Fighter 2 { 3 public string name; 4 public int blood; 5 public int attack; 6 public int defense; 7 public int hit; 8 public int hide; 9 } 10 11 12 static void Main(string[] arge) 13 { 14 15 //定义一组对手 16 Fighte

介绍一款Android小游戏--交互式人机对战五子棋

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐.之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势:二是因为可以为机器增加游戏经验,使得机器越来越聪明.希望喜欢五子棋的同学能够喜欢,

[OpenGL] 小游戏 - 太空对战

写的比较粗糙的一个小游戏,算是对游戏编程流程的一个入门认识. OpenGL中,如何加载纹理,如何绘制透明纹理,如何显示文字,如何制作简单动画(画面刷新机制),如何使用键盘和鼠标回调函数,这些我们已经很熟悉了.当然,这些都是最基本的要求. 那么,如何实现游戏基本逻辑?一般而言,用oop的思想能够很好地完成这一点,我们给每类对象维护一些状态量和方法,每个对象可以通过下标索引访问到这些状态量,我们把代码分成两部分 -- 第一部分,当达到一个触发条件时,我们改变状态量的值:第二部分,根据状态量,我们绘制

结对项目之小游戏编程(斗地主)

一.题目简介    本次的项目是编写一个斗地主的小游戏,实现语言:java:主要完成了GUI设计.计时线程.算法.本次项目的主要目的是对算法的学习.算法分析在心得里面. 技术难点:1.图片的移动    2.计时线程的设定   3.对牌的分割,必须考虑到优先拆分方案,将权值低的拆分方案舍去. 4.在删除的时候遇到问题了,删除不了. 二.结对分工及过程 本次结对项目的成员有两个,张国伟:负责对GUI界面的设计,完成功能:洗牌功能,发牌功能,打牌功能的图片的位移处理,基本打牌的桌面等等. 我主要负责对

2048小游戏

需求分析:NABCD N(Need,需求) 生活在21世纪的我们已经进入电子时代,比如平板.笔记本.手机等等.而随着时代的进步,生活学习压力也在不断加大,而越来越多的人都会热衷于玩手机,当你感到无聊的时候,可以上上网,看看新闻,累了之后可以玩玩小游戏缓解一下,所以我们设计了这款2048的小游戏,既开发智力,又缓解疲劳. A(Approach,做法) 我们的小游戏是基于安卓平台的,而且对于其中的功能我们有良好的界面设计.可以和别人进行联机对战:在玩的过程中,游戏的流畅度是非常好的,我们还有种多种背

【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

? 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文

一款麻将小游戏的准备工作

一, 引言(废话) 最近想从unity3D VR 开发转行 unity 3d游戏开发, 直接去找工作没有经验也没有作品 , 心想找工作有点难 , 所以先找一个小项目来练练手 , 顺便也试着看下做游戏开发是什么样的体验. 想着要做一个什么游戏的时候 , 发现自己没有并没有多好的游戏创意 , 满脑子都是写中二的想法 , 脑子一热就有一些想法但细细想来却太困难 .作者又不会画画 , 只好做些在网上容易找来素材的小游戏 .  想起过年的时候打麻将输掉的200+块钱 , 心中颇为不快 ,但是转念一想 ,为

战大圣游戏系统开发需要多少费用

我要战大圣游戏系统我要战大圣游戏开发,找(吴先生 176.2072.9119可微信)我要战大圣游戏理财我要战大圣游戏开发.我要战大圣系统游戏我要战大圣app开发.我要战大圣游戏系统软件开发多少钱.我要战大圣游戏APP系统定制开发.我要战大圣理财游戏系统专业开发. 特别提示:本公司是软件开发公司,非平台方 1.游戏简介: 玩家天天打一次董卓,爆出的设备为红宝石碎片,100红宝石碎片=1红宝石=1RMB,保持我要战大圣,红宝石越多,财产越多 操纵简单:登录游戏--打大圣--挑衅--把获得的红宝石碎片