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;
    }        
}

括号可能弄乱了,但这不是我关心的问题。我正在尝试在三个类中设置某些 int,然后能够在主类中为它们提供该值并比较三个数字。有什么建议么?

编辑:试图使它更明确,抱歉相对较新的Java。

4

2 回答 2

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 回答
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 回答