C#之四十五 扑克牌Memorize

告诉学生们可以使用按钮或图片框来表示扑克牌。学生们可以从TIRM CD的以下文件夹内获得扑克牌的图片:

Datafiles forStudents\Project\Memorize\Images。

告诉学生们计算机不会在游戏中作为一名玩家。另外,它会在玩家赢得游戏之前为其设立有难度的挑战。学生们需要编写游戏中计算机作用的逻辑。

有两组,每组8张扑克牌。每组的牌编号从1到8。计算机需要将这些牌随机放到游戏板上。游戏板上有16个位置,编号从0到15,如下图所示。


0


1


2


3


4


5


6


7


8


9


10


11


12


13


14


15

为了放置每张牌,计算机需要生成0 到16之间的随机数(包括0,不包括16),并将牌放到游戏板上生成的位置处,假设此位置还未填满。如果此位置已经填满,则在找到空位置之前生成另一个数字。

为了生成随机数,可使用以下代码:

Random ran= new Random();

num =ran.Next(0,2);    //0 is included in therange, 2 is excluded

存储在每个位置的牌的详细信息可以存储在数组A中。假设编号为7的牌放在游戏板的第5个位置上。然后,A[5] 将包含值7。

初始化时,牌面朝下。当玩家单击一张牌时,这张牌翻过来。当玩家单击第二张牌时,第二张牌也会翻过来。如果揭开的两张牌相同,则这两张牌必须从游戏板上消失。如果这两张牌不同,玩家需要单击第三张牌。只要玩家单击第三张牌,前两张牌必须自动面朝下。此过程会一直继续到所有牌从游戏板上移除为止。

以下是Memorize的界面设计。

这组将用12个小时(每个学生)来完成项目。在此期间,他们需要:

n         分析用例研究并明确这些要求

n         设计游戏的界面

n         开发游戏所用的基本逻辑

n         实现开发的逻辑

n         开发游戏

n         开发帮助系统并将其集成到项目中

n         打包完整的解决方案

以下是为教师提供的用于项目分配和评估:

n         项目必须在第5个周期结束时分配给学生们。

n         创建两个学生的小组,将不同的用例研究分配给每个小组。

n         在分配期间,通过参考课题、项目活动和项目时间安排向学生们阐述项目的范围。

n         要求学生们参考样本项目文档中提供的样本用例研究及其解决方案。

n         要求学生们在开始项目文档之前参考主题项目标准和指导方针。

n         通过使用TIRM CD的以下文件夹内提供的数据文件,向学生们演示样本解决方案:

ProjectSolution\BigBangBomb

执行此应用程序:

1. 将文件夹ProjectSolution\BigBangBomb 从TIRM CD 复制到:

您的本地驱动器。

2. 双击BigBangBomb 文件夹中的BigBangBomb 解决方案文件并按下F5 键执行应用程序。

根据主题项目评估指导方针中提供的指导方针来评估学生。

时间: 2024-11-20 19:51:34

C#之四十五 扑克牌Memorize的相关文章

45. 蛤蟆的数据结构笔记之四十五克鲁斯卡尔算法

本篇名言:"假如生活欺骗了你 ,不要忧郁 , 也不要愤慨 !不顺心的时候暂且容忍 : 相信吧 , 快乐的日子就会到来.--普希金" 上两篇学习了弗洛伊德和迪杰特斯拉算法.这次来看下克鲁斯卡尔算法. 欢迎转载,转载请标明出处:http://write.blog.csdn.net/postedit/47071539 1.  克鲁斯卡尔算法 克鲁斯卡尔(Kruskal)算法是在剩下的所有未选取的边中,找最小边,如果和已选取的边构成回路,则放弃,选取次小边.是实现图的最小生成树最常用的算法.

网络安全系列之四十五 在IIS6中配置虚拟目录

一个网站中的所有网页和相关文件都要存放在主目录下,为了对文件进行归类整理,也可以在主目录下面建立子文件夹,分别存放不同内容的文件,例如一个网站中,新闻类的网页放在主目录的news文件夹,技术类的网页文件放在主目录的tech文件夹,产品类的网页文件放在products文件夹等,这些直接存放在主目录下的子文件夹都称为物理目录. 如果物理目录的数量很多,主目录的空间可能会不足,因此也可以将上述文件存放在其它分区或者其它计算机上,而用户访问时上述文件夹在逻辑上还属于网站之下,这种归属于网站之下的目录称为

Qt浅谈之四十五QSplitter实现自由伸缩滑动窗口

一.简介 最近看到一篇Qt实现伸缩滑动的窗口的文章,但其代码不完整.便在此重新书写了完整的代码,并开源出来.窗口的中央有滑动条可以动态改变子窗口的大小,隐藏的按钮可以快速伸缩子窗口.其效果图如下: 二.详解 1.代码 (1)slidingwindow.h [html] view plain copy #ifndef SLIDINGWINDOW_H #define SLIDINGWINDOW_H #include <QtGui> class SlidingWindow : public QWid

【云快讯】之四十五《Google在云服务领域认输?不,我们的重点是大数据》

2015-06-02 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 让我们来听听Google云平台的副总裁 史蒂文斯 如何来解说云战略的吧. 谷歌可能没有赶上亚马逊在云计算市场,不过没关系,我们正在朝着一个方向略有不同云计算,涉及帮助客户分析他们的数据. "这不是赶上[亚马逊],"布莱恩·史蒂文斯,云平台的谷歌全球副总裁. "这不只是提升和转移服务器和这样的.这不是在做你一直在做的同样的事情,这是关于做一个新的云的方式.&quo

Java经典编程题50道之四十五

判断一个整数能被几个9整除. public class Example45 {    public static void main(String[] args) {        f(729);    } public static void f(int n) {        int tmp = n;        int count = 0;        for (int i = 0; tmp % 9 == 0;) {            tmp = tmp / 9;         

【管理心得之四十五】你呀,没心

场景再现 =========================== {起因} 某领导通过国内外考察,意识到本厂产品两年后必然会因为加入WTO而面临国外产品冲击的危险,于是在员工大会上说道: “大家静一静,听我说几句.最近工厂需要进一批新生产线设备,由于资金不足要求全厂员工集资,若不集资者就降薪.下岗.请各位极力配合一下.” {经过} 员工们一个个很气愤.怨声载道,产生强烈的抵抗情绪,认为那是领导好大喜功.捞政绩.为自己提干做筹码,损害了自己的利益.于是酿成大规模上访事件.无奈之下,厂里只好取消了这

Android实战技巧之四十四:Hello,Native!

在Android上运行C程序对于做上层App的童鞋来说有些陌生,因为目前的Android应用开发怎么还是绕不过Java. 但对于底层驱动开发者,这就是家常便饭一样,因为Android是Linux分支,底层是C/C++的世界. 有时为了测试一些功能,我们也会编写直接运行在Android终端下的C程序.前提是有Android交叉编译器以及Android系统的root权限. 交叉编译工具 ndk为我们开发native程序做了很多工作,下面我们将Android交叉编译工具从ndk中分离出来. 我的系统是

微软云计算介绍与实践(实践之四十)

谢天谢地,微软私有云的介绍和实践,到今天这里就要终结了.现在回头总结一下实践方面所做的事情,主要围绕着五个板块(方面)展开,相关知识点简单整理如下: 实践板块一:管理私有云资源 这个实践主要是微软私有云可提供的部分功能.这些功能可用于创建强大,低成本,有适应性的基础架构,同时展现了私有云的一些特点: 可扩展和弹性 资源池和共享 可用性和持续在线 实践板块二:管理私有云容量 成功实施私有云之后,可以充分利用 Windows Server 2012 与 System Center 2012 SP1

每周进度条(第十五周)

第十五周进度条   第十五周 所花时间 1h 代码量(行)  100 博客量(篇)  1 学到的知识 对图片的处理 在Android程序中加入图片