Forum » Programiranje » Programiranje v C
Programiranje v C
nebi ::
Pozdravljeni.
Delam na random postavitvi 5 ladij.
Začel sem s poljem 10x10, zapolnjenim z ničlami. Kasneje pa vstavim pet ladij:
1* 5 ton
1* 4 tone
2* 3 tone
1* 2 toni
Pravilo imam, da se ladje ne smejo dotikati.
Moj trenutni random algoritem postavi ladje, vendar se včasih prekrivajo ali pa dotikajo...
Na kakšen način bi lahko preverjal, če pride do tega? Pa bi potem vse skupaj vstavil v while in v primeru, da je vse OK bi naredil break, drugače pa naj ponavlja zadevo dokler naključna postavitev ne ustreza pravilom.
Primer težave:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 5 5 5 5 5 0 0 0
0 0 0 0 0 0 4 0 0 0
0 0 0 0 0 0 4 0 0 0
0 0 3 0 0 0 4 0 0 0
0 0 3 0 0 0 4 0 0 0
0 0 3 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2 2 3 3 3
Če ima kdo kako idejo, naj me samo usmeri v pravo smer. Pa bom poizkusil sam rešiti težavo.
Hvala.
LP
Delam na random postavitvi 5 ladij.
Začel sem s poljem 10x10, zapolnjenim z ničlami. Kasneje pa vstavim pet ladij:
1* 5 ton
1* 4 tone
2* 3 tone
1* 2 toni
Pravilo imam, da se ladje ne smejo dotikati.
Moj trenutni random algoritem postavi ladje, vendar se včasih prekrivajo ali pa dotikajo...
Na kakšen način bi lahko preverjal, če pride do tega? Pa bi potem vse skupaj vstavil v while in v primeru, da je vse OK bi naredil break, drugače pa naj ponavlja zadevo dokler naključna postavitev ne ustreza pravilom.
Primer težave:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 5 5 5 5 5 0 0 0
0 0 0 0 0 0 4 0 0 0
0 0 0 0 0 0 4 0 0 0
0 0 3 0 0 0 4 0 0 0
0 0 3 0 0 0 4 0 0 0
0 0 3 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2 2 3 3 3
Če ima kdo kako idejo, naj me samo usmeri v pravo smer. Pa bom poizkusil sam rešiti težavo.
Hvala.
LP
SimplyMiha ::
Domnevam, da naključno izbereš točko za postavitev ladje. Tam pač naredi zanko, kjer pred postavitvijo ladje počekiraš polja, če so vsa prosta, postaviš ladjo, sicer probaš drugačno postavitev. Če nobena ne gre, je točka neveljavna in znova izbereš naključno točko.
nebi ::
Naključno izbrana točka, kasneje pa še naključno izbrana smer (gor dol levo desno - odvisno, če je dovolj prostora).
nebi ::
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
Že vem kaj bom naredil.
Recimo, da je izbrana točka označena z bold. In usmeritev, ki jo imam je navzdol.
Seštel bom vsa polja, kamor bo pride ladja in njena sosednja polja. Če je vsota enaka nič...
0 0 0
0 0 0
0 0 0
0 0 0
Že vem kaj bom naredil.
Recimo, da je izbrana točka označena z bold. In usmeritev, ki jo imam je navzdol.
Seštel bom vsa polja, kamor bo pride ladja in njena sosednja polja. Če je vsota enaka nič...
Yacked2 ::
Če te vsota polj ne zanima ne seštevaš :) Sprehodi se točkah in za vsako preveri če je prazna, če prideš do zasedenega polja, takoj breakaš, saj je očitno, da ladje tam ne moreš postaviti.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
! | Naučimo se igrati kitaro (strani: 1 2 3 4 … 13 14 15 16 )Oddelek: Sedem umetnosti | 533711 (883) | garrv |
» | Verjetnost pri kroglicahOddelek: Šola | 1663 (1360) | Math Freak |
» | DirectX - težavicaOddelek: Programiranje | 1277 (1010) | Senitel |
» | [Naloga] : Max kompresija testne datotekeOddelek: Programiranje | 3146 (2070) | StratOS |
» | Matematika.. 0=1 in deljenje z nič itd.. =) (strani: 1 2 )Oddelek: Znanost in tehnologija | 7986 (6879) | DimmniBurek |