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
- C#记忆游戏的简单实现
- 猜数字游戏(简单C#实现)
- 简单扫雷游戏的实现
- 简单扫雷游戏的实现
- c#简单贪吃蛇游戏的思想
- 简单的C# 猜数字游戏
- c#简单打字游戏
- 记忆游戏
- 简单的猜拳游戏的实现
- 一个简单的猜拳游戏的实现
- 简单的推箱子游戏的实现
- C# 实现简单的UDP
- C# 实现简单的栈
- 用C#实现的生命游戏
- C# 控制台实现的五子棋游戏
- 一个俄罗斯方块游戏的简单实现
- 超级简单猜数游戏的实现
- C++实现简单的分牌游戏
- java线程锁 synchronized
- spring AOP 前置增强,后置增强小Demo
- Fault管理与自动化
- p123.30
- linux上 rlwrap安装
- C#记忆游戏的简单实现
- NYOJ_41 三个数从小到大排序
- P124第40题
- ArrayList类
- DesignPatterns_Visitor
- 安卓笔记之网络图片查看器小程序以及消息处理机制运用
- MapReduce应用
- gui显示白色框架,但不显示内容,gui中耗时操作
- Java 泛型学习 泛型擦除带来的不自然