Java课程设计PPT-扫雷游戏
- 格式:ppt
- 大小:3.90 MB
- 文档页数:21
java课程设计扫雷一、课程目标知识目标:1. 让学生掌握Java基础语法,包括变量声明、数据类型、运算符和流程控制语句;2. 培养学生运用面向对象编程思想,掌握类与对象的基本概念,以及继承、封装和多态等特性;3. 通过扫雷游戏的案例,让学生学会使用二维数组处理游戏逻辑。
技能目标:1. 培养学生运用所学知识独立编写程序的能力,实现扫雷游戏的主体功能;2. 提高学生分析问题、解决问题的能力,学会运用模块化思维进行编程;3. 培养学生团队协作意识,学会在项目中分工合作、共同完成项目。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成积极向上的学习态度;2. 培养学生面对困难敢于挑战、勇于克服的精神,增强自信心;3. 培养学生遵守编程规范,养成良好的编程习惯。
本课程针对高年级学生,在已有Java基础知识的基础上,通过设计扫雷游戏项目,使学生在实践中巩固和提高所学知识。
课程注重培养学生的编程技能、团队协作能力和解决实际问题的能力,同时关注学生的情感态度价值观培养,使学生在轻松愉快的氛围中学习编程。
课程目标具体、可衡量,为教学设计和评估提供明确方向。
二、教学内容1. Java基础语法复习:变量声明、数据类型、运算符、流程控制语句(包括条件语句、循环语句等);2. 面向对象编程:类与对象、构造方法、继承、封装、多态;3. 二维数组:声明、初始化、遍历、应用;4. 游戏设计原理:游戏循环、事件处理、界面设计;5. 扫雷游戏项目开发:需求分析、模块划分、编码实现、测试与优化。
教学内容参考教材相关章节,结合课程目标进行组织。
教学大纲安排如下:1. 复习Java基础语法(1课时);2. 面向对象编程知识讲解与练习(2课时);3. 二维数组知识讲解与练习(1课时);4. 游戏设计原理介绍(1课时);5. 扫雷游戏项目开发:需求分析、模块划分(1课时);6. 扫雷游戏项目开发:编码实现、测试与优化(3课时)。
自己写用Java写的扫雷游戏-----------做课程设计的可以参考一下。
运行界面截图:扫雷游戏主界面以下是游戏代码(共分三个文件即三个类:MySaoLei.java;Area.java 和ZiDingYi.java)://(1) MySaoLei.javapackage com.test;import java.awt.*;import javax.imageio.ImageIO;import javax.swing.*;import javax.swing.border.Border;import javax.swing.border.LineBorder;import java.awt.event.*;import java.io.File;import java.security.acl.Owner;import java.util.*;public class MySaoLei extends JFrame implements ActionListener,MouseListener{ //w表示横向可以放多少雷,h表示纵向可以放多少雷static int w=35,h=20;//设置雷的个数static int leisum=180;//用二维向量a[][]来存放雷Area a[][]=null;//win用于判断是否完成扫雷int win=0;Image image = null;JPanel jp=null;JPanel jp0=null;JMenuBar jmb;JMenu jm1,jm2;JMenuItem jm1_1,jm1_2,jm1_3,jm1_4,jm1_5,jm2_1; //主函数public static void main(String[] args) {// TODO Auto-generated method stubMySaoLei msl = new MySaoLei(w,h,leisum);}///////////////////////////////////////////////////构造函数public MySaoLei(int w,int h,int leisum){a=new Area[h][w];this.w=w;this.h=h;this.leisum=leisum;jmb=new JMenuBar();jm1=new JMenu("游戏(G)");jm1_1=new JMenuItem("初级");jm1_1.addActionListener(this);jm1_2=new JMenuItem("中级");jm1_2.addActionListener(this);jm1_3=new JMenuItem("高级");jm1_3.addActionListener(this);jm1_4=new JMenuItem("自定义");jm1_4.addActionListener(this);jm1_5=new JMenuItem("退出");jm1_5.addActionListener(this);jm1.add(jm1_1);jm1.add(jm1_2);jm1.add(jm1_3);jm1.add(jm1_4);jm1.add(jm1_5);jm2=new JMenu("帮助(H)");jm2_1=new JMenuItem("游戏规则"); jm2_1.addActionListener(this);jm2.add(jm2_1);jmb.add(jm1);jmb.add(jm2);//创建一个网格布局g1GridLayout gl=new GridLayout(h,w); gl.setHgap(1);gl.setVgap(1);jp=new JPanel();jp.setLayout(gl);//初始化雷区for(int i=0;i<h;i++){for(int j=0;j<w;j++){a[i][j]=new Area();a[i][j].addActionListener(this);a[i][j].addMouseListener(this);a[i][j].show(0);jp.add(a[i][j]);}}//添加每个按钮周围的按钮addAround();//设置雷int ii=0;int jj=0;for(int i=0;i<leisum;i++){ii=(int)(Math.random()*h);jj=(int)(Math.random()*w);a[ii][jj].isLei=1;a[ii][jj].Type=9;}//给每个按钮写上数据for(int i=0;i<h;i++){for(int j=0;j<w;j++){if(a[i][j].isLei==0){a[i][j].Type=getAroundsum(a[i][j]);}}}/////////////////////////////////////////////////////////////////////设置JFrametry{//image =ImageIO.read(new File("/me.jpg"));image=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/me.jpg")) ;this.setIconImage(image);}catch(Exception e){e.printStackTrace();}this.setJMenuBar(jmb);this.add(jp);this.setSize(w*35+10,h*35);this.setLocation(10, 10);this.setTitle("韦德爱扫雷");this.setIconImage(image);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}//为每个按钮添加周围的按钮的函数public void addAround(){for(int i=0;i<h;i++){for(int j=0;j<w;j++){a[i][j].around=new Vector<Area>();if(i>0 && j>0){//左上角a[i][j].around.add(a[i-1][j-1]);//System.out.println(i+" "+j+"左上角");}if(j>0){//上方a[i][j].around.add(a[i][j-1]);//System.out.println(i+" "+j+"上方");}if(i<h-1 && j>0){//右上角a[i][j].around.add(a[i+1][j-1]);//System.out.println(i+" "+j+"右上角");}if(i<h-1){//右边a[i][j].around.add(a[i+1][j]);//System.out.println(i+" "+j+"右边");}if(i<h-1 && j<w-1){//右下角a[i][j].around.add(a[i+1][j+1]);//System.out.println(i+" "+j+"右下角");}if(j<w-1){//下方a[i][j].around.add(a[i][j+1]);//System.out.println(i+" "+j+"下方");}if(i>0 && j<w-1){//左下角a[i][j].around.add(a[i-1][j+1]);//System.out.println(i+" "+j+"左下角");}if(i>0){//左边a[i][j].around.add(a[i-1][j]);//System.out.println(i+" "+j+"左边");}}}}//得到按钮周边雷的个数的函数public int getAroundsum(Area area){int sum=0;Area a=null;for(int i=0;i<area.around.size();i++){a=area.around.get(i);if(a.isLei==1)sum++;}return sum;}//自动挖开空白区域public void wakai(Area a){Area a2=null;for(int i=0;i<a.around.size();i++){a2=a.around.get(i);if(a2.show==0 && a2.Type!=0){a2.show(1);}if(a2.show==0 && a2.Type==0){a2.show(1);wakai(a2);}}}//判断是否完成扫雷的函数public void win(){//判断是否挖完win=0;for(int i=0;i<h;i++){for(int j=0;j<w;j++){if(a[i][j].isLei==1 && a[i][j].show!=2){win++;}}}if(win==0){for(int i=0;i<h;i++){for(int j=0;j<w;j++){if(a[i][j].isLei==0 && a[i][j].show==0)a[i][j].show(1);}}JOptionPane.showMessageDialog(this, "恭喜你!扫雷完成!");}}//菜单响应函数public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==jm1_1){new MySaoLei(20,15,60);this.dispose();}if(e.getSource()==jm1_2){new MySaoLei(30,18,90);this.dispose();}if(e.getSource()==jm1_3){new MySaoLei(35,20,140);this.dispose();}if(e.getSource()==jm1_4){ZiDingYi zdy=new ZiDingYi(this,"自定义游戏等级",true);if(zdy.closeOwner)this.dispose();}if(e.getSource()==jm1_5){this.dispose();}if(e.getSource()==jm2_1){//System.out.println("点击了游戏规则");String message="游戏规则:\n每个小方块上都可能是雷、1~8的数字或者空白(空白表示0)。
J A V A课程设计扫雷(总21页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除Java程序课程设计任务书1.设计内容及要求扫雷游戏的基本要求Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。
本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。
具体要求如下:(1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。
(2)用户要揭开某个方块,可单击它。
若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。
(3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。
用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。
(4)扫雷胜利后,显示游戏胜利。
(5) 用户可以右击空格,可以选择标记为“旗帜”、“问号”或者返回成空格。
计划进度1. 12月28日-- 12 月28日:搜集资料、查阅文献,确定选题2. 12月29日-- 12月29日:需求分析,系统设计,系统功能模块完善3. 12月30日-- 1月 1日:编程实现系统、系统测试与修改4. 1月2日-- 1月3日:课程设计报告撰写5. 1月7日-- 1月7日:课程设计报告答辩任务分工需实现的主要功能(1)用户点击笑脸实现复位操作。
调用repaint()和validate()函数对界面进行重置以及刷新操作(2)可以显示用户完全扫雷成功所花时间。
文本框TF记录扫雷成功所花的时间(3)在失败和胜利后跳出失败或胜利的文本框JoptionPane 该类用来调出对话框并提示胜利2.需求分析扫雷棋盘的布局设计系统的整体布局为:CardLayout布局, 采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。
JAVA语言课程设计报告题目:扫雷小游戏设计者:专业班级:学号:指导教师:2011年12月12日计算机学院目录:1.设计内容及要求 (1)1.1.扫雷小游戏的基本要求 (1)1.2 需求实现的主要功能 (1)2.需求分析 (1)2.1 扫雷区域的布局设计 (1)2.2 雷区的设计 (1)2.3 音效的设计 (1)3.总体设计 (2)3.1总体功能图 (2)3.2游戏设计流程图 (2)4.主要功能设计 (3)4.1 雷区设计流程图 (3)4.2 音效设计流程图 (4)4.3 排行榜设计流程图 (5)5.代码实现 (6)5.1 类之间的关系图 (6)5.2 各界面图及代码: (6)5.2.1 游戏菜单界面 (6)5.2.2 游戏登录界面(初级、中级、高级) (8)5.2.3自定义扫雷界面 (15)6.扫雷总结 (18)7.参考文献 (18)1·设计内容及要求1.1·扫雷小游戏的基本要求扫雷小游戏主要采用Java语言编写,适合windows XP 以下的系统,以eclipse 为平台。
具体要求如下:<1>扫雷小游戏分为初级、中级和高级三个级别,扫雷排行榜保存着每个级别的最好成绩,即挖出全部的地雷并且用时最少。
单机游戏菜单选择“初级”、“中级”和“高级”。
<2>游戏默认的是初级级别,用户可以选择不同级别将出现对应级别的扫雷区域,单击扫雷区域任一方格以便启动计时器。
<3>用户选择某个方格,单击它就行。
若所选择的放阁下有雷,这一局就结束了,若所选择方格下无雷,则会显示一个数字,该数字代表方格周围8个方格中共有几颗雷。
<4>如果用户认为某个方格下有雷,单击右键可以在方格上标记一个用户认为是雷的图标(一个小旗子)。
<5>用户可以选择标记为疑问的方格,可以选择游戏菜单下的标记,或者双击右键所选方格显示(?)图标。
<6>扫雷完成后,程序弹出保存成绩的对话框,用户可以根据自身选择是否保存。
java_扫雷游戏课程设计报告(共5篇)第一篇:java_扫雷游戏课程设计报告一、设计任务与要求扫雷游戏的基本要求Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。
本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。
具体要求如下:(1)扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。
单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。
(2)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。
(3)用户要揭开某个方块,可单击它。
若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。
(4)如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。
用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。
(5)扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。
(6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。
另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。
(7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。
当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。
二、需求分析1、扫雷游戏概述扫雷是一种具有迷惑性的对记忆和推理能力的简单测试,它是长久以来最受欢迎的Windows游戏之一。
游戏目标:找出空方块,同时避免触雷。
2、扫雷的操作方法游戏主区域由很多个方格组成。
使用鼠标随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开。
java简易扫雷游戏课程设计一、课程目标知识目标:1. 让学生掌握Java编程语言的基本语法和结构;2. 培养学生运用面向对象编程思想,设计简易扫雷游戏;3. 让学生了解并应用二维数组进行游戏地图的表示;4. 引导学生掌握随机数的生成和使用。
技能目标:1. 培养学生独立编写、调试和运行Java程序的能力;2. 提高学生分析问题、解决问题的能力;3. 培养学生的逻辑思维能力和团队协作能力。
情感态度价值观目标:1. 培养学生积极的学习态度,激发对编程的兴趣;2. 培养学生面对挑战时不放弃的精神,增强自信心;3. 引导学生认识到编程在现实生活中的应用,提高社会责任感。
课程性质:本课程为实践性较强的学科,通过设计简易扫雷游戏,让学生在实际操作中掌握Java编程知识。
学生特点:学生已具备一定的Java编程基础,具有较强的逻辑思维能力和动手能力。
教学要求:教师需结合学生特点,设计合理的教学环节,引导学生独立完成游戏设计,注重培养学生的实践能力和团队合作精神。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. Java基本语法回顾:变量、数据类型、运算符、控制结构;2. 面向对象编程:类与对象、构造方法、成员变量、成员方法;3. 二维数组:定义、初始化、遍历、应用;4. 随机数生成:Random类、Math类;5. 简易扫雷游戏设计:游戏规则、界面设计、逻辑实现;6. 异常处理:try-catch语句、异常类型;7. 教学大纲:- 第一课时:Java基本语法回顾,面向对象编程基础;- 第二课时:二维数组的使用,随机数生成;- 第三课时:简易扫雷游戏规则介绍,界面设计;- 第四课时:简易扫雷游戏逻辑实现,异常处理;- 第五课时:课程总结与作业布置。
教学内容参考教材相关章节,结合课程目标,确保学生能系统掌握Java编程知识,并能够将所学知识应用于简易扫雷游戏的设计中。
在教学过程中,教师需关注学生的掌握情况,及时调整教学进度,保证教学质量。