Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Für was denn? Ein Snake hat nur Wände an den Rändern und ist dazwischen vollständig begehbar. Da braucht man gar keinen Array und keine Karte.Für letzteres könntest du einfach ein Array nehmen (falls du schon kennst, einen std::vector) und darin die einzelnen Zellen deines Spielfeldes speichern.
Für was denn? Ein Snake hat nur Wände an den Rändern und ist dazwischen vollständig begehbar. Da braucht man gar keinen Array und keine Karte.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
//Funktionsprototypen void initk(); //Karte initialisieren ... ... ... //Kartenkonstanten const int KHoehe = 20; const int KBreite = 20; struct S_Karte { bBesetzt; }; S_Karte Karte[KBreite][KHoehe]; ......... void initk() //Karte initialisieren { for (int y = 0; y < KHoehe; y++) { for (int x = 0; x < KBreite; x++) { Karte[x][y].bBesetzt = false; } } } |
1. einzelne Felder eines Arrays als besetzt makieren (also die Randfelder);
2. auf diese Felder zurückgreifen
C-/C++-Quelltext |
|
1 2 3 4 |
struct S_Karte
{
bBesetzt;
};
|
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public void randfelderAlsBesetztMarkieren() { for (int x = 0; x < spielfeldBreite; x++) { //Den oberen Rand als besetzt markieren Karte[x][0].besetzt = true; //Den unteren Rand als besetzt markieren Karte[x][spielfeldHoehe - 1] = true; } for (int y = 0; y < spielfeldHoehe; y++) { //Den linken Rand als besetzt markieren Karte[0][y].besetzt = true; //Den rechten Rand als besetzt markieren Karte[spielfeldBreite - 1][y].besetzt = true; } } |
Habe ich wohl vergessen zu kopieren, das bool stand in der Datei genau da wo es sollteDa fehlt was.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige