C++ Cyklus datového pole – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ Cyklus datového pole – C / C++ – Fórum – Programujte.comC++ Cyklus datového pole – C / C++ – Fórum – Programujte.com

 

xgame0
Duch
11. 10. 2011   #1
-
0
-

Zdravím,

vytvářím hru s přesouváním osmi kamenů v devíti rozměrném poli a mám nastavenou strategii (v céčku). Mám ale problém, který nemůžu vyřešit. Kameny se přemísťují podle pravidel a jakmile kámen dojde do rohu hracího pole tak se zacykluje a zbytek programu jen běží mezi dvěma místy. Potřeboval bych hodit podmínku, která mi zabraní posunu kamene na jeho předchozí pozici,aby mohl jet dále a nezacyklil se..Prosíííím Heeeelp:)

Nahlásit jako SPAM
IP: 109.224.64.–
zlz
~ Anonymní uživatel
634 příspěvků
12. 10. 2011   #2
-
0
-

Tak si tu předchozí pozici ulož a pak testuj, jestli se na ni vracíš.

Nahlásit jako SPAM
IP: 213.211.51.–
H4wk.cz0
Newbie
12. 10. 2011   #3
-
0
-

#1 xgame
Tak si pro každou pozici pamatuj, zda-li jsi tam už byl nebo ne. Jakou máš strategii? Používáš nějaké prohledávání? Nevím jakou hru vytváříš, ale dost často se pro strategie používá reprezentace grafem a jeho prohledávání (nějaké info).

Nahlásit jako SPAM
IP: 195.113.21.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
xgame0
Duch
12. 10. 2011   #4
-
0
-

On je v podstatě problém vtom, že si vážně nevím rady a potřeboval bych polopaticky poradit. Vytvářím hru "Lišák" jestli vám to něco říká. Normální pole 3*3 ve kterém je 8 čísel zpřeházených a vy musíte posouváním seřadit čísla do určitého požadovaného pořadí. Moje strategie pracuje právě s prázdným políčkem a přesouvá jej podle pravidel - 1) Když není prázdné pole úplně nahoře, tak jde nahoru. 2)Když není pole úplně vpravo tak jde doprava. 3) Dolů 4)Doleva..podmínka zní, že dokud se nerovná aktuální pole tomu cílovému tak jedu pořád dokola tyto pravidla v tomto pořadí v závislosti na tom kde se nachází prázdné pole v každém kroku..Jenže jsem prostě blbej a nevím jak a kde tam hodit podmínku aby nemohla vzniknout totožní pozice čísel třeba více než dvakrát..

Nahlásit jako SPAM
IP: 109.224.64.–
liborb
~ Redaktor
+18
Guru
13. 10. 2011   #5
-
0
-

Ono to není tak jednoduché, jak by se mohlo zdát. Tvoje strategie je vlastně o náhodě - nejde o systematické prohledávání stavového prostoru. To se dělá sofistikovaněji. Bez znalosti předchozího tahu resp. předchozích tahů to řešit nelze. Ukládání posledního stavu (jak ti radil zlz) by ti třeba mohlo pomoci nebo se ti ten cyklus rozšíří na 2 tahy, takže si budeš pamatovat poslední 2 tahy atd. až nakonec skončíš u stromu ;)

Nahlásit jako SPAM
IP: 78.80.52.–
xgame0
Duch
13. 10. 2011   #6
-
0
-

No jde v podstate o to, ze nejsem schopen vytvorit prislusny prikaz, ktery by i tohle resil,proste fakt nevim jak dat dokupy zdrojak,ktery mi zaruci nacitani stavu a kontrolu zda ke stavu nedoslo a zda doslo az se vykona jiny pohyb..jsem vystavenyy a potrebuju fakt help..

Nahlásit jako SPAM
IP: 109.224.64.–
H4wk.cz
~ Anonymní uživatel
54 příspěvků
13. 10. 2011   #7
-
0
-

#6 xgame
Jak psal liborb, je to mnohem složitější problém než si myslíš. Řeší se prohledáváním stavového prostoru, každá konfigurace hry je jeden stav. Posunutím kamenu nějakým směrem přecházíš z jednoho stavu do druhého. Pamatovat si konfigurace ve kterých jsi už byl je dost paměťově náročné, celkem je 9! permutací herního pole. Je dokázáno, že se nemůžeš do všech konfigurací dostat, ale jako horní odhad to slouží dobře. Takže bys v nejhorším případě potřeboval pamatovat si 362 880 stavů. Na wiki najdeš seznam nějakých vhodných algoritmů.

Nahlásit jako SPAM
IP: 195.113.21.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 33 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý