Im Sinne einer Neuimplementierung klassischer Videospiele möchte ich die Community einladen, ihre beste Implementierung von Tetris zu erstellen .
Als Referenz ein Screenshot der offiziellen NES-Version von Tetris.
Erforderliche Funktionen
- Es muss ein angemessenes Bewertungssystem vorhanden sein, mit dem mehrzeilige als einzeilige Löschungen belohnt werden. Das aktuelle Ergebnis muss jederzeit sichtbar sein.
- Das nächste Stück, das erscheinen wird, muss auf irgendeine Weise angezeigt werden.
- Die Verteilung der sieben Tetrominos sollte ziemlich gleichmäßig sein (dh pseudozufällig gewählt).
- Der Benutzer muss in der Lage sein, das aktuelle Stück in beide Richtungen zu drehen und seinen Abstieg zu beschleunigen.
- Wenn das Spiel beendet ist, sollte deutlich angezeigt werden, dass das Spiel beendet ist.
- Der Quellcode muss strukturiert und leicht verständlich sein.
Optionale Funktionen
- Steigern der Fallgeschwindigkeit nach einer bestimmten Anzahl von Löschvorgängen (dh mit zunehmendem Schwierigkeitsgrad) und Steigern der Punktzahl pro Linie, proportional zur Geschwindigkeit.
- Schwere. Sie können die "klassische" Schwerkraft implementieren, bei der Blöcke über Lücken schweben können, oder Sie können die "Überflutungs-Schwerkraft" implementieren, bei der Blöcke, die über Leitungslöschungen von ihrem ursprünglichen Tetromino getrennt wurden, offen fallen können Lücken.
- Highscores mit Namenseingabe.
- Animation nach dem Löschen der Linie und / oder nach dem Erreichen eines neuen Highscores.
Einschränkungen
- Alle verwendeten Bibliotheken ( jQuery , PyGame usw.) sollten frei verfügbar sein.
- Die Quellcodegröße darf 4096 Byte (ohne Leerzeichen und Kommentare) nicht überschreiten. Alle externen Ressourcen (Datendateien, Bilder usw.) werden zur Codelänge hinzugefügt, ausgenommen alle generierten Dateien, z. B. für Highscores.
Mir ist klar, dass dies eine eher willkürliche Einschränkung ist; Mein primäres Ziel ist es, das Einfügen von Kopien in bestehende Implementierungen zu unterbinden und die Kürze und Selbstbeherrschung zu fördern.
Gewinnkriterien
Diese Herausforderung wird als Beliebtheitswettbewerb gewertet, was bedeutet, dass die Einsendung mit den meisten Upvotes als Gewinner ausgewählt wird. Ich ermutige die Nutzer, bei der Abstimmung alle Beiträge zu bewerten, die ihrer Meinung nach den oben genannten Anforderungen angemessen entsprechen.
Der Gewinner wird frühestens 2 Wochen nach der ersten gültigen Lösung ermittelt. Zusätzlich gewähre ich dem Gewinner ein Kopfgeld, ungefähr proportional zur Anzahl der Upvotes, die diese Frage erhält ( 10 * #votes
auf die nächsten 50 aufgerundet). Sollte es nach Ablauf der zweiwöchigen Frist zu einem Unentschieden kommen, verlängert sich die Wettbewerbsfrist um eine Woche. Sollte es dennoch ein Unentschieden geben, behalte ich mir das Recht vor, die Schlussabstimmung abzugeben.
Bitte fordern Sie weitere Informationen an. Möge die beste Umsetzung gewinnen!
Antworten:
Versuchen Sie: http://tetris.muehe.org
Update Es gibt einen globalen Highscore. Viel Spaß beim Schlagen oder - alternativ - Hacken :-)
CoffeeScript- und HTML-Version sollten nach bestem Wissen die Anforderungen erfüllen (und ich habe Tetris noch nie wirklich gespielt).
Github https://github.com/henrik-muehe/tetris
Eigenschaften
quelle
Pascal
Entwickelt in FreePascal 2.6.2, sollte auch mit Turbo Pascal 6.0 kompiliert werden. Es wird nur die CRT- Einheit verwendet, keine externen Ressourcen.
Bildschirmfoto
(Unter Linux im XTerm-Fenster.)
Steuerung
Wertung
Die Stufe beginnt bei 1 und steigt nach jeweils 25 Zeilen an. (Mehrere Zeilen, die gleichzeitig ausgefüllt werden, zählen als 1.)
Messung
quelle
Java (Swing)
Dies ist eine Implementierung der ersten historischen Game Boy Edition von Nintendo (c) aus dem Jahr 1989.
Spielanleitung:
Z= nach links
Xdrehen = nach rechts drehen
Left= nach links bewegen
Right= nach rechts bewegen
Down= nach unten bewegen (langsam)
Up= nach links drehen (nur zur einfacheren Verwendung)
R= Spiel zurücksetzen
Ich habe es vermieden, mehr als eine Klasse zu verwenden (weil mir der Golfaspekt einfällt). Aber jetzt ist es auf jeden Fall nicht mehr golffähig ... Allerdings habe ich eine Font-Datei und eine Image-Datei gezippt und Base64-kodiert, damit ich sie in der einzigen Klassendatei verwenden kann.
Kopieren Sie dazu den Java-Code in Ihre IDE und starten Sie. Sie benötigen keine zusätzlichen Bibliotheken oder Ressourcen.
TODOs:
Kommentare sind willkommen :)
quelle
import java.awt.event.KeyAdapter;
und ändern Sienew KeyAdapter
zunew java.awt.event.KeyAdapter
.Lua - 2876
Tetris in einem Terminal, funktioniert auf den meisten Unix-Systemen, reine Lua, keine zusätzlichen Bibliotheken erforderlich.
Steuerelemente sind: wasd oder hjkl, w / k zum Ablegen, s / j zum Drehen, ad / hl zum Bewegen
Die Geschwindigkeit steigt mit der Punktzahl, wenn mehrere Linien entfernt werden, erhalten Sie das Quadrat der Anzahl der zerstörten Linien
Dies ist nicht die wahrscheinlichste Golf-Lösung, aber ich habe beschlossen, ein bisschen Golf zu spielen. Die Zeilenumbrüche sollen nur in 80 Spalten passen, ich habe sie nicht in die Anzahl der Zeichen aufgenommen.
quelle
cat
.cat
, ich habe Butterfiles verwendetC-x
M-c
M-butterfly
...Mathematica
Dieser Code wurde in Mathematica von Xiangdong Wen geschrieben und kann hier in einem Webbrowser gespielt werden: Shape Descender (klicken Sie auf die Grafiken, um die Pfeiltasten zu aktivieren). Nachfolgend sehen Sie den Screenshot und den vollständigen Code - was für eine komplette Web-App dieses Spiels ziemlich wichtig ist.
Code
quelle
C
Ich habe das vor Jahren geschrieben, als ich gelangweilt in der Schule saß. Angeblich hat der ursprüngliche Programmierer die erste Version von Tetris mit eckigen Klammern als Block geschrieben, und es schien einfach genug zu sein, um zu versuchen, sie neu zu erstellen, nicht wahr? Ich kannte kein GUI-Zeug, also habe ich ein gutes, altmodisches Konsolenprogramm gemacht. Das war früher, als ich C ++ und die lästigen Programmierpraktiken lernte, sodass der Code möglicherweise etwas chaotisch ist. Ich habe so ziemlich nur geflügelt.
Es erfüllt alle Anforderungen der Herausforderung, mit der Ausnahme, dass sich das Teil nur in eine Richtung dreht (im Uhrzeigersinn). Verwenden Sie WASD, um zu spielen, W dreht das Stück. Den vollständigen Quellcode und die ausführbare Datei finden Sie hier: http://sourceforge.net/projects/tklone/files/tklone/tklone-v1.0/
tetris.c
setPiece.c
quelle
Ich habe eine Javascript-Version gebaut https://marchingband.github.io/tetris/
quelle
dom[p.x][p.y+1].style.background
zurückkehrenblue none repeat scroll 0% 0%
, also niemals gleich werdenblue
. Ihre Lösung ist gültig, aber ich würde vorschlagen, alle.style.background
→.style.backgroundColor
zu ändern , damit sie sowohl in Firefox als auch in Chrome funktionieren.