[PHP] - dvojrozměrné pole -Šachy-

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod ice95cubecz 1. 11. 2011 16:44

Dobrý den, jsem žákem 2. ročníku víceletého gymnázia. Zajímám se o programování a teď jsem dostal za úkol vyřešit tuto úlohu:
Kód: Vybrat vše
//přiřazení 2 figurek
$p["e"][7]="dama_c";
$p["b"][1]="pion_b";


Zkoušel jsem různá řešení, ale podle syntaxe by to mělo být správně... Chyba bude tedy v logickém směru. Mohl by mi někdo pomoct? Jedná se o šachy... Jediné co mě napadlo, že bílý pěšák začíná jako první :D Děkuju
2x Pioneer CDJ-900
Pioneer DJM-800
Technics RPDH-1200
Acer Aspire 7750g
:) Never BBQ before a gig... - Dada Life
ice95cubecz
Kolemjdoucí

Odeslat příspěvekod karlos00x 1. 11. 2011 17:03

1. nikdo to tady nevyresi kompletne za tebe, maximalne nakopneme spravnym smerem
2. muzes napsat to zadani tak aby ho pochopil i normalni clovek?
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod ice95cubecz 1. 11. 2011 17:10

1. To ani nechci, jen bych chtěl poradit v čem by ta chyba mohla být.
2. Máme dvojrozměrné pole, Dvě figurky: černá dáma (dama_c) a bílý pěšák (pion_b). Za úkol máme zjistit kde je ve zdrojáku chyba... Nevím jak jinak to vysvětlit... Reprodukuji vyučujícího :) Tady máte tedy pro jistotu Zadání
Kód: Vybrat vše
Dvojrozměrné pole:
Např. figurky na šachovnici:
Úkol:
//přiřazení 2 figurek
$p["e"][7]="dama_c";
$p["b"][1]="pion_b";

Kde je v uvedeném zdrojáku chyba?

Lámu si s tím hlavu celý týden, a tak bych byl rád kdyby jste mne "nakopl" tedy tím správným směrem :)
2x Pioneer CDJ-900
Pioneer DJM-800
Technics RPDH-1200
Acer Aspire 7750g
:) Never BBQ before a gig... - Dada Life
ice95cubecz
Kolemjdoucí

Odeslat příspěvekod karlos00x 1. 11. 2011 17:26

obavam se, ze toto je test z hry šachy a ne php.

napada me snad jen, ze cislovani v poli zacina nulou, takze dama je na osmem poli a pion na druhem, tak treba jestli nestoji na spatnych polickach - sachy totiz neznam.
Jinak v tech dvou radcich kodu nevidim chybu. Snad by jeste mohlo predtim byt to pole vytvoreno, ale v php to neni nutne.
Pak mozna uvozovky u toho prvniho rozmeru pole, pouzivam ' ale to by taky asi nemela byt chyba.
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod Beda 2. 1. 11. 2011 17:29

Kód: Vybrat vše
//přiřazení 2 figurek
$p[4][7]="dama_c";
$p[1][1]="pion_b";

co takhle?
edit:
nevim jestli se v PHP muzou nastavovat indexy v poli pismeny, ale mylim, ze ne.
Beda 2.
Junior

Odeslat příspěvekod karlos00x 1. 11. 2011 17:38

Tak bylo by to asi v urcitych pripadech mozna "spravnejsi"..., ale ono by se to dalo uplne zhusta napsat:
Kód: Vybrat vše
$p["e"][8]="dama_c";
$p["b"][2]="pion_b";

a bylo by to taky bezchybne pokud bych pri prirazovani radek napsal vzdy takhle a tim padem nepouzil jako prvni prvek 0 (coz by asi bylo mohlo byt vyhodnejsi pri vypisovani pres:
Kód: Vybrat vše
foreach($array as $delta => $value) {}


Pokud dal ucitel jen ty dva radky kodu pak bych mu odpovedel ze tam chyba (= error) neni. Takovy kod probehne aniz by PHP chybu zahlasilo. A pokud neznam okolni kod tak nemuzu rict ze by tam neco bylo spatne prirazeno.

-- 1. 11. 2011 16:40 --

Beda: asociativni pole to zna, index muze byt string, to neni problem.

kdyz das:
Kód: Vybrat vše
$p["e"][7]="dama_c";
$p["b"][1]="pion_b";
print_r($p);

tak se to chova presne tak jak bych cekal.
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod Beda 2. 1. 11. 2011 17:58

Z sachovyho hlediska by tam mohla byt chyba ze pionu muze byt 8, tak ze pion1_b, ale nepredpokladam, ze ze to test na znalost sachu.

Kazdopadne bych zkusil odpovedet, jak jsem psal vyse, treba ucitel nema potuchu o asociativnich polich zrovna tak, jako jsem ji jeste pred chvilkou nemel ja :-). Diky karlos00x
A pokud by to byla ta chyba, tak muze uciteli rict, ze to vlastne chyba neni.
Snad to ucitel snese.

edit:
tady se resi neco podobnyho
http://www.linuxsoft.cz/article.php?id_article=179
Beda 2.
Junior

Odeslat příspěvekod kernel_panic [passed] 1. 11. 2011 18:07

základní chyba celýho zadání je ta, že bílej pěšák (pion_b) nikdy nebude stát na pozici B1...
k bití internetovejch nihilistů jsem už příliš starej, ale za ty roky mně narostl krunýř, o kterej se vždy báječně rozplácnete; takže, mám zůstat čelem nebo?
kernel_panic [passed]
Přeborník Živě roku 2008
Uživatelský avatar

Odeslat příspěvekod karlos00x 1. 11. 2011 18:10

kernel: proč myslíš? podle damy(ktera je na E8 ale s indexem 7) by to odpovidalo ze prvni radek ma index 0 a tim padem je pesak fakticky na B2.
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod kernel_panic [passed] 1. 11. 2011 18:11

to jsou dohady, černá dáma klidně na E7 stát může...
k bití internetovejch nihilistů jsem už příliš starej, ale za ty roky mně narostl krunýř, o kterej se vždy báječně rozplácnete; takže, mám zůstat čelem nebo?
kernel_panic [passed]
Přeborník Živě roku 2008
Uživatelský avatar

Odeslat příspěvekod karlos00x 1. 11. 2011 18:13

Beda 2. píše:Z sachovyho hlediska by tam mohla byt chyba ze pionu muze byt 8, tak ze pion1_b, ale nepredpokladam, ze ze to test na znalost sachu.

Tady vidim ja osobne reseni! Proto je tam cerna dama a nikoliv treba vez!

-- 1. 11. 2011 17:14 --

kernel: stat tam muze, ale myslim si ze tady se jednalo o vychozi postaveni na zacatku hry.

-- 1. 11. 2011 17:15 --

a chybu neudelal zajiste programator ale analytik :)
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod kernel_panic [passed] 1. 11. 2011 18:17

pokud to má být výchozí postavení a index začíná nulou (z čehož ani jedna informace není potvrzená) pak evidentně špatně stojí dáma, jelikož černá dáma začíná na D8 (["d"][7])
k bití internetovejch nihilistů jsem už příliš starej, ale za ty roky mně narostl krunýř, o kterej se vždy báječně rozplácnete; takže, mám zůstat čelem nebo?
kernel_panic [passed]
Přeborník Živě roku 2008
Uživatelský avatar

Odeslat příspěvekod karlos00x 1. 11. 2011 18:21

kernel: ne. vychazim z toho ze index zacina nulou a tim padem mame:
pion na B2 ([b][1])
dama na E8 ([E][7])


....
aha, uz tady necham ty svoje myslenkove pochody byt jsou spatne a doplnim to tim ze jsem si na wiki neprohledl moc dobre ikonky.
Kazdopadne tim mame dve chyby a student dostane za jedna :)

-- 1. 11. 2011 17:24 --

a pak muzes jeste zamachrovat na ucitele, ze je vsechno v poradku protoze nikde neni psano ze sloupec A ma index [a] a ze tedy pokud chces zmast cloveka ktery ti ukradne kod tak sis herni plan o jedno pismeno posunul
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod Beda 2. 2. 11. 2011 00:42

Mohl by, az bude vedet spravne reseni, dat vedet v cem byla chyba.
Beda 2.
Junior

Odeslat příspěvekod ice95cubecz 2. 11. 2011 22:25

Tak s kamarádem jsme právě na to, že pěšák nikdy nemůže stát na pozici B1 také přišli asi před dvěma hodinama, ale Programování máme příští úterý, takže nejspíš se správnou odpověď dozvíme až 8.11. , Jinak nemyslím si, že by bylo třeba nějak zajíždět do asociativních polích (o kterých fakticky nemám tucha :D), jelikož překladač (Používáme PSPad Editor a školní Apache server) chybu nehlásí ani nenajde. Tudíž ta chyba bude na 99% v tom nešikovném pěšákovi :). Jinak děkuji moc za rady, ikdyž jsem na některé koukal s otevřenými ústy :-O. Ondřej Jurkovič

P.S. Pokusím se správnou odpověď na učiteli vymámit co nejdřív abychom mohli všichni v poklidu spát :D
P.P.S Verzi PSPadu ani servrového prostředí (natož pak jeho název ) neznám.
2x Pioneer CDJ-900
Pioneer DJM-800
Technics RPDH-1200
Acer Aspire 7750g
:) Never BBQ before a gig... - Dada Life
ice95cubecz
Kolemjdoucí

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků