C#记忆游戏的简单实现

来源:互联网 发布:什么漫画软件好 编辑:程序博客网 时间:2024/06/06 07:13

三国无双做背景,三国杀的将牌当卡牌。

先看看效果:


游戏胜利:


游戏失败:


更换背景(钟会真帅,这个武将攻击很酷~):


游戏设置:


来说一下实现的基本方法:

(1)12个picturebox,用随机函数随机选取6个图片,后6个根据前六个进行随机,然后用数组保存索引。

这个最有看点的是保证随机数不重复的算法,我用的第三种。

方法一://存放1-100个数int[] num = new int[100];//indexNum[0]=1;…indexNum[99]=100;(不重复)for (int i = 0; i < num.Length; i++){    num[i] = i + 1;}Random r = new Random();//存放最终结果int[] result = new int[100];int max = 100;//设置随机数最大值for (int j = 0; j < result.Length; j++){//计算出随机产生的数组索引(0-99) 注:上界值:100 无法取到    int index = r.Next(0, max);//取出该索引位置所存的数    result[j] = num[index];//用最后一个数替换掉已被放入result中的数//这样num数组中从0到max-1又都是未被存放入result而且不重复的数了    num[index] = num[max - 1];//随机产生的数组索引最大值减一    max--;}//打印结果for (int i = 0; i < 100; i++){    if (i % 10 == 0)    {        Console.WriteLine("/r/n");    }    Console.Write(result[i] + " ");}Console.Read();方法二:Dictionary result = new Dictionary();Random r = new Random((int)DateTime.Now.Ticks);int temp;for (int i = 0; i < 100; i++){    do    {        temp = r.Next(1, 101);    }    while (result.ContainsValue(temp));    result.Add(i, temp);}foreach (var item in result){    if (item.Key % 10 == 0)    {        Console.WriteLine("/r/n");    }    Console.Write(item.Value + " ");}Console.Read();#endregion方法三:int[] num = new int[100];int temp;Random r = new Random();for (int i = 0; i < 100; i++){    temp = r.Next(1, 101);    num[i]=GetNumber(num, i, 1, 101, temp,r);}for (int i = 0; i < num.Length; i++){    if (i%10==0)    {        Console.Write("/r/n");    }    Console.Write(num[i] + " ");}Console.Read();////// 递归对比重复值///static int GetNumber(int[] a, int index, int minValue, int maxValue, int temp, Random r){    for (int i = 0; i < index; i++)    {        if (a[i] == temp)        {            int newTemp = r.Next(minValue, maxValue);            a[index] = newTemp;            return GetNumber(a, index, minValue, maxValue, newTemp, r);        }    }    return temp;}



(2)用两个picturebox来保存并判断两次点击的卡牌信息,点够两次触发一次判断。


(3)用变量保存消除的对数,==6就结束游戏,显示胜利。时间用尽或错误次数达到限制就结束游戏,显示失败。

———————————————————————————————————————————————————-

其他杂七杂八的功能很好实现,不再赘述,比如音效,游戏设置什么的(用类保存)。






0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 提现金额和实际到账不一样怎么办 二冲踏板冷车加油熄火怎么办? qq被盗绑定了别人的银行卡怎么办 如何更改微信支付密码忘记了怎么办 微信钱包没绑银行卡忘记密码怎么办 微信密码忘记了也没绑银行卡怎么办 微信支付密码忘记了没银行卡怎么办 想找回原来的k歌忘了密码怎么办 手机微信钱包支付密码忘了怎么办 微信支付账户被注销了怎么办 微信钱包密码忘了怎么办没绑银行卡 微信钱包密码忘了怎么办不用银行卡 企业网银密码输入三次错误怎么办 微信密码不知道手机也停用了怎么办 手机停用微信密码不记得了怎么办 农商银行登入密码忘记了怎么办 苹果手机忘记四位数解锁密码怎么办 银行卡用支付宝支付限额了怎么办 用银行卡号找回微信被盗密码怎么办 微信钱包密码错误被锁定怎么办 本人没玩财付通结果被扣了钱怎么办 我的银行卡给支付宝充不了钱怎么办 支付宝话费充错了怎么办啊 已充值成功送朋友话费不能送怎么办 微信绑定银行卡被盗刷q币怎么办 微信红包过了24小时没退回怎么办 微信6.67版本红包发错了怎么办 苹果6s还原后激活出错怎么办 q币充给了不存在的账号怎么办 怎么办微信的钱换成淘宝币 学信网密码密保手机号都忘了怎么办 第五人格玩游戏时总是闪退怎么办 qq安全中心密保手机换了怎么办 微信冻结账号绑定了银行卡怎么办 扣扣红包密码是支付密码忘了怎么办 红包退回通知不小心删除了怎么办 QQ炫舞金币充错账号怎么办 晋江的小说用晋江币买不了是怎么办 中国银行储蓄不能充值支付宝怎么办 微信怎么改银行卡密码忘记了怎么办 微信号手机号码换了密码忘了怎么办