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

满意答案

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;第三方微博客户端像雨后春笋…

html高度为零,html中父div高度为0的原因

问题&#xff1a;在chrome中看到父div高度为0&#xff0c;但里面明明有内容。原因&#xff1a;简单的讲原因就是子元素如果设了float属性&#xff0c;这些子元素就脱离了父div容器的控制&#xff0c;所以父容器认为里面没内容&#xff0c;高度自然变成了0.解决办法&#xff1a;…

算法训练营Day23

#Java #回溯 #组合问题 开源学习资料 Feeling and experiences&#xff1a; 组合总和III&#xff1a;力扣题目链接 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。…

matlab调用python_从MATLAB调用Python函数

尝试使用此MEX文件从MATLAB实际调用Python&#xff0c;而不是像其他人建议的那样。它提供了相当不错的集成&#xff1a;http : //algoholic.eu/matpy/ 您可以轻松地执行以下操作&#xff1a; [X,Y]meshgrid(-10:0.1:10,-10:0.1:10); Zsin(X)cos(Y); py_export(X,Y,Z) stmt spr…

macbook配置java环境变量_配置mac上Java环境变量

从ubuntu上转到mac上来做开发&#xff0c;一切配置都要重新开始1. 下载jrehttp://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html选择合适的版本和安装包2. 一键安装3. 查看是否安装成功scarlettdeMacBook-Air:~ scarlettxu$ java -versionjava vers…

地图 插件 html 经纬度,如何往地图位置(经纬度)选择插件页面传递经纬度

查看了一下代码&#xff0c;发现了解决办法&#xff1b;在edit.html中&#xff1a;{:__(Longitude)}:{:__(Latitude)}:在对应的js代码中&#xff1a;edit: function () {$("[data-toggleaddresspicker]").data("lat-id",c-latitude);$("[data-togglea…

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

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

idea 自动生成mybaits_IDEA利用mybatis-generator自动生成dao和mapper

pom.xml配置1 2 1.83 1.3.74 5.1.465 1.1.96 1.3.27 89 10 11 org.springframework.boot12 spring-boot-starter-web13 1415 16 org.springframework.boot17 spring-boot-starter-test18 test19 20 21 org.junit.vintage22 junit-vintage-engine23 24 25 26 27 28 org.mybatis.…

计算机专业个人工作总结,年底个人工作总结计算机专业材料

《年底个人工作总结计算机专业材料.doc》由会员分享&#xff0c;可免费在线阅读全文&#xff0c;更多与《年底个人工作总结计算机专业材料》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、定的进步,但我深知自己还存在些缺点和不足,理论基础还不扎实,业务知识…

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

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

乐高机器人骨奥_乐高机器人这个大坑,为啥大家都拽着孩子往里跳?

上学期我们在美国经常凑一起玩的几家家长给自己挖了个大坑&#xff0c;因为孩子们平时都很喜欢玩乐高积木&#xff0c;而且年龄也差不多大刚升了四年级&#xff0c; 感觉是时候可以整点儿“大事”了&#xff0c;于是把他们动员起来组成了一个乐高机器人团队&#xff0c;还任命我…

微型计算机内存主要,微型计算机的内存容量主要指 ( ) 的容量 (7.0分)

【判断题】青藏高压又称南亚高压,是暖季出现在亚洲大陆南部青藏高原上空对流层顶部的大型暖高压系统。【问答题】电路如图 10 所示,已知: u i1 2V,u i2 1V ,计算电路中 u o1 、u o2 、u o3 、u o 的值。【问答题】您认为大学生阶段的学习生活主要由哪几个部分构成?【判断题】发…

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;甚至想写一辈子代码。巧的的…

剑指offer python实现_剑指Offer第2题详解(附Python、Java代码实现)

题目描述 请实现一个函数&#xff0c;将一个字符串中的每个空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 这个题较为简单 1. Python实现 1.1 使用replace直接实现def replaceSpace(s): # return s.replace(" &…

挖掘城市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 电流传感…