关闭

《C#程序设计》猜猜看小游戏制作

428人阅读 评论(0) 收藏 举报

由于对C#的使用不熟悉,我临时改用JSP制作本次课程设计;在JSP页面随机显示一张照片,通过下拉列表选择你心目中的答案,提交后可以得到猜测结果是否正确,又可以通过超链接返回继续游戏,虽然比较简单,不过还是得到了很多锻炼。

一、起始页面

就一个简单的文字介绍页面,基本代码和布局代码就不贴出了。


二、游戏页面

1.猜错的情况


通过页面出来的页面,我随便选择了一个名字点击确定,结果显示猜错了,而正确答案是这样照片的主人是宋小茹。

2.猜对的情况


经过验证,上图显示的就是黎绮霞同学,在caicaikan.jsp页面我们可以通过刷新生成不同的照片。

三、代码部分

主要部分:(caicaikan.jsp)

<% <span style="white-space:pre">	</span> Vector<String> imagePathArray=new Vector<String>();  //使用Vector类
<span style="white-space:pre">		</span>File dir = new File("D:/jsp工作空间/Test/WebRoot/photo");
<span style="white-space:pre">		</span>File file[] = dir.listFiles();
<span style="white-space:pre">		</span>for (int i = 0; i < file.length; i++) {
<span style="white-space:pre">		</span>if (file[i].isFile())
<span style="white-space:pre">		</span>{
<span style="white-space:pre">		</span> String icon=file[i].getAbsolutePath();
<span style="white-space:pre">		</span>if (icon.endsWith(".png") || icon.endsWith(".PNG") )
<span style="white-space:pre">		</span> imagePathArray.add(icon);
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
<span style="white-space:pre">		</span>int n=(int)(Math.random()*14)+1;
<span style="white-space:pre">		</span>// System.out.print(n) ;
<span style="white-space:pre">		</span>String a = file[n].getPath();
<span style="white-space:pre">		</span>// out.print(a);
<span style="white-space:pre">		</span>String b=String.valueOf(n+9); 
<span style="white-space:pre">		</span>
<span style="white-space:pre">	</span> %>    
<span style="white-space:pre">	</span><img src="<%=a %>"></img>  <span style="white-space:pre">	</span>/JSP中图片显示,src写入的是照片的URL
<span style="white-space:pre">	</span><input Type="hidden" value=<%=b %> name=b >
我是把照片的文件直接放在WebRoot目录下的,之前为了省事直接将照片路径放到数组里(照片比较少),不过这次照片太多所以就用了上诉代码把指定目录下的文件路径保存到数组,其中使用到Vector类,因为照片数目不一定固定不变,使用Vector类可以很好的存放照片路径;然后用Random产生一个随机数选取存放在数组中的路径使用<pre name="code" class="html"><img src="<%=a %>"></img> 
将图片显示出来,之前我们将照片的路径存放到数组所以这里就可以通过随机数取出路劲赋予变量a;这里注意我们需要把随机数n的值强制转换给b,下面加入一个隐藏域(hidden),并把变量b的值赋给value作为参数传递给Result.jsp,当然也可以用其他方法,比如超链接,Session对象等,不过个人认为那比较麻烦,程序以简要最好。

</pre><pre name="code" class="html">次要部分:(Result.jsp)
   <%<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>String mess="";
<span style="white-space:pre">	</span>// String s1=(Integer)session.getAttribute("rrr");
<span style="white-space:pre">	</span>String s1=request.getParameter("b");
<span style="white-space:pre">	</span>// out.print(s1);
<span style="white-space:pre">	</span>String s2=request.getParameter("Name");
       // out.print(s2);
<span style="white-space:pre">	</span>if(s2.equals(s1)){
<span style="white-space:pre">	</span>mess="恭喜你猜对了!";
<span style="white-space:pre">	</span>}else
<span style="white-space:pre">	</span>mess="猜错了,请再接再厉!";  
<span style="white-space:pre">	</span> %>
</pre><pre name="code" class="html">这里使用getParameter()方法获取caicaikan.jsp页面的两个参数b和下拉列表选择的答案Name,将两个变量通过equal()相比较,若相同则猜测正确,反之就错误。
总结: 虽然能基本做出这个小游戏模型,个人觉得还可以完善下,比如加入干扰图片,而下拉框没有这张干扰图片对应的名字(需多加个该图片名字不存在);由于使用了三个JSP页面,页面之间的跳转比较繁琐,之前若采用MVC模式应该会更完美一些。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4377次
    • 积分:236
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:12条