用計算機玩游戲最簡單的方法,如何制作電腦簡易命令小游戲

滿意答案

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.pswp.cn/news/529069.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529069.shtml
英文地址,請注明出處:http://en.pswp.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 電流傳感…