Memory - Zufällige Anordnung von Buchstabenpaaren

Status
Nicht offen für weitere Antworten.

bugatti_1001

Mitglied
Hallo!

Ich bin gerade dabei ein memory spiel zu programmieren, das aus einer 6x6 Matrix besteht und aus 18 Buchstabenpaaren (also A - R) besteht. Dabei sollen die Buchstaben ZUFÄLLIG angeordnet werden.
Der Spieler soll über einen x-Wert und y-Wert die Position angeben können.
Findet er zwei richtige Buchstaben, so bleiben diese aufgedeckt, ansonsten werden sie wieder "zugedeckt", behalten aber ihre Position.

Ich möchte über eine Schleife den einzelnen Arrays (oder?) die Buchstaben zuweisen. Bin aber schon am verzweifeln wie ich das alles in den code umschreiben...

Bin jetzt soweit:



Code:
public class MyClass
{
  public static void main(String[] args)
  {
    int[][] array = new int[6][6];
		
    for(int i=0; i<=6; i++)
      for(int j=0; j<=6; j++)				
        
        
        x = int random(int 36)
        array[i][j] = x //Ab hier komme ich nicht weiter
            
  }
}


Ich bin sehr dankbar für jede Hilfe!!
 
Arbeite doch mit den Ascciwerten. Als erstes erstellst Du Zufallszahlen um die Buchstaben herauszufinden. z.B. Wenn 64 kommt ist das ja umgewandelt glaube ich ein a.

Hast Du den ersten Buchstaben, erzeugst Du nochmal eine Zufallszahl um die Position im Array zu definieren.

Wie wäre es damit?

Gruß
 
leg dir ne klasse Feld an, welche die attribute für den buchstaben und einen boolean für gefunden hat.
dann legst du in deinem 6x6-array instanzen dieser klasse ab.
dann folgt die eingabe und anschließend die prüfung der eingegebenen werte.
wenn die dann übereinstimmen, tust du die booleans der einzelnen felder auf true oder false setzen, womit diese dann unselektierbar werden.
 
kannst du mir vielleicht etwas auf die sprünge helfen.
Ich weiss nämlich nicht wo ich anfangen soll...

mein problem ist nämlich diese zufallsverteilung der buchstaben..

vielen Dank!
 
alle buchstaben in eine liste einfügen, und mit random() modulo listengröße einen buchstaben rausfischen, welchen du, während du über das spielfeld läufst, einfügst...

den buchstaben rausfischen mittels String buchstabe = (String)list.remove( index );

oder Collections.shuffle( list ); und dann immer das oberste (index gleich 0) element rausnehmen mit obenbeschriebener methode

Code:
      List<Character> list = new ArrayList<Character>();
      for( int i = 0; i < 26; ++i )
      {
         list.add( (char)('A' + i ) ); // A - Z
         list.add( (char)('Z' - i ) ); // Z - A
      }
      for( ;list.size() > 0; )
      {
         Collections.shuffle( list );
         System.out.println( list.remove( 0 ) );
      }
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben