Игра на память, присваивающая изображения (greenfoot) - PullRequest
0 голосов
/ 24 октября 2018
int one = 0;
    int two = 0;
    int three = 0;
    int four = 0;
    int five = 0;
    int six = 0;
    int seven = 0;
    int eight = 0;
    for(int i = 0;i <= MyWorld.PICTURE_COUNT*2;i++){
        int n = Greenfoot.getRandomNumber(MyWorld.PICTURE_COUNT) + 1;
        if(n == 1){
            if(one <= 1){
                setImage("1.png");
                one++;
            }
            else{
                n++;
            }
        }
        if(n == 2){
            if(two <= 1){
                setImage("2.png");
                two++;
            }
            else{
                n++;
            }
        }if(n == 3){
            if(three <= 1){
                setImage("3.png");
                three++;
            }
            else{
                n++;
            }
        }if(n == 4){
            if(four <= 1){
                setImage("4.png");
                four++;
            }
            else{
                n++;
            }
        }if(n == 5){
            if(five <= 1){
                setImage("5.png");
                five++;
            }
            else{
                n++;
            }
        }if(n == 6){
            if(six <= 1){
                setImage("6.png");
                six++;
            }
            else{
                n++;
            }
        }if(n == 7){
            if(seven <= 1){
                setImage("7.png");
                seven++;
            }
            else{
                n++;
            }
        }if(n == 8){
            if(eight <= 1){
                setImage("8.png");
                eight++;
            }
            else{
                n=1;
            }
        }

Целые числа (одно, два и т. Д.) Предназначены для того, чтобы гарантировать, что при наличии двух одинаковых изображений никакие другие изображения не должны появляться, потому что именно так работает память.Однако, когда я тестирую это, я регулярно получаю три одинаковых изображения.

Я понятия не имею, почему это происходит, это кажется невозможным, поскольку не следует даже проверять оператор if.У кого-нибудь есть советы?

...