Tetrisspiel



  • Hallo,
    ich würde gern einige Vorschläge von euch erhalten zu folgendem Spielchen.
    Ich habe ein Feld gegeben, in dem Bausteine reinkommen.
    Ich habe zum Beispiel ein 10 stellige Platzhalter.
    Wenn ich dieses als Array nehme:
    ArrayPlatzhalter : [0, 2, 3, 3, 5, 7 ,9 ]
    in diese Positionen kommen folgende Beausteine mit Länge und Höhe, es sind Rechtecke:
    ArrayLänge: [1 , 2, 2, 3, 2, 3, 1] und ArrayHöhe: [ 2, 1, 2, 3, 1, 1, 4].
    Also zB. kommt an die 1. Stelle (0) ein Baustein der Länge 1 und Höhe 2.
    An Stelle 2 ein Baustein der Länge 2 und Höhe 1. Dabei verteilen sich die Bausteine, sodass Treppen gebildet werden können.
    Meine Frage ist, wie sich dieses zu programmieren lässt.
    Ich dachte an eine 1. for Schleife mit der Anzahl der Platzhalter, also 7.
    Darin eine for Schleife, die von dem Positionsplatz bis zum Positionsplatz + die Länge geht, und darin dann die Höhen draufaddiert. Sodass ich am Ende ausgeben kann, die hoch, die jeweilige Stelle ist, wobei auch 0 möglich ist.
    Wie könnte man das ausformulieren?



  • jedes steinchen kennt doch nur max 4 positionen oder? mach doch einfach für jedes ne matrix und dann schieb sie über die feldmatrix wenn beide matrizen sich überschneiden dann gehts nicht mehr weiter. nach jedem test rutscht die stein matrix ne stufe weiter runter bis zum boden?

    also ich mein so...

    char steinL0[] = {
       1,0
      ,1,0
      ,1,1
    };
    char steinL1[] = {
       1,1,1
      ,1,0,0
    };
    char steinL2[] = {
       1,1
      ,0,1
      ,0,1
    };
    char steinL3[] = {
       0,0,1
      ,1,1,1
    };
    


  • ja, aber wenn ich die 4 erhöhe, muss ich jeweils den Code anpassen.
    Mir hat das ein Kollege gesagt, dass man das so lösen könnte.
    Anfangs eine Schleife mit der Anzahl der möglichen Steinchen (kann auch 0 Stein sein und wird mitgezählt), hier 7.
    Dann läuft darin eine forSchleife, von der. 1. Einstzstelle bis zur Länge des Steinchens. Darin speichert in einem Array die jeweilge Postion ab, wobei die Höhe daraufaddiert werden. Bei maximal 10 Stellen.
    Dieses als Code aufzustellen fällt mir schwierig.


Anmelden zum Antworten