最近带学生学习J2SE中的面向对象那章,晚上备课出教学作业的时候,突然想让学生们做一个简单的游戏,学习编程语言最大的动力莫过于兴趣,把你的想法,通过程序实现出来,让别人能够体验的你思维的结晶,这是一件很酷的事情。
首先,先给学生们定义一个简单的需求,我们来做一个文字版的超级玛丽~
/****************************************************************/
1.定义超级玛丽类
属性:
血滴(默认3滴)
名称
状态(1 小状态 2.大状态 3.吐子弹)
方法:
撞砖块()
扣血()
升降级()
2.定义 主方法类
a。创建 一个超级玛丽英雄
b。在10次循环中,调用 撞砖块 方法
升级蘑菇(最多升级到吐子弹)
乌龟(如果不能吐子弹,降级,如果小状态 扣血)
食人花(降级)
扣血三滴,游戏结束
c.通过10循环操作,游戏胜利,迎娶公主,走上人生巅峰!
/****************************************************************/
为了开发更为简单,选用 IntelliJ IDEA Community Edition 工具,之前写Android程序的时候一直用ADT-Bundle 后来Google除了 Android Studio 开始用IntelliJ 样式的IDE,出人意料的舒服,所以在教Java基础阶段也推荐大家使用。
打开工具后,让我们开始创建项目吧
需要配置一下 Project SDK,点一下new按钮,选中JDK
找到JDK的安装位置,OK就行,相当于设置一下JAVA_Home
下一步提示你,勾选代码模板,然后next
项目名称和项目地址
项目生成后,先创建包的结构
创建2个包,一个com.hao.view 放主方法类
一个com.hao.bean 放实体类
在bean包中,创建一个java类
超级玛丽类诞生了~
如果觉得,左侧包管理器字体不够大,可以在
File->Setting->Appearance & Behavior->Appearance
需要勾上 覆盖默认字体那项的 Override default font
这样下方的字体就可以设置了
改完后,包管理器字体看着舒服多了
至于代码编辑区域
File->Setting->Editor->Color&Font->Font
先点 save as 生成一个 黑色主题的 复制
这样 字体就可以改动了
我们开始Coding,最喜欢IDEA的内容提示功能,很方便
为了封装性,把 血滴 名称 和状态 定义成私有的
对私有属性,添加set 和 get 方法,选择后 右键鼠标,选择Generate
选择 Getter and Setter
使用Ctrl 点击 三个属性,都高亮,表示要添加其set 和 get 方法
//血滴
private int blood=3;
//名称
private String name;
//状态 1 小状态 2 大状态 3 吐子弹
private int status=1;
public int getBlood() {
return blood;
}public void setBlood(int blood) {
this.blood = blood;
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}public int getStatus() {
return status;
}public void setStatus(int status) {
this.status = status;
}
然后定义成员方法
//撞砖块方法
public int knockBrick()
{
//返回值
int result=0;
//创建了随机数对象
Random random=new Random();
//nextInt 0->n-1
int number=random.nextInt(100);
if(number<=50)
{
//升级蘑菇
result=1;
}
else if(number>50&&number<=70)
{
//乌龟
result=2;
}
else
{
//食人花
result=3;
}
return result;
}```
//然后是掉血方法
public int dropBlood()
{
return --blood;
}
//升降级别
public void level(boolean flag)
{
if(flag) //升状态
{
if(status==3)
{
System.out.println("火力全开了,超神中。。");
}
else
{
status++;
}
}
else //降级
{
status--;
if(status==0)
{
//调用掉血方法
dropBlood();
if(blood==0)
{
System.out.println("扣一滴血");
System.out.println("Game Over");
}
else
{
System.out.println("扣一滴血");
//如果还有血,则重生人物,状态设置为小状态
status=1;
}
}
}
}
把光标挪动到出错类前,IDEA会提示你 使用 Alt+Enter 导入当前包
ok,超级玛丽实体完工了,我们开始写主类
在com.hao.view包,修改Main类
//姓名
private static String name="提莫";
//系统输入对象
private static Scanner scan=new Scanner(System.in);
添加 默认玩家姓名
添加 系统输入对象,记得要import java.util.Scanner类
定义显示菜单方法~
//入口
public static void main(String[] args) {
showMenu();
}
//显示菜单
public static void showMenu()
{
System.out.println("欢迎穿越到异世界");
System.out.println("*********************");
System.out.println("请英雄留名:");
//获取控制台输入的String值
name=scan.nextLine();
//控制循环的条件
boolean flag=true;
while (flag) {
System.out.println("********************\n"
+"1===开始游戏\n"
+"2===游戏介绍\n"
+"3===投诉作者\n"
+"4===捐赠作者\n"
+"9===退出游戏\n"
+"********************");
//获取用户输入的选择标号
String choice=scan.nextLine();
//对用户选择做分支
switch (choice) {
case "1": //开始游戏
startGame();
break;
case "2": //介绍
System.out.println("作者不想说话,想你扔了一个升级蘑菇");
break;
case "3"://投诉
System.out.println("此功能未开放,捐赠后开启");
break;
case "4"://捐赠
System.out.println("充值998,全程升级蘑菇 ");
break;
case "9"://退出
//把循环条件改为false
flag=false;
System.out.println("祝君一路顺风");
break;
default:
System.out.println("命令无效,请重新输入");
break;
}
}
//关闭输入
scan.close();
}
//开始游戏
public static void startGame()
{
//创建一个超级玛丽对象
SuperMario mario=new SuperMario();
//赋值姓名 成员变量
mario.setName(name);
//循环玩游戏
for (int i = 0; i < 10; i++) {
System.out.println("***************\n"
+"1===撞砖块\n"
+"2===伤心了,不玩了\n"
+"***************");
String choice =scan.nextLine();
if(choice.equals("1"))
{
//调用撞砖块方法
int result= mario.knockBrick();
if(result==1) //蘑菇
{
System.out.println("撞出升级蘑菇,Level Up!");
//调用升级方法
mario.level(true);
}
else if(result==2) //乌龟
{
System.out.println("撞出乌龟");
if(mario.getStatus()==3)
{
System.out.println("吐弹打掉乌龟");
}
else
{
System.out.println("乌龟碰瓷,降状态");
mario.level(false);
}
}
else
{
System.out.println("撞出食人花");
System.out.println("食人花对你高喊:快到碗里来,降状态");
mario.level(false);
}
String stat="";
switch (mario.getStatus()) {
case 1:
stat="童年状态";
break;
case 2:
stat="成年状态";
break;
case 3:
stat="赛亚人状态,能吐豆!";
break;
}
if(mario.getBlood()==0)
{
break;
}
else
{
System.out.println("当前关卡:"+(i+1)+"人物属性:"+mario.getName()+"\t"+mario.getBlood()+"滴血\t"+stat);
}
}
else//不是1 都不玩了
{
System.out.println("本次游戏结束,再接再厉!");
break;
}
}
if(mario.getBlood()>0)
{
System.out.println("游戏胜利,迎娶公主,走上人生巅峰!");
}
}
ok ,写完后,愉快的测试一下 IDEA 连Ctrl+S都不用按,程序员会越来越懒的
在工具栏,找到run标签, 点击里面的run “Main”功能
简单的小程序,也能找寻到游戏的快乐,不简单的编程工具,更能提升编程的效率,
希望大家能在开发的道路上走得更远,更踏实。