Tetris: Wie Score programmieren?
-
Hi Leute! Ich habe ein kleines schönes Tetris-Spielchen programmiert, in dem man noch keine Punkte machen kann. Levels gibt es auch noch nicht. Laaaangweilig. Weiß jemand von euch, wie da so die Standard-Regeln sind? Also, wann geht es einen Level höher? Wieviele Punkte gibt es für was?
-
http://de.wikipedia.org/wiki/Tetris schrieb:
Punkte bei der ersten Game Boy Version (Level n)
vier Zeilen ("Tetris"): 1200*(n+1)
drei Zeilen: 300*(n+1)
zwei Zeilen: 100*(n+1)
eine Zeile: 40*(n+1)
drop: 1 Punkt pro Zeile(levelerhöhung alle 10 zeilen)
-
OK, wie die Punkte vergeben werden, habe ich herausgefunden: http://de.wikipedia.org/wiki/Tetris

Bleibt noch die Frage, wann es einen Level weitergeht und wie die Kurve Level -> Geschwindigkeit aussieht.
-
borg schrieb:
(levelerhöhung alle 10 zeilen)
Dankeschön. Bleibt noch die Frage nach der o.g. Kurve...
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hab folgendes gefunden:
Wikipedia schrieb:
For example, NES Tetris operates at 60 frames per second. At level 0, a piece falls one step every 48 frames, and at level 19, a piece falls one step every 2 frames. This means for each level, pieces fall 16 milliseconds faster per step.
Den letzten Schluss verstehe ich nicht. Ich verstehe das ganze mit den Frames wie folgt: Ein Frame ist eine 60-stel Sekunde. Wenn ich jetzt annehme, dass die Speed-Erhöhung linear ist und weiß, dass gilt:
Level 0: 48 Frames per piecefall
Level 19: 2 Frames per piecefall,dann komme ich darauf, dass es per Level ungefähr 38 Millisekunden (und nicht 16) schneller geht. Verstehe ich da was falsch?
-
Wie willst du denn ein neues Level machen? In Tetris kann man höchstens die Schwierigkeitsstufe erhöhen, also das die Dinger schneller fallen!
Das hab ich jeden falls in meinem Tetris so gemacht!
Alle 10 Punkte höher erhöht sich auch die Fallgeschwindigkeit, bis zum Maximum!Falls es dich interessiert: ich habe mein Tetris auf der "Allegro" Bibliothek programmiert! Und auf welcher programmierst du dein Tetris?
-
LukasBanana schrieb:
Wie willst du denn ein neues Level machen? In Tetris kann man höchstens die Schwierigkeitsstufe erhöhen, also das die Dinger schneller fallen!
Ich denke, in meinem Beitrag ist klar rauszulesen, dass ich es genau so machen will. Darum geht es doch. Ich möchte eigentlich gerne die Performance des alten NES-Klassikers kopieren. Dazu fehlen mir aber eben einige Daten. Deshalb frage ich hier.
LukasBanana schrieb:
Falls es dich interessiert: ich habe mein Tetris auf der "Allegro" Bibliothek programmiert! Und auf welcher programmierst du dein Tetris?
Ich programmiere mit der WinAPI.
-
WebFritzi schrieb:
Ich programmiere mit der WinAPI.
Ich hab nichts dagegen, aber es wundert mich nur, dass fast alle die ich bisher fragte, die WinAPI verwänden!
Macht ihr eure Spiele also in einem Fenster, oder kann man mit der WinAPI auch Screens öffnen?
Und zu deiner Frage wie die Spielregeln vom original Tetris aussehen:
Soweit ich weiß wird nach 10 Punkten einfach die Geschwindigkeit schneller! Level gibt es in dem Sinne glaube ich garnicht, das Original ist immer hin ein ziemlich altes Spiel!
-
LukasBanana schrieb:
Soweit ich weiß wird nach 10 Punkten einfach die Geschwindigkeit schneller! Level gibt es in dem Sinne glaube ich garnicht, das Original ist immer hin ein ziemlich altes Spiel!

Nett, dass du mir helfen willst. Aber erstens sind diese Informationen falsch, und zweitens gehst du überhaupt nicht auf meine Fragen ein. Ich frage danach, wieviel schneller es wird und du sagst, es werde schneller. Ach ne. Sorry, aber ich finde sowas nicht in Ordnung.
-
Tut mir Leid!
Dann muss ich dir leider sagen, wenn du sogenau eine Kopie vom Original herstellen willst, kann ich dir leider nicht helfen!
-
@WebFritzi: MAME kann die alte Tetris Platine emulieren. Die hat im übrigen "Levels", also nicht bloss schneller werden, sondern so mit vorgegebenen Steinchenmustern und dann muss man halt immer 10, 15, ... Lines pro Level schaffen. Dann wird neu aufgebaut, und man spielt im nächsten Leven weiter.
Hab aber schon lange nichtmehr gespielt, also kann ich auch nicht viel mehr dazu sagen.Und wenn du einen genauen Klon machen willst solltest du dir vielleicht überlegen welche Version du klonst, also das GameBoy Tetris, die alte Platine oder irgendeine ganz andere Version -- mischen würde ich das nicht.
Peinlicherweise weiss ich nichtmal was das originale erste Tetris war, aber ich schätze mal es muss wohl auf irgendeiner 8 Bit Plattform gleaufen sein. XT vielleicht ... ?
-
Danke erstmal, hustbaer.
Es hat noch keiner seine Meinung über das von mir zuletzt genannte Zitat aus der Wikipedia abgegeben. Versteht das einer?
@Lukas: Zeig doch mal her, dein Tetris.
-
@OP:
48 * 1 / 60 * 1000 = 800
2 * 1 / 60 * 1000 = 33,333
(800 - 33,333) / 19 = 40,35(von Level 0 bis 19 sinds ja bloss 19 steps, nicht 20 -- mit 20 wären es 38 msec)
Bloss weiss ich nicht ob die Zeit-pro-Schritt linear verläuft -- musst du ausprobieren ob das dann noch "stimmig" ist wenn man z.B. von Level 0 auf 1 kaum nen Unterschied merkt, von Level 18 auf 19 aber einen gewaltigen.
Schade dass ich mein Tetris für'n AMIGA nichtmehr habe, bzw. es könnte sogar sein dass es noch irgendwo auf ner Diskette rumkugelt, die ich aber sicher in 100 Jahren nicht finde. Hatte schöne "prozedurale Grafik" mit Bevels und allem (ist auch keine Kunst, aber damals war ich recht jung und mächtig stolz darauf).
@LukasBanana: unter Windows gibt es keine "Screens" in dem Sinne, d.h. man kann auch keine aufmachen. Auch mit DirectDraw oder irgendwelchen Sprite-Libs nicht. Die schummeln das auch nur hin. Und ein kleines Tetris kann man auch mit WinAPI recht gut schreiben, da muss man nicht unbedingt ne Sprite-Lib hernehmen.
-
hustbaer schrieb:
@OP:
48 * 1 / 60 * 1000 = 800
2 * 1 / 60 * 1000 = 33,333
(800 - 33,333) / 19 = 40,35(von Level 0 bis 19 sinds ja bloss 19 steps, nicht 20 -- mit 20 wären es 38 msec)
Ja, aber in Wikipedia kommen die auf 16 msec. Das verstehe ich nicht. Was heißt "@OP"?
hustbaer schrieb:
Bloss weiss ich nicht ob die Zeit-pro-Schritt linear verläuft
Das wird in Wikipedia ja indirekt damit gesagt, dass es pro Level 16 msec schneller geht.
hustbaer schrieb:
Und ein kleines Tetris kann man auch mit WinAPI recht gut schreiben, da muss man nicht unbedingt ne Sprite-Lib hernehmen.
Ne, vor allem, wenn immer nur ein paar Quadrate gemalt werden müssen.
-
OP: original poster
Das wird in Wikipedia ja indirekt damit gesagt, dass es pro Level 16 msec schneller geht.
Naja, wenn die nichtmal rechnen können, dann glaube ich ihnen das aber auch nicht

-
Hi, WebFritzi!
freut mich wenn du dir mein Tetris mal ansehen willst! Bin auch gerne bereit dazu meine eigenen kleinen Programme zu veröfentlichen!
Allerdings bin ich noch neu im Forum und neu im Internet, wenn du mir sagst wie ich in einen Beitrag ein Bild oder sowas einfügen kann mache ich das gerne!
Eine eigene InternetSeite hab ich noch nicht, bin aber schon dabei mit einem Freund eine auf zu machen, wo ich kostenlose Programme veröfentliche!Bis es soweit ist muss mir jemand sagen wie ich hier ein Bild einfügen kann!

-
Schick mir doch ne Mail. Meine Adresse findest du auf www.webfritzi.de.vu in der Kniffel-Ecke.