» »

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

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č...

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

Naučimo se igrati kitaro (strani: 1 2 3 413 14 15 16 )

Oddelek: Sedem umetnosti
795533711 (883) garrv
»

Verjetnost pri kroglicah

Oddelek: Šola
61663 (1360) Math Freak
»

DirectX - težavica

Oddelek: Programiranje
141277 (1010) Senitel
»

[Naloga] : Max kompresija testne datoteke

Oddelek: Programiranje
343146 (2070) StratOS
»

Matematika.. 0=1 in deljenje z nič itd.. =) (strani: 1 2 )

Oddelek: Znanost in tehnologija
767986 (6879) DimmniBurek

Več podobnih tem