This site requires JavaScript, please enable it in your browser!
Greenfoot back
LegendofLife
LegendofLife wrote ...

2017/7/2

How to get the value of a variable, but the variable is used in a sub method?

LegendofLife LegendofLife

2017/7/2

#
Hallo, I need help with getting a value of the variable "S"
int S;
//some code
if(NachLinks==false && NachOben==false && NachUnten==false && NachRechts==false )
        {
            int N;
            N=Greenfoot.getRandomNumber(4);
            if(N==0)
            {
                S=1; // I need that Value
            }
            if(N==1)
            {
                S=2;
            }
            if(N==2)
            {
                S=3;
            }
            if(N==3)
            {
                 S=4;
            }
        }
        if(NachOben==false && S==3 // But here the variable is not initialized (error))
        {
            setRotation(90);
            move(-1);
        }
Please help fast I need it tomorrow Thanks
danpost danpost

2017/7/2

#
If there is a default or pre-defined value you can give to S, then set S to it in line 1. If not use an Integer type instead of an int type for S so that you can check for a null value before trying to check what value it might be.
LegendofLife LegendofLife

2017/7/2

#
At first there is no pre-defined value and I didn“t worked so far with Integer types. So how to use that?? I need just the last value written of S
LegendofLife LegendofLife

2017/7/2

#
ps. that method is like a filter
int S;
        if(NachRechts==false)
        {
            S=1;
        }
        if(NachLinks==false)
        {
            S=2;
        }
        if(NachOben==false)
        {
            S=1;
        }
        if(NachUnten==false)
        {
            S=4;
        }
        
        if(NachRechts==false && NachLinks==false)
        {   
            int N;
            N=Greenfoot.getRandomNumber(2);
            if(N==1)
            {
                S=2;
            }
            else
            {
                S=1;
            }
        }
        if(NachRechts==false &&NachOben==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(2);
            if(N==1)
            {
                S=3;
            }
            else
            {
                S=1;
            }
        }
        if(NachRechts==false && NachUnten==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(2);
            if(N==1)
            {
                S=4;
            }
            else
            {
                S=1;
            }
        }
        if(NachLinks==false&&NachOben==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(2);
            if(N==1)
            {
                S=3;
            }
            else
            {
                S=2;
            }
        }
        if(NachLinks==false&&NachUnten==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(2);
            if(N==1)
            {
                S=4;
            }
            else
            {
                S=2;
            }
        }
        if(NachOben==false&&NachUnten==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(2);
            if(N==1)
            {
                S=4;
            }
            else
            {
                S=3;
            }
        }
        
        
        if(NachRechts==false && NachLinks==false &&NachOben==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(3);
            if(N==0)
            {
                S=1;
            }
            if(N==1)
            {
                S=2;
            }
            if(N==2)
            {
                S=3;
            }
        }
        if(NachRechts==false && NachLinks==false && NachUnten==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(3);
            if(N==0)
            {
                S=1;
            }
            if(N==1)
            {
                S=2;
            }
            if(N==2)
            {
                S=4;
            }
        }
        if(NachRechts==false && NachOben==false && NachUnten==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(3);
            if(N==0)
            {
                S=1;
            }
            if(N==1)
            {
                S=3;
            }
            if(N==2)
            {
                S=4;
            }
        }
        if(NachLinks==false && NachOben==false && NachUnten==false)
        {
            int N;
            N=Greenfoot.getRandomNumber(3);
            if(N==0)
            {
                S=2;
            }
            if(N==1)
            {
                S=3;
            }
            if(N==2)
            {
                S=4;
            }
        }
        if(NachLinks==false && NachOben==false && NachUnten==false && NachRechts==false )
        {
            int N;
            N=Greenfoot.getRandomNumber(4);
            if(N==0)
            {
                S=1;
            }
            if(N==1)
            {
                S=2;
            }
            if(N==2)
            {
                S=3;
            }
            if(N==3)
            {
                 S=4;
            }
        }
        if(NachOben==false && S==3)
        {
            setRotation(90);
            move(-1);
        }
        if(NachLinks==false&& S==2)
        {
            setRotation(0);
            move(-1);
        }
        if(NachUnten==false&& S==4)
        {
            setRotation(270);
            move(-1);
        }
        if(NachRechts==false&& S==1)
        {
            setRotation(180);
            move(-1);
        }
danpost danpost

2017/7/2

#
After a second look, it seems you can just set S to zero at line 1:
int S = 0;
since the action values are in the set { 1, 2, 3, 4 }.
LegendofLife LegendofLife

2017/7/3

#
Thank you very much it worked
You need to login to post a reply.