# Mensch ärgere dich nicht



## Len (13. Feb 2015)

Hey Leute, ich bin gerade dabei ein Mensch ärgere dich nicht- Spiel zu programmieren. Das Spielbrett habe ich als zweidimensionales Array aufgebaut und bin nun dabei die nötigen 58 Felder als ein weiters eindimensionales Array "hatFeldzuweisung" zu programmieren, leider funktioniert der Befehl "hatFeldzuweisung.setzeInhalt(0,0)" nicht, kann mir jemand von euch helfen, warum der 2 integer nicht annehmen will? Danke


----------



## Tobse (13. Feb 2015)

Es tut mir schrecklich leid, meine Glaskugel ist gestern kaputt gegangen. Deshalb kann ich leider nicht wissen, wie dein Code aussieht und warum er nicht tut, was du willst.


----------



## Gucky (14. Feb 2015)

Wir sind zwar fast Götter aber eben nur fast. Wahrscheinlich hast du im Methodenkopf nur ein int angegeben aber wie meinst du, können wir das ohne Code herausfinden?


----------



## Len (14. Feb 2015)

Ich bin doch zu blöd, da hab ich glatt vergessen den Code dazuzuschreiben xD, kommt sofort:

```
import sum.komponenten.*;
import sum.werkzeuge.*;
import sum.ereignis.*;

public class Spielfiguren
{
    // Atribute
    private int zH, zV,zNummer,zFarbe;
    
    
    //Objekte
    private Buntstift hatStift;
    public Spielfeld[][] hatSpielfeld;
    public int[] hatFeldzuweisung;
    public Figur hatFigur;
    private boolean ecke;

    
    /**
     * Konstruktor fuer Objekte der Klasse Spielfeld
     */
    public Spielfiguren(int pFarbe, int pNummer)
    {
        hatFigur = new Figur();
        hatStift = new Buntstift(); 
        hatFeldzuweisung = new  int[168];
        zFarbe=pFarbe;
        
   
        
        if(pFarbe == 1)
        {
            switch (pNummer)
            {
                case 1: hatFigur.zeichne(250+0*40,180+0*40,15,1,1);zH=0;zV=0;zNummer=1;break;
                case 2: hatFigur.zeichne(250+1*40,180+0*40,15,1,2);zH=1;zV=0;zNummer=2;break;
                case 3: hatFigur.zeichne(250+0*40,180+1*40,15,1,3);zH=0;zV=1;zNummer=3;break;
                case 4: hatFigur.zeichne(250+1*40,180+1*40,15,1,4);zH=1;zV=1;zNummer=4;break;
            }           
        }
        else if(pFarbe == 2)
        {
            switch (pNummer)
            {
                case 1: hatFigur.zeichne(250+0*40,180+9*40,15,2,5);zH=0;zV=9;zNummer=5;break;
                case 2: hatFigur.zeichne(250+1*40,180+9*40,15,2,6);zH=1;zV=9;zNummer=6;break;
                case 3: hatFigur.zeichne(250+0*40,180+10*40,15,2,7);zH=0;zV=10;zNummer=7;break;
                case 4: hatFigur.zeichne(250+1*40,180+10*40,15,2,8);zH=1;zV=10;zNummer=8;break;
            }
        }
        else if(pFarbe == 3)
        {
            switch (pNummer)
            {
                case 1: hatFigur.zeichne(250+9*40,180+0*40,15,3,9);zH=9;zV=0;zNummer=9;break;
                case 2: hatFigur.zeichne(250+10*40,180+0*40,15,3,10);zH=10;zV=0;zNummer=10;break;
                case 3: hatFigur.zeichne(250+9*40,180+1*40,15,3,11);zH=9;zV=1;zNummer=11;break;
                case 4: hatFigur.zeichne(250+10*40,180+1*40,15,3,12);zH=10;zV=1;zNummer=12;break;
            }
        }
        else if(pFarbe == 4)
        {
            switch (pNummer)
            {
                case 1: hatFigur.zeichne(250+9*40,180+9*40,15,4,13);zH=9;zV=9;zNummer=13;break;
                case 2: hatFigur.zeichne(250+10*40,180+9*40,15,4,14);zH=10;zV=9;zNummer=14;break;
                case 3: hatFigur.zeichne(250+9*40,180+10*40,15,4,15);zH=9;zV=10;zNummer=15;break;
                case 4: hatFigur.zeichne(250+10*40,180+10*40,15,4,16);zH=10;zV=10;zNummer=16;break;
            }
        }
        
    }

    //Dienste      
    public void fuelleArray()   
    {                            // 1. Parameter: Arraylistennummer 2.Parameter: Inhalt des Arrays
        hatFeldzuweisung.setzeInhalt(  0, 0);  // Inhalt: Feldnummer
        hatFeldzuweisung.setzeInhalt(  1, 0);  // Inhalt: zH
        hatFeldzuweisung.setzeInhalt(  2, 4);  // Inhalt: ZV
        hatFeldzuweisung.setzeInhalt(  3, 1);
        hatFeldzuweisung.setzeInhalt(  4, 1);
        hatFeldzuweisung.setzeInhalt(  5, 4);
        hatFeldzuweisung.setzeInhalt(  6, 2);
        hatFeldzuweisung.setzeInhalt(  7, 2);
        hatFeldzuweisung.setzeInhalt(  8, 4);
        hatFeldzuweisung.setzeInhalt(  9, 3);
        hatFeldzuweisung.setzeInhalt( 10, 3);
        hatFeldzuweisung.setzeInhalt( 11, 4);
        hatFeldzuweisung.setzeInhalt( 12, 4);
        hatFeldzuweisung.setzeInhalt( 13, 4);
        hatFeldzuweisung.setzeInhalt( 14, 4);
        hatFeldzuweisung.setzeInhalt( 15, 5);
        hatFeldzuweisung.setzeInhalt( 16, 4);
        hatFeldzuweisung.setzeInhalt( 17, 3);
        hatFeldzuweisung.setzeInhalt( 18, 6);
        hatFeldzuweisung.setzeInhalt( 19, 4);
        hatFeldzuweisung.setzeInhalt( 20, 2);
        hatFeldzuweisung.setzeInhalt( 21, 7);
        hatFeldzuweisung.setzeInhalt( 22, 4);
        hatFeldzuweisung.setzeInhalt( 23, 1);
        hatFeldzuweisung.setzeInhalt( 24, 8);
        hatFeldzuweisung.setzeInhalt( 25, 4);
        hatFeldzuweisung.setzeInhalt( 26, 0);
        hatFeldzuweisung.setzeInhalt( 27, 9);
        hatFeldzuweisung.setzeInhalt( 28, 5);
        hatFeldzuweisung.setzeInhalt( 29, 0);
        hatFeldzuweisung.setzeInhalt( 30,10);
        hatFeldzuweisung.setzeInhalt( 31, 6);
        hatFeldzuweisung.setzeInhalt( 32, 0);
        hatFeldzuweisung.setzeInhalt( 33,11);
        hatFeldzuweisung.setzeInhalt( 34, 6);
        hatFeldzuweisung.setzeInhalt( 35, 1);
        hatFeldzuweisung.setzeInhalt( 36,12);
        hatFeldzuweisung.setzeInhalt( 37, 6);
        hatFeldzuweisung.setzeInhalt( 38, 2);
        hatFeldzuweisung.setzeInhalt( 39,13);
        hatFeldzuweisung.setzeInhalt( 40, 6);
        hatFeldzuweisung.setzeInhalt( 41, 3);
        hatFeldzuweisung.setzeInhalt( 42,14);
        hatFeldzuweisung.setzeInhalt( 43, 6);
        hatFeldzuweisung.setzeInhalt( 44, 4);
        hatFeldzuweisung.setzeInhalt( 45,15);
        hatFeldzuweisung.setzeInhalt( 46, 7);
        hatFeldzuweisung.setzeInhalt( 47, 4);
        hatFeldzuweisung.setzeInhalt( 48,16);
        hatFeldzuweisung.setzeInhalt( 49, 8);
        hatFeldzuweisung.setzeInhalt( 50, 4);
        hatFeldzuweisung.setzeInhalt( 51,17);
        hatFeldzuweisung.setzeInhalt( 52, 9);
        hatFeldzuweisung.setzeInhalt( 53, 4);
        hatFeldzuweisung.setzeInhalt( 54,18);
        hatFeldzuweisung.setzeInhalt( 55,10);
        hatFeldzuweisung.setzeInhalt( 56, 4);
        hatFeldzuweisung.setzeInhalt( 57,19);
        hatFeldzuweisung.setzeInhalt( 58,10);
        hatFeldzuweisung.setzeInhalt( 59, 5);
        hatFeldzuweisung.setzeInhalt( 60,20);
        hatFeldzuweisung.setzeInhalt( 61,10);
        hatFeldzuweisung.setzeInhalt( 62, 6);
        hatFeldzuweisung.setzeInhalt( 63,21);
        hatFeldzuweisung.setzeInhalt( 64, 9);
        hatFeldzuweisung.setzeInhalt( 65, 6);
        hatFeldzuweisung.setzeInhalt( 66,22);
        hatFeldzuweisung.setzeInhalt( 67, 8);
        hatFeldzuweisung.setzeInhalt( 68, 6);
        hatFeldzuweisung.setzeInhalt( 69,23);
        hatFeldzuweisung.setzeInhalt( 70, 7);
        hatFeldzuweisung.setzeInhalt( 71, 6);
        hatFeldzuweisung.setzeInhalt( 72,24);
        hatFeldzuweisung.setzeInhalt( 73, 6);
        hatFeldzuweisung.setzeInhalt( 74, 6);
        hatFeldzuweisung.setzeInhalt( 75,25);
        hatFeldzuweisung.setzeInhalt( 76, 6);
        hatFeldzuweisung.setzeInhalt( 77, 7);
        hatFeldzuweisung.setzeInhalt( 78,26);
        hatFeldzuweisung.setzeInhalt( 79, 6);
        hatFeldzuweisung.setzeInhalt( 80, 8);
        hatFeldzuweisung.setzeInhalt( 81,27);
        hatFeldzuweisung.setzeInhalt( 82, 6);
        hatFeldzuweisung.setzeInhalt( 83, 9);
        hatFeldzuweisung.setzeInhalt( 84,28);
        hatFeldzuweisung.setzeInhalt( 85, 6);
        hatFeldzuweisung.setzeInhalt( 86,10);
        hatFeldzuweisung.setzeInhalt( 87,29);
        hatFeldzuweisung.setzeInhalt( 88, 5);
        hatFeldzuweisung.setzeInhalt( 89,10);
        hatFeldzuweisung.setzeInhalt( 90,30);
        hatFeldzuweisung.setzeInhalt( 91, 4);
        hatFeldzuweisung.setzeInhalt( 92,10);
        hatFeldzuweisung.setzeInhalt( 93,31);
        hatFeldzuweisung.setzeInhalt( 94, 4);
        hatFeldzuweisung.setzeInhalt( 95, 9);
        hatFeldzuweisung.setzeInhalt( 96,32);
        hatFeldzuweisung.setzeInhalt( 97, 4);
        hatFeldzuweisung.setzeInhalt( 98, 8);
        hatFeldzuweisung.setzeInhalt( 99,33);
        hatFeldzuweisung.setzeInhalt(100, 4);
        hatFeldzuweisung.setzeInhalt(101, 7);
        hatFeldzuweisung.setzeInhalt(102,34);
        hatFeldzuweisung.setzeInhalt(103, 4);
        hatFeldzuweisung.setzeInhalt(104, 6);
        hatFeldzuweisung.setzeInhalt(105,35);
        hatFeldzuweisung.setzeInhalt(106, 3);
        hatFeldzuweisung.setzeInhalt(107, 6);
        hatFeldzuweisung.setzeInhalt(108,36);
        hatFeldzuweisung.setzeInhalt(109, 2);
        hatFeldzuweisung.setzeInhalt(110, 6);
        hatFeldzuweisung.setzeInhalt(111,37);
        hatFeldzuweisung.setzeInhalt(112, 1);
        hatFeldzuweisung.setzeInhalt(113, 6);
        hatFeldzuweisung.setzeInhalt(114,38);
        hatFeldzuweisung.setzeInhalt(115, 0);
        hatFeldzuweisung.setzeInhalt(116, 6);
        hatFeldzuweisung.setzeInhalt(117,39);
        hatFeldzuweisung.setzeInhalt(118, 0);
        hatFeldzuweisung.setzeInhalt(119, 5);
        hatFeldzuweisung.setzeInhalt(120,40);
        hatFeldzuweisung.setzeInhalt(121, 1);
        hatFeldzuweisung.setzeInhalt(122, 5);
        hatFeldzuweisung.setzeInhalt(123,41);
        hatFeldzuweisung.setzeInhalt(124, 2);
        hatFeldzuweisung.setzeInhalt(125, 5);
        hatFeldzuweisung.setzeInhalt(126,42);
        hatFeldzuweisung.setzeInhalt(127, 3);
        hatFeldzuweisung.setzeInhalt(128, 5);
        hatFeldzuweisung.setzeInhalt(129,43);
        hatFeldzuweisung.setzeInhalt(130, 4);
        hatFeldzuweisung.setzeInhalt(131, 5);
        hatFeldzuweisung.setzeInhalt(132,44);
        hatFeldzuweisung.setzeInhalt(133, 5);
        hatFeldzuweisung.setzeInhalt(134, 1);
        hatFeldzuweisung.setzeInhalt(135,45);
        hatFeldzuweisung.setzeInhalt(136, 5);
        hatFeldzuweisung.setzeInhalt(137, 2);
        hatFeldzuweisung.setzeInhalt(138,46);
        hatFeldzuweisung.setzeInhalt(139, 5);
        hatFeldzuweisung.setzeInhalt(140, 3);
        hatFeldzuweisung.setzeInhalt(141,47);
        hatFeldzuweisung.setzeInhalt(142, 5);
        hatFeldzuweisung.setzeInhalt(143, 4);
        hatFeldzuweisung.setzeInhalt(144,48);
        hatFeldzuweisung.setzeInhalt(145, 9);
        hatFeldzuweisung.setzeInhalt(146, 5);
        hatFeldzuweisung.setzeInhalt(147,49);
        hatFeldzuweisung.setzeInhalt(148, 8);
        hatFeldzuweisung.setzeInhalt(149, 5);
        hatFeldzuweisung.setzeInhalt(150,50);
        hatFeldzuweisung.setzeInhalt(151, 7);
        hatFeldzuweisung.setzeInhalt(152, 5);
        hatFeldzuweisung.setzeInhalt(153,51);
        hatFeldzuweisung.setzeInhalt(154, 6);
        hatFeldzuweisung.setzeInhalt(155, 5);
        hatFeldzuweisung.setzeInhalt(156,52);
        hatFeldzuweisung.setzeInhalt(157, 5);
        hatFeldzuweisung.setzeInhalt(158, 9);
        hatFeldzuweisung.setzeInhalt(159,53);
        hatFeldzuweisung.setzeInhalt(160, 5);
        hatFeldzuweisung.setzeInhalt(161, 8);
        hatFeldzuweisung.setzeInhalt(162,54);
        hatFeldzuweisung.setzeInhalt(163, 5);
        hatFeldzuweisung.setzeInhalt(164, 7);
        hatFeldzuweisung.setzeInhalt(165,55);
        hatFeldzuweisung.setzeInhalt(166, 5);
        hatFeldzuweisung.setzeInhalt(167, 6);
        
    }
    
    public void bewegeUm(int a)
    {
        hatFigur.loesche();
        if (a==6)
        {
            //Bei roter Figur im Haus
            if(zH==0&&zV==0||zH==1&&zV==0||zH==0&&zV==1||zH==1&&zV==1)
            {
               
                hatFigur.zeichne(250+0*40,180+4*40,15,1,zNummer);
                zH=0; zV=4;
            }
            //Bei grün Figur im Haus
            if(zH==0&&zV==9||zH==1&&zV==9||zH==0&&zV==10||zH==1&&zV==10)
            {
                
                hatFigur.zeichne(250+4*40,180+10*40,15,2,zNummer);
                zH=4;zV=10;
            }
            //Bei blau Figur im Haus
            if(zH==9&&zV==0||zH==10&&zV==0||zH==9&&zV==1||zH==10&&zV==1)
            {
                
                hatFigur.zeichne(250+6*40,180+0*40,15,3,zNummer);
                zH=6; zV=0;
            }
            //Bei gelb Figur im Haus
            if(zH==9&&zV==9||zH==10&&zV==9||zH==9&&zV==10||zH==10&&zV==10)
            {
                
                hatFigur.zeichne(250+10*40,180+6*40,15,4,zNummer);
                zH=10; zV=6;
            }
        }
```


----------



## Len (14. Feb 2015)

Ich weiß, das ist sehr kompliziert und umständlich und geht bestimmt elegaganter, aber ich wüsste nicht wie, vielleicht kann mir ja jemand von euch helfen


----------



## Harry Kane (14. Feb 2015)

hatFeldzuweisung ist ein schnödes int-Array, und das hat nunmal keine Methode setzeInhalt mit einer wie auch immer gearteten Parameterliste.


----------



## Len (14. Feb 2015)

Hast du einen Vorschlag, wie man das besser machen kann? Ich bin eher Anfänger bei Java und dachte, das würde so funktionieren


----------



## Gucky (14. Feb 2015)

Um auf Arrays zuzugreifen brauchst du den Zugriffsoperator.
Ließ dir im Internet noch mal die Arrays durch.


----------



## Harry Kane (14. Feb 2015)

Willst du uns ernsthaft erzählen, das du 168 mal eine Zeile der Form hatFeldzuweisung.setzeInhalt(  x, y); in deinen Code schreibst, nur um dann festzustellen, daß das nicht geht (was wahrscheinilch heisst: nicht kompiliert)?
Wenn ich mir die einzlenen Zeilen so anschaue, muss wahrscheinlich jeder Aufruf der obigen Form ersetzt werden durch hatFeldzuweisung[x] = y;


----------



## Len (14. Feb 2015)

Nun, ich gebe zu, dass ich mich in diesem Fall nicht durch außerordentliche Intelligenz ausgezeichnet habe ^^
danke für deinen Tipp, ich werde das mal ausprobieren


----------

