簡體   English   中英

在Java中傳輸靜態類變量

[英]Transferring static class variables in java

我的問題是,當我嘗試使用Monster方法時,該方法並沒有真正起作用,因為我希望它起作用,而似乎最錯誤的是items變量。 在Monster方法中擲骰子也存在一個問題,因為當您扮演1角色將殺死您時,什么也不會發生。 整個代碼非常大,因此只包含所涉及的部分。 可以在以下位置找到整個代碼的鏈接: http : //justpaste.it/marcs這是由2個項目觸發Monster方法時發生的情況:

//Du behöver hitta 2 objekt för att slåss mot bossen

這條線不應該出現。

//Du möter en stor fet boss! Det är Slavechan!

//Om du slår en 1:a så trampar han på dig.
//Du slog 1

在這里我應該已經死了

//Du gör dig redo att slåss mot Slavechan.

//Slavechan dör från en överdos av ris.
//Du tar allt ris han hade och springer iväg mot solnedgången.
//Du Springer in i en osynlig synlig dörr och dör. 


public class Spel
{
static Rum rum5;
static Rum current;
static Rum rum12 = new Rum("Du hittar ingenting. " , "En väg. ");
static boolean items = false;
public static void main(String[] args) {
Rum rum13 = new Rum("Du Springer in i en osynlig synlig dörr och dör. ", "Ett slott. ");

rum13.boss = new monster();

    }

rum2

if (current.item1 != null){
        current.visited = true;
        }

rum5

  if (current.item2 != null){
        current.visited = true;
        }

rum9

   if (current.item3 != null){
        current.visited = true;
        }
    boolean items = ((rum9.visited==true) || (rum2.visited==true) && (rum5.visited==true));

整個怪物代碼

public class monster {

public void rulla1(){
if (Spel.items == false){
System.out.println("Du behöver hitta 2 objekt för att slåss mot bossen");
Spel.current = Spel.rum12;
}else
                try {
            Thread.sleep(2000);
            } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
            }
System.out.println("Du möter en stor fet boss! Det är Slavechan!");
System.out.println(" ");
                try {
            Thread.sleep(2000);
            } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
            }
 System.out.println("Om du slår en 1:a så trampar han på dig.");
 int rull1 = (int)(Math.random() * ((12 - 1) + 1));
 System.out.println("Du slog " +rull1);
 if (rull1 == 1){
 Spel.current=null;
 }else
                    try {
            Thread.sleep(2000);
            } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
            }
 System.out.println("Du gör dig redo att slåss mot Slavechan.");
 System.out.println(" ");
            try {
            Thread.sleep(1000);
            } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
            }
System.out.println("Slavechan dör från en överdos av ris.");
            try {
            Thread.sleep(1000);
            } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
            }
 System.out.println("Du tar allt ris han hade och springer iväg mot solnedgången.");
                try {
            Thread.sleep(1000);
            } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
            }
 Spel.current = null;
 }
 }

對不起,瑞典的評論

我不會講代碼的質量,但這是一個快速解決方法,實際上可以使玩家有機會玩游戲直到游戲結束。

1)在Spel類中初始化靜態rum5 ,因為您在trap中引用了它:

static Rum rum5 = new Rum("Du hittade en flaska med en vätska i. ", "En grotta. ");

2)在main方法中刪除局部變量:

Rum rum5 = new Rum("Du hittade en flaska med en vätska i. ", "En grotta. ");

3)從項目中刪除布爾部分boolean items = ...應該是items = ...

3)我的演奏方式:

嘗試進入9號房間(因為一旦打到6號房間,這將設置items = true),現在先進入8號房間,然后進入7號房間,希望您落入陷阱,這似乎是進入5號房間的唯一方法從5號房間轉到6號房間(由於您訪問了9號房間,因此將設置項目= true),向右播放6號房間,您將轉到5號房間,到達13號房間

4)備注:

我看不到如何設置rum2.visited = true,因為它沒有任何物品,這就是為什么我訪問9號房間以獲取items = true而不是2號和5號房間的原因

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM