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

满意答案

00e27ab806e4881f8254fe7ae8741834.png

sylvia1017

2019.01.20

00e27ab806e4881f8254fe7ae8741834.png

采纳率: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分享举报

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pandas filter_数据分析之Pandas操作(2)

接着数据分析之Pandas操作(1)的介绍&#xff0c;本次介绍在实际应用场景中几个常用的函数。还是以titanic生存数据为例&#xff0c;本次需要导入pandas 、numpy 、scipy三个工具包。import pandas as pdimport numpy as npfrom scipy.stats import zscoretrain_data pd.read_c…

ios 隐藏app的插件_等了5年终于复活,iPhone上最干净好用的微博App

来&#xff0c;先跟小虎妞一起回忆下2013年的微博客户端。(图源水印)那时候&#xff0c;首页还是按时间顺序来的&#xff0c;也没有赴美产子、老爷夫人知道错了的广告。后来&#xff0c;随着微博一次次改版&#xff0c;客户端越来越臃肿&#xff0c;第三方微博客户端像雨后春笋…

python调用node_在node中执行python脚本

Node.js多进程基础 Node.js 是以单线程的模式运行的&#xff0c;但它使用的是事件驱动来处理并发。这样有助于我们在多核 cpu 的系统上创建多个子进程&#xff0c;从而提高性能。 每个子进程总是带有三个流对象&#xff1a;child.stdin, child.stdout 和child.stderr。他们可能…

docker配置 nacos_Nacos - 阿里开源配置中心

这里是喵了个咪的后端技术分享&#xff0c;觉得写的不错。点个赞&#xff0c;转发一下&#xff0c;关注一下。本文载于个人原创技术博客http://w-blog.cn&#xff0c;转载请注明出处&#xff0c;非法转载抄袭将追究其责任。配置中心相信大家都有听过&#xff0c;zookeeper、apo…

jdbc获取mysql第二行表信息_【奇技淫巧】MySQL另类方法获取元数据信息

问&#xff1a;在进行MySQL注入时&#xff0c;我们通常是通过information_schema元数据来获取表名、字段名信息&#xff0c;从而读取相应数据。但是如果waf或其它过滤了information_schema关键字&#xff0c;那么还有什么方法可以读取元数据信息呢&#xff1f;答&#xff1a;从…

vscode使用sass_推荐7 个 极好用的VS Code 插件

你知道将高级开发人员与普通开发人员区分的条件是什么吗&#xff1f;没错&#xff0c;是所使用的工具&#xff0c;俗话说&#xff0c;"工欲善其事必先利其器"&#xff0c; 拥有正确的工作工具可以让开发人员的生活变得更加轻松&#xff0c;甚至想写一辈子代码。巧的的…

挖掘城市ip_不断挖掘IP价值,紧抓乐园经济新机遇!

当一个国家的人均GDP达到5,000美元时&#xff0c;其旅游度假经济将进入成熟阶段。按照2018年末人口总数计算&#xff0c;我国人均GDP接近1万美元&#xff0c;近年来&#xff0c;越来越多的主题乐园落户中国。乐园的选址、运营有颇多讲究。对主题乐园而言&#xff0c;依托大中型…

pixel和毫米怎么换算_赶紧收藏!小学阶段所有公式、单位换算、数量关系

小学阶段会接触到很多公式&#xff0c;这些公式都是学习中必须要记忆的&#xff0c;笔者特意总结了小学一到六年级所有的公式、单位换算、数量关系、难题知识。孩子只要掌握了这四大知识重点&#xff0c;考试轻轻松松拿高分&#xff01;一、数量关系计算公式1、单价数量&#x…

相册权限_手机相册太乱?1分钟教你快速管理自己的照片,非常好用!

喜欢拍照的朋友们是不是有这样一个烦恼&#xff0c;那就是手机里拍了很多照片&#xff0c;当你想找某一张照片时你得在手机里翻半天&#xff0c;费时费力&#xff0c;那么今天我就来给大家解决这个烦恼&#xff0c;手机相册是手机中必不可少的&#xff0c;那当我们手机照片太多…

学校计算机数据采集处理系统,中学化学计算机数据采集处理系统实验室装备

中学化学计算机数据采集处理系统实验室装备配置方案一、基础型配置(31套&#xff1a;教师1套&#xff0c;学生30套(2学生/组&#xff0c;以每班60学生分组))&#xff0c;每套配置标准如下&#xff1a;序号 名称 型号1 数据采集器 SJ-SJCJQ2 南师大分析软件 NJSFDX-V33 电流传感…

dplayer js控制 自动全屏_Qt编写安防视频监控系统18-云台控制

一、前言云台控制是视频监控系统中必备的一个功能&#xff0c;对球机进行上下左右的移动&#xff0c;还有焦距的控制&#xff0c;其实核心就是控制XYZ三个坐标轴&#xff0c;为了开发这个模块&#xff0c;特意研究了各种云台控制的方法和开源库比如soap&#xff0c;有些厂家使用…

css不换行属性_那些不常见,但却非常实用的css属性(整理不易)

1、-webkit-line-clamp可以把 块容器 中的内容限制为指定的行数。并且在超过行数后&#xff0c;在最后一行显示"..."这是正常的展示display: -webkit-box; /*值必须为-webkit-box或者-webkit-inline-box*/ -webkit-box-orient: vertical; /*值必须为vertical*/ -webk…

2020身高体重标准表儿童_男女孩最新身高标准表,你家孩子达标了吗?(附增高秘籍)...

现在大家的生活水平提高了&#xff0c;和很多年前相比&#xff0c;孩子们的平均身高提高了不少&#xff0c;孩子能长成一个高个子&#xff0c;也是很多家长非常关注的事情。其实&#xff0c;要想孩子长高&#xff0c;除了营养要跟上以外&#xff0c;充足的睡眠、体重不要太胖都…

java 正则匹配_正则表达式真的很强大,可惜你不会写

专注于Java领域优质技术&#xff0c;欢迎关注本文旨在用最通俗的语言讲述最枯燥的基本知识文章提纲&#xff1a;元字符重复限定符分组转义条件或区间正则表达式在几乎所有语言中都可以使用&#xff0c;无论是前端的JavaScript、还是后端的Java、c#。他们都提供相应的接口/函数支…

石板切割问题c语言_广场地面铺装 仿古石 青石板 板岩 切割岩 冰裂纹压印混凝土地坪...

广场地面铺装 仿古石 青石板 板岩 切割岩 冰裂纹压印混凝土地坪广场地面铺装 仿古石 青石板 板岩 切割岩 冰裂纹压印混凝土地坪青石板是由青色的沉积岩劈制或者切割而成的板材&#xff0c;是天然板岩的一种&#xff0c;主要成分为石灰石、白云石。其比重约2.2~2.7克/立方厘米&a…

python分析工具有哪些_常用Python数据分析工具汇总

Python是数据处理常用工具&#xff0c;可以处理数量级从几K至几T不等的数据&#xff0c;具有较高的开发效率和可维护性&#xff0c;还具有较强的通用性和跨平台性。Python可用于数据分析&#xff0c;但其单纯依赖Python本身自带的库进行数据分析还是具有一定的局限性的&#xf…

高并发编程_高并发编程系列:全面剖析Java并发编程之AQS的核心实现

在并发编程领域&#xff0c;AQS号称是并发同步组件的基石&#xff0c;很多并发同步组件都是基于AQS实现&#xff0c;所以想掌握好高并发编程&#xff0c;你需要掌握好AQS。本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程&#xff0c;让你对AQS的整体设计有…

计算机考试设计会议邀请函,计算机二级常见考点之使用合并技术制作邀请函

计算机01:37来自LearningYard学苑三月份的计算机二级考试即将到来&#xff0c;不知道各位童鞋准备得怎么样了呢&#xff0c;把握了多少。今天小编就给讲讲计算机二级MS office中常见的考核内容——使用合并技术制作邀请函。The computer second-level exam in March is coming …

添加一列_办公软件操作技巧023:如何给excel数据批量添加单位

在日常工作中&#xff0c;我们使用excel编辑电子表格时&#xff0c;经常需要给数据添加单位&#xff0c;单位是编制excel表格常用的元素&#xff0c;有时我们需要给一列数字都添加上单位&#xff0c;比如长度多少米&#xff0c;金额多少元&#xff0c;货物多少公斤等等&#xf…

html代码大全(很全的)_HTML教学(1):写一个属于自己的网址大全(新手版)

超文本标记语言&#xff08;Hyper Text Markup Language&#xff09;&#xff0c;缩写为HTML&#xff0c;标准通用标记语言下的一个应用。HTML不是一种编程语言&#xff0c;而是一种标记语言 &#xff08;markup language&#xff09;只要你打开浏览器&#xff0c;第一眼看到的…