|
9 months ago | |
---|---|---|
Tetris | 9 months ago | |
.gitattributes | 9 months ago | |
.gitignore | 9 months ago | |
README.md | 9 months ago | |
README.pdf | 9 months ago | |
Tetris.sln | 9 months ago |
Ein kleines C# Tetris Konsolen Spiel. Beim Anfang werden Sie aufgefordert ein Level zwischen 1 - 5 einzugeben und mit Enter zu bestätigen. Um so höher das Level, desto schneller fallen die Blöcke.
Es wird außerdem Korobeiniki via Console.Beep(...)
’s asynchron über die Lautsprecher abgespielt und wird schneller und eine höhere Tonart, wenn sich das Level ändert.
Um so mehr Zeilen gleichzeitig entfernt werden, desto höher ist der daraus zu gewinnende Punktestand. Die Parameter für die Spielelogik können in der Game.cs
Klasse angepasst werden unterhalb den // Adjustable Data
Kommentar.
Die Grafikausgabe wird mittels Backbuffer und Frontbuffer Technik realisiert, siehe Double Buffering (https://www.khronos.org/opengl/wiki/Default_Framebuffer oder https://en.wikipedia.org/wiki/Multiple_buffering#/media/File:Comparison_double_triple_buffering.svg).
Während des Spielens werden 3 Threads via Tasks realisiert erzeugt:
Console.Beep(...)
’s abDas Spielefeld ist 10x20 Blöcke groß
Eventuelles periodisches Neuzeichnen der leeren Speicherzellen, resultiert jedoch in einer geringeren Refreshrate und ich wollte das Spiel relativ performant halten und die Console.Write(...)
’s so gering wie möglich halten, um ein möglich flüssiges Gameplay zu ermöglichen.
Diese Bugs könnten mit einer zusätzlichen Kollisionserkennung für Rotationen in der Zukunft behoben werden
Der Input Task sollte terminiert werden und zusätzliche Gameover-Checks sollten getätigt werden