Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 27.08.2002, 08:40 Titel: Tetris |
|
|
Kennt jemand eine einfache(!) Möglichkeit, bei einem Tetrisspiel zu testen ob eine Reihe vollständig ist und gelöscht werden kann? |
|
Nach oben |
|
 |
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 27.08.2002, 08:54 Titel: |
|
|
Tetris hab ich noch ned geproggt, aber ich würde es so machen:
Das gesamte Spielfeld wird durch ein int-Array repräsentiert. Wenn du zb. 10x25 Felder haben willst, machst du int Feld[10][25]. Jetzt kannst du zu jedem Feld speichern, ob da ein Stein ist oder nicht. Für eine vollständige Reihe schaust du dann einfach, ob alle Array-Werte mit der gleichen x-Koordinate einen Stein enthalten:
Code: |
bool bReiheKomplett = true;
int iWelcheReihe = 0;
for(int y = 0; y < 25; y++)
{
iReiheKomplett = y;
for(int x = 0; x < 10; x++)
{
if(Feld[x][y] != 1) bReiheKomplett = false; // 1 bedeutet hier 'beinhaltet einen Stein'
}
// hier kannst du dann analysieren, ob bReiheKomplett
// wirklich true ist und die Reihe komplett ist.
// Damit kannst du dann weiterrechnen und die Reihe evtl.
// wegmachen oder so.
}
|
_________________ Es geht auch ohne  |
|
Nach oben |
|
 |
Sören JLI Master Trainee

Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 27.08.2002, 11:57 Titel: |
|
|
Ich hab auch mal mit einem TetrisClone angefangen!
Leider ist der Quellcode total vermurkst!
Funktioniert aber sonst ganz gut!
Ich hab den Code mal hochgeladen:
TetrisByMiracleBoy
Vielleicht kannste damit ja was anfangen !
MiracleBoy  |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 27.08.2002, 14:37 Titel: |
|
|
Das gehört doch nicht unter Grafik!! _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 27.08.2002, 16:04 Titel: |
|
|
Danke.
@Hazel: Bei genauerer Überlegung hast du Recht.sorry |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 03.09.2002, 15:14 Titel: |
|
|
Btw... man kann Michael's Technik noch optimieren:
Code: |
...
// Spielfeld, global
int Field[COLUMNS][ROWS]; // 0 = kein Spielstein; 1 = Spielstein
...
// Anzahl der Spielsteine in der aktuellen Reihe
int RowValue = 0;
// Hilfszeiger
intl * Temp = NULL;
for(int x = 0: x < COLUMNS; x++)
{
// Auf aktuelle Reihe zeigen
Temp = Field[x];
// Reihe durchgehen und Werte sammeln
for(int y = 0; y < ROWS; y++)
{
RowValue += *Temp;
++Temp;
}
// Iss voll?
if(RowValue == COLUMNS) // Reihe voll
// Variable resetten
RowValue = 0;
}
|
Naja... war nur noch ein Vorschlag... es gibt sicher noch VIIEEL mehr Möglichkeiten  _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 03.09.2002, 16:17 Titel: |
|
|
Danke ich hab jetzt auch kapiert wie man Level durch Felder und so erstellen kann.
@MiracleBoy: Der Code hat mir viel geholfen danke  |
|
Nach oben |
|
 |
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 04.09.2002, 15:16 Titel: |
|
|
schwuppdiwupp verschoben *g* |
|
Nach oben |
|
 |
|