Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 25. 03. 2011 12:33

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

pascal tahy s věží

brý den potřeboval bych poradit jak napsat tahy s věží abych jich konal oprabdu jen 14 které sou maximum a nemusel dělat všech 28

Offline

 

#2 25. 03. 2011 14:17

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

Dobrý den, jaké jaké tahy s věží? :-) Nějaký slavný šachový problém? :-)


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#3 26. 03. 2011 22:12

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

ne všechny tahy s věží které můžou nastat dělám program na inicializaci šachové partie a chtěl sem to dělat rekurzi a otestováním všechno možností co můžou nastat ale vím že maximální počet tahu co můžou nastat je 14 ... a však já jich budu muset udělat 28 .Jelikož nevím původní pozici .

Offline

 

#4 26. 03. 2011 22:24 — Editoval Pavel Brožek (26. 03. 2011 22:26)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: pascal tahy s věží

↑ Mr.Pinker:

Nerozumím. Zkus přidat interpunkci a popiš problém podrobněji a srozumitelně. Uvědom si, že narozdíl od tebe vůbec nevíme, jaký problém řešíš.

Offline

 

#5 26. 03. 2011 22:35 — Editoval claudia (26. 03. 2011 22:37)

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

Ale můžeme samozřejmě místo problému luštit zadání :-) Jen na problém pak už nezbyde :-)

Tak např. mne napadá, že věž má na prázdné šachovnici 14 možností se pohnout :-) Ale už mě nenapadá, co je "všech 28"? :-) Někdo nějaký tip? :-) Třeba, že mám dvě věže? :-) Na prázdné šachovnici? :-) Ale ne ve stejném řádku/sloupci? Ale jinak neznám pozici? :-) Jak zní otázka? :-)


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#6 26. 03. 2011 22:37 — Editoval Mr.Pinker (26. 03. 2011 22:59)

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

↑ Pavel Brožek:
dělám program ,že na vstupu dostanu pozici bílého krále ,věž a jezdce a černého krále a mám zjistit že jestli sem schopný vynutit mat... pohyby jezdce a krále už sem nějak tak naprogramoval ,ale jde mi o to jestli i u věže budu muset naprogramovat jen 14 tahu a nebo všech 28 ....jelikož na začátku nevím jaký bude vstup u koně sem to udělal tam nevadilo ,kde bude tam třeba první tah sem udělal, když vstup bude [i,j] tak po tahu bude třeba [i+1,j+2] ted ale u tý věže nevím jak to mám udělat takhle krácenně ,jelikož tam musím ke každému indexu 7 přičít abych pokryl všechny když budu v levém dolním rohu ....a však když bude v pravém horním tak musím odečítat .
tak jestli neexistuje nějakej fígl ,jak to zkrátit ten počet tahů ,jelikož už takhle je složitost programu celkem velká ....

Offline

 

#7 26. 03. 2011 22:42 — Editoval claudia (26. 03. 2011 22:44)

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

Podle toho, jak indexuješ šachovnici. Znáš funkci modulo? (konkrétně mod 8? :-)

Otázka je, zda je to skutečně největší problém toho algoritmu :-)

A ještě se dovolím zeptat, proč vynucování matu říkáš "inicializace šachové partie"? :-)


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#8 26. 03. 2011 22:44

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

↑ claudia:
modulo mě zamozřejmě napadlo ale zároven já pak budu muset inicializovat ty tahy jestli je možné aby nastaly
či ne což mi pak modulo v tom udělám bych řekl u věže celkem dobrý chaos

Offline

 

#9 26. 03. 2011 22:45 — Editoval Pavel Brožek (26. 03. 2011 22:46)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: pascal tahy s věží

↑ Mr.Pinker:

Žádal jsem tě, abys používal interpunkci, ale nezdá se, že bys to respektoval. Promiň, tohle se nedá číst, téma opouštím, claudia snad bude mít větší trpělivost.

Offline

 

#10 26. 03. 2011 22:57

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

inicializace sem to nazval protože musím nastavit tahy tak abych vyhrál aniž vím jak on potáhne

Offline

 

#11 26. 03. 2011 23:07

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

No, vzhledem k tomu, že pan Růžovější má spoustu kladných bodů za pomoc jiným, zkusím neutéct hned :-) Ale také se přidám k prosbě - piš česky, gramaticky správně a hlavně srozumitelně.

Pro začátek bych potřebovala osvětlit význam věty "já pak budu muset inicializovat ty tahy jestli je možné aby nastaly".


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#12 26. 03. 2011 23:15

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

no jelikož jako další funkci mám zjiťování zda-li může ten tah nastat nebo ne .
příklad stojím na [1,1] a chci se dostat na [7,1] což s věží samozřejmě není problém ,ale pak může tam nastat situace že třeba na [5,1] bude například můj kun a proto ten tah udělat nemohu

Offline

 

#13 26. 03. 2011 23:39

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

OK, nerozumím :-)

Ale to asi nevadí. Pokud tvrdíš, že problém zní "zjistit, jestli jsi schopen vynutit mat králem, jezdcem a věží", pak odpověď zní "ano". Za předpokladu, že jsi na tahu první. Je to možné dokonce i bez toho jezdce. Existuje na to algoritmus, který není tak těžké dohledat.


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#14 26. 03. 2011 23:45

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

↑ claudia:
Já sem právě nemohl najít nic co by mi k tomu pomohlo tak sem to chtěl řešit pomocí rekurze že zkusím všechny možnosti s tím že to omezím na 5 tahů aby to nebylo tak náročný , jenže ted sem zjistil že nevím jak dál pohybovat s tou věží ...... Já to musím zjistit na omezenej počet tahu ten počet dostanu na vstupu

Offline

 

#15 26. 03. 2011 23:59 — Editoval claudia (27. 03. 2011 00:02)

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

Dobře, pokud je to omezené na malý počet tahů, pak asi hrubé prohledávání možností dává smysl.

Takže rekurze je předpokládám taková, že předáváš pozici a počet zbývajících tahů. Pak zkoušíš postupně táhnout všemi třemi svými figurami a spustíš rekurzivně na nové pozice s umenšeným počtem zbývajících tahů (a pro všechny možnosti pohybu druhého krále).

Tahy věží nejsou složité. Řešení jsou různá. Nejjednodušší je asi zkoušet to postupně do všech čtyř směrů. Mám-li tedy věž na i-tém řádku a j-tém sloupci, tak zkusím:

a) táhnout nahoru

pro k od i-1 do 1
    pokud na [k, j] není jiná figura
        přesuň věž na [k, j]
        volej rekurzivně
    pokud na [k, j] je jiná figura
        ukonči cyklus

b) táhnout dolu

pro k od i+1 do 8
    ...totéž

c) táhnout doleva

pro k od i-1 do 1
    pokud na [i, k] není jiná figura
    ...analogicky

d) táhnout doprava

pro k od i+1 do 8
    ...totéž

-----

Takto rozhodně vždy vyzkouším nejvýše 14 tahů. Ač je to trochu rozvláčně naprogramováno. Výhodou je, že okamžitě vyfiltruješ ilegální tahy. Namísto abys nejprve vygeneroval všechny (např. tím přičítáním 1-7 mod 8) a pak filtroval, které jsou možné.


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#16 27. 03. 2011 16:13 — Editoval Mr.Pinker (27. 03. 2011 16:56)

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

děkuji udělal sme to nějak obdobně, ale ted se potřebuji zeptat jestli nevíte, jak ověřit jestli někam můžu s bílým králem tedy jestli v okolí toho políčka kam chci jít není černý král
zatím sem pokročil takto

tohle sou tahy kone
procedure tahni

Code:

if tahy[1]  then
begin
sacho[i,j]:=0
sacho[i+1,j+2]
end else
if tahy[2] then
begin
sacho[i,j]:=0
sacho[i+1,j-2]:=1
end else
if tahy[3] then
begin
sacho[i,j]:=0
sacho[i+2,j-1]:=1
end else
if tahy[4] then
begin
sacho[i,j]:=0
sacho[i+2,j+1]:=1
end else
if tahy[5] then
begin
sacho[i,j]:=0
sacho[i-2,j-1]:=1
end else
if tahy[6]then
begin
sacho[i,j]:=0
sacho[i-2,j+1]:=1
end else
if tahy[7]then
begin
sacho[i,j]:=0
sacho[i-1,j-2]:=1
end else
if tahy[8]then
begin
sacho[i,j]:=0
sacho[i-1,j+2]:=1
end else

tahy krale

Code:

if tah[9]= then
begin
sacho[i,j]:=0
sacho[i,j+1]:=2;
end else
if tah[10]= then
begin
sacho[i,j]:=0
sacho[i+1,j+1]:=2;
end else
if tah[11]= then
begin
sacho[i,j]:=0
sacho[i+1,j]:=2;
end else
if tah[12]= then
begin
sacho[i,j]:=0
sacho[i+1,j-1]:=2;
end else
if tah[13]= then
begin
sacho[i,j]:=0
sacho[i,j-1]:=2;
end else
if tah[14]= then
begin
sacho[i,j]:=0
sacho[i-1,j-1]:=2;
end else
if tah[15]= then
begin
sacho[i,j]:=0
sacho[i-1,j]:=2;
end else
if tah[16]= then
begin
sacho[i,j]:=0
sacho[i-1,j+1]:=2;
end

tahy veze

Code:

if tah[17] then
        begin
        sacho[i,j]:=0
        sacho[i-7,j]:=3;
        end else
if tah[18] then
        begin
        sacho[i,j]:=0
        sacho[i-6,j]:=3;
        end else
if tah[19] then
        begin
        sacho[i,j]:=0
        sacho[i-5,j]:=3;
        end else
if tah[20] then
        begin
        sacho[i,j]:=0
        sacho[i-4,j]:=3;
        end else
if tah[21] then
        begin
        sacho[i,j]:=0
        sacho[i-3,j]:=3;
        end else
if tah[22] then
        begin
        sacho[i,j]:=0
        sacho[i-2,j]:=3;
        end else
if tah[23] then
        begin
        sacho[i,j]:=0
        sacho[i-1,j]:=3;
        end else
if tah[24] then
        begin
        sacho[i,j]:=0
        sacho[i+1,j]:=3;
        end else
if tah[25] then
        begin
        sacho[i,j]:=0
        sacho[i+2,j]:=3;
        end else
if tah[26] then
        begin
        sacho[i,j]:=0
        sacho[i+3,j]:=3;
        end else
if tah[27] then
        begin
        sacho[i,j]:=0
        sacho[i+4,j]:=3;
        end else
if tah[28] then
        begin
        sacho[i,j]:=0
        sacho[i+5,j]:=3;
        end else
if tah[29] then
        begin
        sacho[i,j]:=0
        sacho[i+6,j]:=3;
        end else
if tah[30] then
        begin
        sacho[i,j]:=0
        sacho[i+7,j]:=3;
        end else
if tah[31] then
        begin
        sacho[i,j]:=0
        sacho[i,j+1]:=3;
        end else
if tah[32] then
        begin
        sacho[i,j]:=0
        sacho[i,j+2]:=3;
        end else
if tah[33] then
        begin
        sacho[i,j]:=0
        sacho[i,j+3]:=3;
        end else
if tah[34] then
        begin
        sacho[i,j]:=0
        sacho[i,j+4]:=3;
        end else
if tah[35] then
        begin
        sacho[i,j]:=0
        sacho[i,j+5]:=3;
        end else
if tah[36] then
        begin
        sacho[i,j]:=0
        sacho[i,j+6]:=3;
        end else
if tah[37] then
        begin
        sacho[i,j]:=0
        sacho[i,j+7]:=3;
        end else
if tah[38] then
        begin
        sacho[i,j]:=0
        sacho[i,j-1]:=3;
        end else
if tah[39] then
        begin
        sacho[i,j]:=0
        sacho[i,j-2]:=3;
        end else
if tah[40] then
        begin
        sacho[i,j]:=0
        sacho[i,j-3]:=3;
        end else
if tah[41] then
        begin
        sacho[i,j]:=0
        sacho[i,j-4]:=3;
        end else
if tah[42] then
        begin
        sacho[i,j]:=0
        sacho[i,j-5]:=3;
        end else
if tah[43] then
        begin
        sacho[i,j]:=0
        sacho[i,j-6]:=3;
        end else
if tah[44] then
        begin
        sacho[i,j]:=0
        sacho[i,j-7]:=3;
        end

a toto sou ověřování

Code:

tahy
for i=1 to 44 do
tahy[i]:=false ;
if (i<8) and (j<7) and (sacho[i+1,j+2]=0);
tahy[1]:=true  ;
if (i<8) and (j>2) and (sacho[i+1,j-2]=0);
tahy[2]:=true  ;
if (i<7) and (j>1) and (sacho[i+2,j-1]=0);
tahy[3]:=true  ;
if (i<7) and (j<8) and (sacho[i+2,j+1]=0);
tahy[4]:=true  ;
if (i>2) and (j>1) and (sacho[i-2,j-1]=0);
tahy[5]:=true;
if (i<8) and (j<7) and (sacho[i-2,j+1]=0);
tahy[6]:=true;
if (i>1) and (j>2) and (sacho[i-1,j-2]=0);
tahy[7]:=true;
if (i<8) and (j<7) and (sacho[i-2,j-1]=0);
tahy[8]:=true;
if  (j<8) and (sacho[i,j+1]=0) and ;
tahy[9]:=true;

a ted nevím jak dál právě to ošetřit

Offline

 

#17 27. 03. 2011 16:40

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

↑ Mr.Pinker:

Asi by to chtělo ten kód rozložit do menších celků :-) Tohle je human-unreadable :-)


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#18 27. 03. 2011 16:57

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

editnul sem to

Offline

 

#19 27. 03. 2011 17:05 — Editoval claudia (27. 03. 2011 17:06)

claudia
Richard P. Feynman
Příspěvky: 478
Reputace:   41 
 

Re: pascal tahy s věží

↑ Mr.Pinker:

A co to má dělat? :-)

Co značí obsahuje pole tahy[] popř. pole tah[]? Co je pole sacho[]? Proč tam někde nepoužiješ nějaký komentář, popř. cyklus. Proč jsou některé příkazy na dvaceti různých řádcích? Tohle není program, to je nevkus :-)

A proč u té věže nepoužiješ to, co jsem včera pacně vysvětlovala?


Pište prosím své dotazy srozumitelně a v TeXu (Detexify). Píšete je jen jednou, ale my je čteme mnohokrát. Čím méně času strávím luštěním vaší otázky, tím více mi zbyde na její zodpovězení.

Offline

 

#20 27. 03. 2011 21:17

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: pascal tahy s věží

↑ claudia:
tahy[] a tah[] má bejt to jisté a má to bejt booleanové pole jestli ten tah může nastat a nebo ne . to je to co ověřuju ,přišel sem jak na koně ,ale u krále nevím jak zajistit ,aby na okolních pozicích cílového pole nebyl král.... využil sem toho v ouzkoušení tahu s tou věží ,sacho je šachovnice na které probíhá hra.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson