-
Fototrend

Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
emitter
#1156
üzenetére
Az aknaz lényegi része valahogy így kellene kinézzen:
for(i=0;i<max_aknak; ) //aknák véletlen elhelyezése
{
int dx, dy;
int cx, cy;
j=rand()%my; //az aknák koordinátája 0,my és 0,mx között lehet
k=rand()%mx;
if(mezo[j][k].akna==0) //ha az adott mezõn már van akna, nem rakunk oda
{
mezo[j][k].akna = 1;
i++;
for(dy = -1; dy <= 1; dy++)
{
cy = j + dy;
if (cy >= 0 && cy < my)
{
for(dx = -1; dx <= 1; dx++)
{
cx = k + dx;
if ((dy != 0 || dx != 0) &&
cx >= 0 && cx < mx)
{
mezo[cy][cx].szomsz++;
}
}
}
}
}
}
A feltárós résznél nem igazán értem, hogy akkor most miben mit számolsz, de úgy sejtem, hogy egy ilyen módosítással jó lehet:
if (mezo[x][y].mark == -1)
{
(*mezoszam)++;
} else {
mezo[x][y].mark = -1;
(*maradt)++;
}
És ez nem kell a hívás elõtt:mezo[j-1][i-1].reveal=1;
mezo[j-1][i-1].mark=-1;
mezoszam++;
A mezoszam felteszem a feltárt vagy megjelölt mezõket számolja. Vagyis az automatikus feltárásnál csak akkor kell növelni, ha nem megjelölt mezõt tárunk fel, hiszen az már egyszer meg lett számolva. Viszont ha már meg volt jelölve, akkor most töröljük a jelölést, hiszen tudjuk, hogy nincs ott akna. Emiatt azonban a maradt változót növelni kell. Amúgy ez a +1/-1 a mark esetén elég sok fejfájást okozott nekem. Mostmár nehogy átírd, de a többi helyen használt 0/1 jobb lett volna.
MOD: szöveg jó, kód rossz
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Battlefield 6
- Formula-1
- Parkside szerszám kibeszélő
- AMD GPU-k jövője - amit tudni vélünk
- Milyen házat vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Építő/felújító topik
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- Temu
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- DELL latitude 5410 Tartós Üzleti Laptop 14" -70% i5-8365U 4Mag 16Gb 500GB SSD FHD IPS LTE
- SZÉP! DELL latitude 5410 Tartós Üzleti Laptop 14" -70% i5-8365U 4Mag 16Gb 512GB SSD FHD IPS
- Dell Precision 7550 i7-10850H 32GB 512GB Nvidia RTX5000 16GB 1 év garancia
- ÚJ, SZÁMLÁS, GARANCIÁS GAMER PC Ryzen 5 9600X RTX 5060 Ti 32GB RAM 1TB NVMe AIO vízhűtés
- Dell Latitude 7320 i5-1145G7 16GB 512GB 1 év garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



