0

スロットマシンゲームを作ろうとしています。私は他のフォーラムを検索しましたが、それらはすべて、私が使用しようとしている方法とは少し異なる方法で int を使用しているようです

私は4つのクラスを持っています。これは単純なバージョンです:

import java.util.*;
public class ExampleCode {

    public static void main(String[] args) {

        int a = 0;
        int b = 0;
        int c = 0;

        SlotLeft left = new SlotLeft();
        SlotMid mid = new SlotMid();
        SlotRight right = new SlotRight();

        left.left(a);
        mid.mid(b);
        right.right(c);

        if(a==b){
            System.out.println("text");
        }
        if(a==c){
             System.out.println("different text");
        }
        if(b==c){
            System.out.println("More text");
        }
        if(a==b&&a==c&&b==a&&b==c&&c==a&&c==b){
            System.out.println("last text");
        }
    }
}


//left class
import java.util.*;
public class SlotLeft {
    public void left(int a) {
        int 1;
    }
}
//mid class
import java.util.*;
public class SlotMid {
    public void mid(int b) {
        int b = 1;
    }
}

//right class
import java.util.*;
public class SlotRight {
    public void right(int c) {
        int c = 1;
    }        
}

ブラケットがめちゃくちゃになるかもしれませんが、それは私の関心事ではありません。3 つのクラスに特定の int を設定し、メイン クラスでその値を指定して 3 つの数値を比較できるようにしようとしています。助言がありますか?

編集:より明確にしようとしましたが、申し訳ありませんがJavaの比較的新しいものです。

4

2 に答える 2

0

各スロットにクラスの代わりに配列を使用します。

public static final int SLOT_LEFT = 0 ;
public static final int SLOT_MID = 1 ;
public static final int SLOT_RIGHT = 2 ;

int[] slots = new int[3];

スロットの値を設定します:

slots[SLOT_MID] = 1;

それをすべてクラスに統合することもできます

class SlotManager {
    public static final int SLOT_LEFT = 0 ;
    public static final int SLOT_MID = 1 ;
    public static final int SLOT_RIGHT = 2 ;

    int[] slots = new int[3];

    public void setSlot(int slotId, int value) {
       slots[slotId] = value;
    }


}
于 2013-01-17T18:42:09.907 に答える
0

メソッドに渡されたパラメーターに値を直接代入しても、呼び出し元のメソッドで値が変更されることはありません。言い換えると:

public class Test {
    public static void main(String[] args) {
        int i = 0;
        foo(i);
        System.out.println(i); // Prints "0", not "1"
    }

    public void foo(int i) {
        i = 1;
    }
}

これは0ではなくを出力し1ます。繰り返しますが、直接代入は呼び出しメソッドの値を変更しません。代わりに、次のようにします。

public class Test {
    public static void main(String[] args) {
        int i = foo();
        System.out.println(i); // Prints "1"
    }

    public int foo() {
        return 1;
    }
}
于 2013-01-17T18:44:24.943 に答える