Java 4 op een rij probleem

Status
Niet open voor verdere reacties.

DeeM2

Gebruiker
Lid geworden
26 jan 2011
Berichten
9
hallo allemaal,

Ik heb een probleem met het spel 4 op een rij in java.
Alles werkt in het spel behalve dat het meer lijkt op OXO dan op 4 op een rij, omdat de X of O niet automatisch op de onderste rij valt. Dit is een stukje van de code LaatVallen. Kan iemand mij helpen met het maken van een code zodat het blokje automatisch op de rij valt onderaan die vrij is.
Code:
 public void LaatVallen(int x, int y , int speler){

          


        if(speler == 1){
               if(veld[x-1][y-1] == ' '){
                   veld[x -1][y -1] += 'X';
               }else{
                   System.out.println("Er staat al een Teken op deze plaats, u beurt vervalt");
               }

           
        }  else {
               if(veld[x-1][y-1] == ' '){
                   veld[x -1][y -1] += 'O';
               }else{
                    System.out.println("Er staat al een Teken op deze plaats, u beurt vervalt!");
               }

            }
}
 
4 op een rij lijkt dit jaar in te zijn voor programmeeropdrachten voor school :P

Je hebt zo te zien al een array van 4 bij 4.
Wat je kan doen is de array doorlopen met een dubbele for-loop.

Code:
for(x = 3; x => 0; x--)
{
  for(y = 2; y=> 0; y--) //deze maar op 2 omdat je de onderste rij niet na hoeft te kijken
  {
   if( array[x][y] != leeg )
    {
     if(array[x][y+1] == leeg )
       {
        array[x][y+1] = array[x][y];
        array[x][y] = leeg;
       }
    }
   }
}

Wat hij hier doet is het volgende:
Dit is je speelveld: (kan je groter maken of kleiner maakt niet uit, moet je alleen de waardes in de forloop aanpassen)
Code:
X--->
[ ][ ][ ][ ]Y
[ ][ ][ ][ ]|
[ ][ ][ ][X]V
[ ][ ][ ][ ]

Hij begint te kijken bij de plaats waar X staat. Als deze niet leeg is, dan kijkt hij of het vakje eronder leeg is. Mocht deze leeg zijn dan verplaatst de waarde van x,y naar x,y+1 en maakt hij x,y leeg. Vervolgens gaat hij naar links en doet hetzelfde. Zodra hij klaar is met de derde regel gaat hij een regel omhoog, begint weer van rechts naar links tot hij het hele speelveld door is.

De Y-coordinaten laat ik bij 2 beginnen omdat je de onderste regel niet na hoeft te kijken. Er zit geen leeg vakje onder.
 
Voor het te tonen heb ik reeds een array idd, van 6 bij 7. Ik ga deze code strax eens proberen.

De code die ik hier heb gepost is enkel de code om een X of O te 'laten vallen' .
 
Hmm en hoe zou je mijn code in jou code integreren? want heel het spel werkt behalve dat de X en O op de coordinaten komen te staan zoals degene die je moet intypen. Want bij de bovenstaande code is de int x en de int y die je binnenkrijgt degene die de gebruiker heeft ingegeven
 
Het enige wat mijn stuk code eigenlijk doet is het speelveld 'aanpassen' oftewijl de blokjes laten vallen na een beurt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan