满意答案

sylvia1017

2019.01.20

采纳率:48%    等级:7

已帮助:460人

简单的Dos小游戏

开始学习java,这周只简单的学习了C++的基本语法:输入输出,判断循环,因此用这些东西在java上瞎写了一个DOS小游戏。

import java.util.*;

public class Demo {

static int A=0,D=0,H=10,MONEY=0;

static int a1=1,d1=1,h1=5,lv1;

static String receive;//用来接收指令

public static void main(String[] args){

sop("输入star开始游戏");

receive=in();//调用命令行输入方法

if(receive.equals("star")){

star("");

}else{

sop("error:"+receive);

}

}

public static void star(String flag){//开始1

sop("输入1,2,3中的一个值领取物品");

flag=in();

if(flag.equals("1")){

A+=4;

D++;

show();

}else if(flag.equals("2")){

A+=3;

D+=2;

show();

}else{

MONEY+=50;

show();

}

star2("");

}

public static void star2(String flag){//开始2

sop("输入f/S决定去战斗/商店");

flag=in();

if(flag.equals("f")){

f("");

}else if(flag.equals("s")){

s("");

}else{

star2("");

}

}

public static void f(String flag){//战斗

//int key=0;

a1=1;//初始化bot

d1=1;

h1=5;

lv1=1;

do{

sop("当前战斗等级为:"+lv1);

a1=2*lv1;

d1=2*lv1;

h1=5*lv1;

sop("bot为:");

showbot();

sop("是否开始战斗?y/n");

flag=in();

if(flag.equals("y")){//输入y,继续

H=fight(H);//进入fight模式

if(H>0){//判断H

MONEY+=5*lv1;

lv1++;

sop("win");

show();

}else{

over();

}

}else{//输入其他,退回到satr2

star2("");

}

if(lv1==9){

boss("");

}

sop("继续?\ny/n");

flag=in();

}while(flag.equals("y"));

star2("");

}

public static void s(String flag){//商店

sop("输入1/2/3选择攻击/防御/生命,任意键退出");

flag=in();

if(flag.equals("1")&&MONEY>=10){

A++;

MONEY-=10;

show();

s("");

}else if(flag.equals("2")&&MONEY>=10){

D++;

MONEY-=10;

show();

s("");

}else if(flag.equals("3")&&MONEY>=10){

H+=10;

MONEY-=10;

show();

s("");

}else if(flag.equals("pay")){

sop("这位土豪选择了充钱,攻击+10,防御+5");

A+=50;

D+=25;

show();

s("");

}else if(MONEY<10){

sop("你的钱不够");

star2("");

}else{

star2("");

}

}

public static void boss(String flag){//BOSS

flag=in();

if(flag.equals("y")){

h1=100;

d1=30;

h1=500;

fight(H);

}else{

sop("你被抓到了,GG");

try{

Thread.sleep(1000);

}catch(Exception e){}

over();

}

if(H>0){

win();

}else{

over();

}

}

public static int fight(int H){//fight模式

while(true){

if(A<=d1){

sop("你被一招秒了");

try{

Thread.sleep(1000);

}catch(Exception e){}

over();

}

h1=h1-(A-d1);

sop("你对bot造成了"+(A-d1)+"点伤害");

try{

Thread.sleep(1000);

}catch(Exception e){}

if(h1<=0){

sop("bot被打败了");

try{

Thread.sleep(1000);

}catch(Exception e){}

h1=5;

//return H;

break;

}

H=H-(a1-D);//???????????????????????????

sop("bot对你造成了"+(a1-D)+"点伤害");

try{

Thread.sleep(1000);

}catch(Exception e){}

if(H<=0){

sop("你死了");

try{

Thread.sleep(1000);

}catch(Exception e){}

over();

break;

}

}

return H;

}

public static void show(){//显示自己数值

sop("A值为:"+A+"\nD值为:"+D+"\nH值为:"+H+"\nMONEY:"+MONEY);

}

public static void showbot(){//显示bot数值

sop("A值为:"+a1+"\nD值为:"+d1+"\nH值为:"+h1);

}

public static String in(){//命令行输入方法

Scanner sc=new Scanner(System.in);

String str=sc.next();

return str;

}

public static void sop(Object obj){//输出语句方法

System.out.println(obj);

}

public static void over(){//失败,结束

sop("饮恨,游戏结束");

System.exit(0);

}

public static void win(){//胜利

sop("通关!游戏结束");

System.exit(0);

}

}

很多地方都是凭感觉写的,有些地方不会写就百度了一下。最后写完,发现如下问题:

1,没有了解静态和非静态的区别,因此只写了一个类,方法都是静态的。

2,注释????的地方想了很久,为什么我的H值在每次战斗后又会被重置为10,后来发现只写了fight(H),应该写为H=fight(H)。

3,商店部分“你的钱不够”语句有点小问题,不想改了。

4,刚开始没有在每次战斗后初始化bot的生命值h1,导致在攻击过高时,h1会变为负值的BUG,后来在每次bot被打败后添加了一条:h1=5;。

5,刚开始没有在win(),over()方法中添加System.exit(0);,导致死亡后还会继续执行战斗方法的尴尬场面。

学习到的知识:

1,静态方法只能调用静态成员,因为静态成员是随着类的加载而加载的,此时非静态成员可能还未加载,因此不能调用非静态成员。非静态方法实例化之后,可以被静态成员调用。

2,问题2我想了很久,最后发现原来是自己忘记了成员变量和局部变量的区别。figth(H)中的H是局部变量和成员变量H不是一回事,局部变量和成员变量可以同名,在使用时,局部变量具有更高的优先级,直接使用同名访问时,访问的是局部变量,如果要访问成员变量,可以用this.变量名访问。(this的用法并不是很清楚)

10分享举报

用计算机玩游戏最简单的方法,如何制作电脑简易命令小游戏相关推荐

  1. 简单实现你想数字电脑猜的小游戏

    一实现功能 你心中想一个数字,电脑来猜,通过你输入该数大了还是小了,来重新确定范围,直到电脑猜对. 二.代码 #include<stdio.h> #include<windows.h ...

  2. 计算机课玩的小游戏怎么找,能够回味电脑课的小游戏是什么 怎么制作这两个小游戏...

    能够回味电脑课的小游戏是什么,怎么制作这两个小游戏.在我的世界里回味已经是很多人的游玩乐趣之一了,因为这个游戏超高的自由度还有各种玩法可以让我们回味童年的种种. 这些小游戏乍一看都不怎么需要技巧 简单 ...

  3. 1t硬盘怎么分区最好_网友问题解答:?最简单的方法教你电脑硬盘怎么分区?

    网友问题解答: 一分钟用最简单的方法教你电脑硬盘怎么分区? 刚买来的电脑发现电脑公司的技术员把你的电脑硬盘分区太少了!甚至就有一个分区c盘,特别是电脑公司人喜欢安装win10系统,只区一个c盘,根本不 ...

  4. 利用random 的randint 方法写一个猜数字的小游戏

    学习python第二天,编写的一款数字小游戏 昨天学习完条件语句和while循环,老师留下的作业:利用random 的randint 方法写一个猜数字的小游戏. 第一次在CSDN上记录,小白一枚.希望 ...

  5. Appgamekit制作消消乐小游戏(附代码)# 1

    Appgamekit制作消消乐小游戏(附代码)# 1 其实作者我也是刚刚才接触的Appgamekit,而且以前我是学C/C++的,所以我学的东西拿来这里就只有代码的结构思路会清晰一点了.(但是思路其实 ...

  6. Unity使用MVC架构制作牧师与魔鬼小游戏

    Unity使用MVC架构制作牧师与魔鬼小游戏 MVC架构简介 MVC概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller) ...

  7. C# 游戏制作 | ✨ 简易文字小游戏

    简易文字小游戏 在学习了一些C#的基础知识后就要做一些小东西来练练手,就比如本文所介绍的一个通过用VS中的C#写的一个简易文字小游戏 这个小游戏只由一个脚本完成,主要是用来拿C#中的一些基础知识完成, ...

  8. 4399小游戏童年的乐趣,python爬取4399全站小游戏

    大家好,我是辣条. 前言 2021年已到尾巴尖尖了. 今天照镜子,看着镜子中的自己,发现还是跟年轻时一样的"帅",看到头部的时候又发现相比半个月之前的发际线,它好像又往上移了一点点 ...

  9. 小游戏还有希望吗?TikTok上线的14款小游戏究竟长什么样?

    去年8月,罗斯基介绍过TikTok上线的H5小游戏,当时在国外几个国家开启试点只推出了9款,最新在英国的测试将游戏增加到了14款,进一步向游戏领域倾斜. 过去几年里,TikTok 在社交媒体领域的地位 ...

最新文章

  1. 数据竞赛利器XGBoost常见面试题集锦
  2. 透视鹏程.盘古:首个2000亿参数中文大模型是怎样炼成的?
  3. ADC/DAC设计常见40问
  4. windows linux 通过SSH X11Forwrding 使用图形化界面
  5. Java基础知识学习01-环境变量的配置、数据类型
  6. Java多线程编程中Future模式的详解
  7. mysql id 字段类型转换_mysql 数据类型转换
  8. java导入数据 neo4j_java-neo4j-使用neo4j剩余图数据库进行批量插...
  9. 【java基础知识】设置表格内容居中显示,表格字体大小调整,表格列宽调整
  10. 自制一个H5图片拖拽、裁剪插件(原生JS)
  11. java sqlserver 图书馆管理系统_基于JAVA+SQLServer的图书馆管理系统.doc
  12. webstorm 安装教程、初步试用、jetbrains学生认证
  13. 前端一倍图、二倍图、多倍图
  14. 服务器间文件拷贝显示busy,网站解决和优化Server is too busy的一些方法
  15. 【tensorboard】解决ValueError: Duplicate plugins for name projector
  16. 微信小程序-分享页面到微信群或者好友携带分享者身份信息
  17. 企业安全风险的来源有哪些?
  18. ctfshow七夕杯2022
  19. 分布式数据库系统之【结构】
  20. java简单搭建分布式架构

热门文章

  1. 今天,Python信息量很大!
  2. 云+X案例展 | 民生类:智领云数据中台为“健康武汉”增砖添瓦
  3. kl散度度量分布_数据挖掘比赛技巧——确定数据同分布
  4. pythonpyquery去掉br_如何在将pyquery对象转换为字符串时取消特殊字符的转义
  5. java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...
  6. css h5移动端背景铺满
  7. 计算机怎么远程桌面,电脑远程桌面如何连接 电脑远程桌面连接方法【详解】...
  8. java maven导入导出_Java +EasyUI+SpringMvc实现Excle导入导出(上)
  9. BugkuCTF-Crypto题easy_crypto
  10. 内蒙古一级计算机考试时间2015,2017年内蒙古计算机一级考试报名时间