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

2012/5/27

Problem with comparing of two lists

1
2
danpost danpost

2012/5/28

#
Instead of:
if (player.size() == game.size())
Chaos_of_90 Chaos_of_90

2012/5/28

#
ok, the game dont abort but they also dont start the next round ... my code looks now like that:
if(Greenfoot.mouseClicked(ri)) { //Prüft ob auf RedIn geklickt wurde
                //if(Greenfoot.mouseClicked(null)) { //Prüft ob auf RedIn geklickt wurde
                //if(m.getActor() == ri) { //Prüft ob auf RedIn geklickt wurde
                //if(m.getX() < 250) { //Prüft ob auf RedIn geklickt wurde
                player.add(1); //in die Player Liste wird "1" für Rot gesetzt
                setRed();
                beg = beg - 1; //beg wird um 1 reduziert, da vorher falsch addiert
                //if(player.size() == game.size()){ //prüft ob die Listengrößen übereinstimmen
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player)) //Wenn game und player Liste übereinstimmen ...
                    {
                        Spielende = false; //... bleibt das Spielende false ...
                        sequenz = runden + 1; /** Wird sequenz um 1 erhöht
                         * sorgt dafür das die anfangsschleife nicht
                         * unterbrochen und fortgeführt wird
                         */
                        beg = 0;
                        game.clear();
                        player.clear();
                    }
                    else {Spielende = true; //.. wenn nicht, tritt das Spielende ein
                    }
                }
            }
Chaos_of_90 Chaos_of_90

2012/5/28

#
I can post my whole project, maybe thats easier
danpost danpost

2012/5/28

#
Well, you do have 3 other places (for the three other colors) that the same line appears and needs changed. Change them and post back as to what happened.
Chaos_of_90 Chaos_of_90

2012/5/28

#
i changed the code of all colors:
if (m != null){

            //if(Greenfoot.mouseClicked("RedIn.class")) { //Prüft ob auf RedIn geklickt wurde
            if(Greenfoot.mouseClicked(ri)) { //Prüft ob auf RedIn geklickt wurde
                //if(Greenfoot.mouseClicked(null)) { //Prüft ob auf RedIn geklickt wurde
                //if(m.getActor() == ri) { //Prüft ob auf RedIn geklickt wurde
                //if(m.getX() < 250) { //Prüft ob auf RedIn geklickt wurde
                player.add(1); //in die Player Liste wird "1" für Rot gesetzt
                setRed();
                beg = beg - 1; //beg wird um 1 reduziert, da vorher falsch addiert
                //if(player.size() == game.size()){ //prüft ob die Listengrößen übereinstimmen
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player)) //Wenn game und player Liste übereinstimmen ...
                    {
                        Spielende = false; //... bleibt das Spielende false ...
                        sequenz = runden + 1; /** Wird sequenz um 1 erhöht
                         * sorgt dafür das die anfangsschleife nicht
                         * unterbrochen und fortgeführt wird
                         */
                        beg = 0;
                        game.clear();
                        player.clear();
                    }
                    else {Spielende = true; //.. wenn nicht, tritt das Spielende ein
                    }
                }
            }

            if(Greenfoot.mouseClicked(bi)) {
                player.add(2);
                setBlue();
                beg = beg - 1;

                //if(player.size() == game.size()){
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player) && player.size() == runden)
                    {
                        Spielende = false;
                        sequenz = runden + 1;
                        beg = 0;
                        game.clear();
                        player.clear();
                    }
                    else {Spielende = true;}
                }
            }

            if(Greenfoot.mouseClicked(yi)) {
                player.add(3);
                setYellow();
                beg = beg - 1;

                //if(player.size() == game.size()){
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player) && player.size() == runden)
                    {
                        Spielende = false;
                        sequenz = runden + 1;
                        beg = 0;
                        game.clear();
                        player.clear();
                    }
                    else { Spielende = true;}
                }
            }

            if(Greenfoot.mouseClicked(gi)) {
                player.add(0);
                setGreen();
                beg = beg - 1;

                //if(player.size() == game.size()){
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player) && player.size() == runden)
                    {
                        Spielende = false;
                        sequenz = runden + 1;
                        beg = 0;
                        game.clear();
                        player.clear();
                    }
                    else {Spielende = true;}
                }
            }
        }
danpost danpost

2012/5/28

#
Change lines 36, 55, and 74 to what you have in line 13. Also, change lines 16, 39, 58, and 77 to 'sequenz++;'.
Chaos_of_90 Chaos_of_90

2012/5/29

#
Now I have:
ende = 0;
        if(beg ==0){
            game.clear();
            player.clear();
        }

        if (beg < sequenz) //Beginn() wird so oft wie die Sequenz ausgeführt ausgeführt
        {
            Beginn();
        }

        m = Greenfoot.getMouseInfo();
        if (m != null){

            //if(Greenfoot.mouseClicked("RedIn.class")) { //Prüft ob auf RedIn geklickt wurde
            if(Greenfoot.mouseClicked(ri)) { //Prüft ob auf RedIn geklickt wurde
                //if(Greenfoot.mouseClicked(null)) { //Prüft ob auf RedIn geklickt wurde
                //if(m.getActor() == ri) { //Prüft ob auf RedIn geklickt wurde
                //if(m.getX() < 250) { //Prüft ob auf RedIn geklickt wurde
                player.add(1); //in die Player Liste wird "1" für Rot gesetzt
                setRed();
                beg = beg - 1; //beg wird um 1 reduziert, da vorher falsch addiert
                //if(player.size() == game.size()){ //prüft ob die Listengrößen übereinstimmen
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player)) //Wenn game und player Liste übereinstimmen ...
                    {
                        Spielende = false; //... bleibt das Spielende false ...
                        //sequenz = runden + 1; 
                        sequenz++;  /** Wird sequenz um 1 erhöht
                                    * sorgt dafür das die anfangsschleife nicht
                                    * unterbrochen und fortgeführt wird
                                    */
                        beg = 0;
                    }
                    else {Spielende = true; //.. wenn nicht, tritt das Spielende ein
                    }
                }
            }

            if(Greenfoot.mouseClicked(bi)) {
                player.add(2);
                setBlue();
                beg = beg - 1;

                //if(player.size() == game.size()){
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player)) //&& player.size() == runden)
                    {
                        Spielende = false;
                        //sequenz = runden + 1;
                        sequenz++;
                        beg = 0;
                    }
                    else {Spielende = true;}
                }
            }

            if(Greenfoot.mouseClicked(yi)) {
                player.add(3);
                setYellow();
                beg = beg - 1;

                //if(player.size() == game.size()){
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player))// && player.size() == runden)
                    {
                        Spielende = false;
                        //sequenz = runden + 1;
                        sequenz++;
                        beg = 0;
                    }
                    else { Spielende = true;}
                }
            }

            if(Greenfoot.mouseClicked(gi)) {
                player.add(0);
                setGreen();
                beg = beg - 1;

                //if(player.size() == game.size()){
                if (sequenz == player.size() && player.size() == game.size()) {
                    if(game.equals (player)) //&& player.size() == runden)
                    {
                        Spielende = false;
                        //sequenz = runden + 1;
                        sequenz++;
                        beg = 0;
                    }
                    else {Spielende = true;}
                }
            }
        }

        if (Spielende == true)
        {
            ende = 1;
            setRed();
            setBlue();
            setYellow();
            setGreen();
        }
but the second round still wont start ...
You need to login to post a reply.
1
2