Tetris

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Ich bin dabei tetris zu Programmieren. Habe 2 Klassen angelegt.


    und der spielesteinklasse



    2 Fragen:
    1. Wie kann ich die Spielsteine in dem Spielfeld verwenden??
    2. Wie ist es möglich, das die Steine fallen und liegen bleiben ---> eine volle reihe verschwindet?
    Ich habe mir überegt, dass man dies mit einer abfrage anstellen könne.. aber bin auch nicht weiter gekommen...

    bitte um hilfe

  • ich kenne mich mit Java so gar nicht aus aber allgemein kann ich vielleicht helfen!

    ich vermute das die "0" das leere Spielfeld sind und "2" die grenze des Spielfeld sind, also werden die 1 deine Steine sein!

    wahrscheinlich wenn du Applets und AWT importiert wir es mit eine Grafische Oberfläche sein!

    Das die steine Fallen muss du eine Methode implementieren die das macht, z.B du hast ja ein Array mit 0,1,2 gefüllt also fällt dein stein so weit bis die "FallendeSteinPosition + 1 = 2" oder "FallendeSteinPosition + 1 = 1" ist!

    wenn ein stein unten ankommt dann hast du sowas wie:


    also der Trick ist das du das ganze in dein array implementierst!

    die steine Fallen in deinen Array runter und bleiben dann auch da, alles was mit 1 im array ist wird durch eine Farbe oder Grafik in deine GUI ersetzt.

    Das eine Volle reihe verschwindet brauchst du auch eine Methode haben die das Abfragt , z.B. jedes mal wenn sich was verändert prüft du ob dein Array eine volle reihe mit 1 hat, wenn das der Fall ist dann musst du reihen weise ersetzen, also was in reihe 19 war kommt jetzt zu reihe 20(angenommen die war voll) u.s.w. :)

    hoffe das hilft!

    ---------------------------------------------------------------------------------
    "The right to be heard does not automatically include the right to be taken seriously."
    Hubert H. Humphrey

  • wie kann ich die steine in dem spielfeld implementiern. ich meine da ist mir klar, nur wie mache ich das?? ich bin neu auf dem gebiet, habe diese code mühsam schritt für schritt erarbeitet und bin nun auf mich gestellt und komme nicht weiter. :(

  • wie kann ich die steine in dem spielfeld implementiern. ich meine da ist mir klar, nur wie mache ich das?? ich bin neu auf dem gebiet, habe diese code mühsam schritt für schritt erarbeitet und bin nun auf mich gestellt und komme nicht weiter. :(

    funktioniert der code so wie du es hast?
    mir nicht ganz klar was du mit "wie kann ich die steine in dem spielfeld implementiern"
    das sie grafisch angezeigt werden? oder das sie in dann array für die logik kommen?

    schreib mal vielleicht was du dir gedacht hast und wie du es implementieren willst, ich kann die nur mit Gedanken stoßen helfen da meine Java Kenntnisse auf NULL tendieren.

    ---------------------------------------------------------------------------------
    "The right to be heard does not automatically include the right to be taken seriously."
    Hubert H. Humphrey

  • hab jetzt leider kein Buch zur hand aber ...
    aber ich würde dir empfehlen labels zu verwenden

    zum einen wegen der Anzeige eines Icons als Spielstein und zum anderen wegen (wenn ichs richtig im Kopf hab) setLocation(int x,int y) methode.

    am besten machst du eine Methode für jede Richtung...
    also links rechts und runter
    links rechts von nem keylistener und runter naja eh klar warum^^
    dabei einfach mit getLocation().getX() bzw getY() die Koordinaten hohlen und mit dem von dir gewünschten pro schritt zu gehenden Wert erweitern.
    im hintergrund setzt du in deinem array das ganze so wie schon von malandro beschrieben um.

    und wegen der Zeitlichen verzögerung bei den SPielsteinen würde ich nen Timer verwenden. (einfach in ein Aciton Event springen lassn).

    ich hoff das hilft ... hab leider meinen wanderstein nimma sonst würd ich dir den Code schickn.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!