Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Mirek 16. 04. 2015, 22:36:18

Název: Hra kámen nůžky papír
Přispěvatel: Mirek 16. 04. 2015, 22:36:18
Zdravím,
mám takový menší problém. Za domací úkol jsme dostali udělat Hru Kámen-Nůžky-Papír  přesně jak je to tady: http://hra-kamen.wz.cz/index.html . Pochopil jsem že to má pracovat na principu porovnání dvou čísel ale nedokážu se jaksi dostat dále :/. V php jsem se dostal semka: <?php
$a=$_GET ["platforma"];
echo "Tvoje volba je " . $a;
$b= RAND(1,3);
IF $b==1{$volba="Nůžky"};
IF $b==2{$volba="Kámen"};
IF $b==3{$volba="Papír"};
echo "Volba stoje je " . $b; a hází mi to chybu na řádku 5 něco s $b.
Prosím poraďte co dál, jsem v koncích :/
Název: Re:Hra kámen nůžky papír
Přispěvatel: to_je_jedno 16. 04. 2015, 22:49:09
tak se podivej na absolutni zacatky
http://php.net/manual/en/control-structures.if.php
priste kdyz se na neco ptas tak napis jakou presne chybu.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Mirek 16. 04. 2015, 22:53:08
 Parse error: syntax error, unexpected '$b' (T_VARIABLE), expecting '(' in C:\wamp\www\hra\hra.php on line >chybu to píše tuto
Název: Re:Hra kámen nůžky papír
Přispěvatel: Mirek 16. 04. 2015, 22:53:50
Parse error: syntax error, unexpected '$b' (T_VARIABLE), expecting '(' in C:\wamp\www\hra\hra.php on line 6
Název: Re:Hra kámen nůžky papír
Přispěvatel: Dzavy 16. 04. 2015, 23:00:19
Podmínky musí bejt uzávorkovaný, tj.

if ($b==1) ...
Název: Re:Hra kámen nůžky papír
Přispěvatel: Mirek 16. 04. 2015, 23:08:36
Dobře, když mám toto  vypíše chyby ! ) Notice: Undefined variable: b in C:\wamp\www\hra\hra.php on line 5 uplně stejnou až po řádek 8, jaký je prosím vás další krok ??
Název: Re:Hra kámen nůžky papír
Přispěvatel: lobo 16. 04. 2015, 23:32:40
podla mna by si to mal rozisit na verziu Rock Paper Scissors Lizard Spock
Název: Re:Hra kámen nůžky papír
Přispěvatel: Sfggdgz 17. 04. 2015, 05:42:46
Jeste tam pridej vyhodnocovani lidskeho z predesleho kola
a na netu si najdi ruzne styly hry.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Komačka Juraj 17. 04. 2015, 07:44:20
PHP 5.4.16
http://pastebin.com/3LW0DB5E

Promenne v retezcich ohranicenych "" se expanduji, neni potreba concat pres . + pridany zalomeni pro HTML a konzoli
Středníky v if-ech patri za prirazeni, ne za zavorky.

Doporucuji z tech trech if-u udelat funkci na prevod id volby na textovy popis a pak posilat i $a jako id, ne jako popis - zjednodusi testovani vstupu.
Název: Re:Hra kámen nůžky papír
Přispěvatel: robin martinez 17. 04. 2015, 07:49:08
Kód: [Vybrat]
<?php

$a 
$_GET["platforma"];
echo 
"Tvoje volba je $a <br />";

$b RAND(1,3);

if (
$b == 1)
$volba "Nůžky";
elseif (
$b == 2)
$volba "Kámen";
elseif (
$b == 3)
$volba "Papír";

echo 
"Volba stroje je $volba ($b) <br />";
Název: Re:Hra kámen nůžky papír
Přispěvatel: Hmmm 17. 04. 2015, 08:57:58
Kód: [Vybrat]
<?php

$a 
$_GET["platforma"];
echo 
"Tvoje volba je $a <br />";

$b RAND(1,3);

if (
$b == 1)
$volba "Nůžky";
elseif (
$b == 2)
$volba "Kámen";
elseif (
$b == 3)
$volba "Papír";

echo 
"Volba stroje je $volba ($b) <br />";
Lepsia moznost by bola:
Kód: [Vybrat]
<?php

$a 
$_GET["platforma"];
echo 
"Tvoje volba je $a <br />";

$b RAND(1,3);

switch (
$b) {
        case 
1:
          $volba "Nůžky";
        break;

        case 
2:
        
$volba "Kámen";
        break;

        case 
3:
         $volba "Papír";
        break;
}

echo 
"Volba stroje je $volba ($b) <br />";
Je to len vec good practice. Viac else if za sebou moze neskor robit problemy a je to neprakticke.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Pitrs 17. 04. 2015, 10:40:32
Na PHP me bavi ze se clovek nemusi vubec moc reozepisovat aby napsal to co chce..
Na prototypovani je PHP bezva..

<?php
$a = $_GET["platforma"];
echo "Tvoje volba je {$a}
";

$NKP=array("Nůžky","Kámen","Papír");
$b = RAND(1,3);
echo "Volba stroje je ".$KMP[$b-1]."
";
?>
Název: Re:Hra kámen nůžky papír
Přispěvatel: robin martinez 17. 04. 2015, 10:41:09
Problemy? Jaky konkretne? Je to jen otazka preference. Ja switch nepouzivam, popripade tehdy, pokud je variaci porovnavani vice (>3)
Název: Re:Hra kámen nůžky papír
Přispěvatel: Pitrs 17. 04. 2015, 10:42:34
Na PHP me bavi ze se clovek nemusi vubec moc reozepisovat aby napsal to co chce..
Na prototypovani je PHP bezva..

<?php
$a = $_GET["platforma"];
echo "Tvoje volba je {$a}
";

$NKP=array("Nůžky","Kámen","Papír");
$b = RAND(1,3);
echo "Volba stroje je ".$KMP[$b-1]."
";
?>

Chybka tohle je spravne :)
echo "Volba stroje je ".$NKP[$b-1]."
";
Název: Re:Hra kámen nůžky papír
Přispěvatel: OMG 17. 04. 2015, 12:28:23
Dobře, když mám toto  vypíše chyby ! ) Notice: Undefined variable: b in C:\wamp\www\hra\hra.php on line 5 uplně stejnou až po řádek 8, jaký je prosím vás další krok ??
Mirku, po 7 mesicich ve skole fakt nevis uplne nic?
Název: Re:Hra kámen nůžky papír
Přispěvatel: rincewind 7a 17. 04. 2015, 13:44:39
Za par minut sa da napisat aj nieco taketo http://nohsledi.sk/kpn/

Predovsetkym treba ovladat syntax
Kód: [Vybrat]
if($b==1){
  $volba="n";
}
if($b==2){
  $volba="k";
}
if($b==3){
$volba="p";
}

Html kod formularu si mozes pozriet ctrl + U a ostatne je na tebe.
Název: Re:Hra kámen nůžky papír
Přispěvatel: semestralka 17. 04. 2015, 13:50:44
Dobře, když mám toto  vypíše chyby ! ) Notice: Undefined variable: b in C:\wamp\www\hra\hra.php on line 5 uplně stejnou až po řádek 8, jaký je prosím vás další krok ??
Mirku, po 7 mesicich ve skole fakt nevis uplne nic?

ale ví kde se zeptat a dostat zadara odpověd a to je mnohem lepší  než umět nějaký html 8)
Název: Re:Hra kámen nůžky papír
Přispěvatel: Hmmm 17. 04. 2015, 13:52:57
Problemy? Jaky konkretne? Je to jen otazka preference. Ja switch nepouzivam, popripade tehdy, pokud je variaci porovnavani vice (>3)
Mne sa kedysi stavalo, ze pri vacsom pocte elseif sa zacal skript chovat nelogicky. Ale to je uz strasne davno... :) Mimo toho su ale switche prehladnejsie a citatelnejsie, nez elseify. A kaskadovitejsie.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Hmmm 17. 04. 2015, 14:32:07
Dobře, když mám toto  vypíše chyby ! ) Notice: Undefined variable: b in C:\wamp\www\hra\hra.php on line 5 uplně stejnou až po řádek 8, jaký je prosím vás další krok ??
Mirku, po 7 mesicich ve skole fakt nevis uplne nic?

ale ví kde se zeptat a dostat zadara odpověd a to je mnohem lepší  než umět nějaký html 8)
1) Nie je, pretoze vyriesenie trivialnych zalezitosti mu trva hodiny, namiesto sekund
2) A nic, len trollujes. Zbytocna snaha. :)
Název: Re:Hra kámen nůžky papír
Přispěvatel: Pitrs 17. 04. 2015, 15:59:10
No hlavne se lidi naucte pouzivat if-y , elseif-y a switche vsude tam kde jsou skutecne potreba..
Název: Re:Hra kámen nůžky papír
Přispěvatel: Hmmm 17. 04. 2015, 16:02:08
No hlavne se lidi naucte pouzivat if-y , elseif-y a switche vsude tam kde jsou skutecne potreba..
Ano, tvoja vychytavka bola pekna, ale IF alebo SWITCH v podobnom pripade moze posluzit lepsie, pretoze minimalisticke konstrukcie nie vzdy sluzia citatelnosti kodu. A to vie byt poriadny problem.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Pitrs 17. 04. 2015, 16:31:46
Ono pouziti elseif-u tu citelnost nijak nezlepsi. Nejlip je na tom asi switch, teda pokud je pouzitej jen jeden a ne nekolik vnorenych..  :)
Název: Re:Hra kámen nůžky papír
Přispěvatel: Hmmm 17. 04. 2015, 19:51:03
Ono pouziti elseif-u tu citelnost nijak nezlepsi. Nejlip je na tom asi switch, teda pokud je pouzitej jen jeden a ne nekolik vnorenych..  :)
Samozrejme. O (ne)pouziti else-ifov som uz pisal vyssie. :) ale vnorene switche... to je uz riadna prasarna. Ani si neviem predstavit pripad kedy by take nieco bolo nutne pouzit. A ked uz, tak radsej atomizovat na funkcie/metody.
Název: Re:Hra kámen nůžky papír
Přispěvatel: JS 17. 04. 2015, 21:39:57
ale vnorene switche... to je uz riadna prasarna. Ani si neviem predstavit pripad kedy by take nieco bolo nutne pouzit. A ked uz, tak radsej atomizovat na funkcie/metody.

Neni - typicky implementace stavoveho automatu (vnejsi switch je stav a vnitrni switch je prechod). Atomizovat to na metody je daleko mene prehledne.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Hmmm 20. 04. 2015, 09:20:11
ale vnorene switche... to je uz riadna prasarna. Ani si neviem predstavit pripad kedy by take nieco bolo nutne pouzit. A ked uz, tak radsej atomizovat na funkcie/metody.

Neni - typicky implementace stavoveho automatu (vnejsi switch je stav a vnitrni switch je prechod). Atomizovat to na metody je daleko mene prehledne.
Ale potom musis vnarat switch do kazdeho caseu, nie? Nie je potom problem takuto konstrukciu odladovat?
Název: Re:Hra kámen nůžky papír
Přispěvatel: rincewind 7a 20. 04. 2015, 11:59:38
Ked sa tu uz bavite o podmienkovani ako by ste riesili vyhodnocovanie vyhra/prehra? Ja som to vo svojom pokuse poriesil cez if/else. Pocital som len celkovy pocet hier a pocet vitazstiev a remiz - poceti prehier sa da vypocitat ako cellovy pocet - (vitazstva + remizy).

Kód: [Vybrat]
if(isset($volba_cloveka)){
  if($volba_cloveka == $volba_stroja){
$count_draw++;
  }
  elseif($volba_cloveka == 'n'){
if($volba_stroja == 'p'){
  $count_win++;
}
  }
  elseif($volba_cloveka == 'k'){
if($volba_stroja == 'n'){
  $count_win++;
}

  }
  elseif($volba_cloveka == 'p'){
if($volba_stroja == 'k'){
  $count_win++; 
}
  }
 
}
Název: switche
Přispěvatel: karel 20. 04. 2015, 12:14:57
O nutnosti existenece switche vypovida i to jak se k nemu postavili tvurci jazyka python, proste ho nema.
To silene break je ubijejici.
No ale abych switch uplne nezavrhoval tak v go uz break nenajdete, naopak je tam prikaz na propadnuti dal fallthrough.
Název: Re:Hra kámen nůžky papír
Přispěvatel: Tomáš Roll 20. 04. 2015, 13:34:19
Pokud se trápíš s takovýma chybama a nedokážeš je vyřešit, nebylo by lepší si zopakovat ročník?
Název: Re:Hra kámen nůžky papír
Přispěvatel: co_to 20. 04. 2015, 13:50:59
Radou tomuto jelitu neublizujete jen jemu, ale potazmo cele spolecnosti.. Php je ten nejsnazsi kram, kterehozto syntaxe se da pochopit ptakticky za odpoledne. Myslim tedy zaklad, ktery k teto blbosti staci. Pokud ma tento chlapec s timto problem a nestaci mu ani jasna chybova hlaseni, mel by jit nekam na ucne. Nedavno jsem cetl, zenemame zadne ucne. Duvod je, ze nikdo nechodi na ucne, protoze stejne udela stredni... Kdyby tento chlapec sel na kucharskeho ucne, mohli jsme bytvsichni spokojenejsi a u svych strasti si pomlaskavat na krupavych rohliccich. Kdyz na to stejne nema, muze delat v it mozna tak spravce site na zakladce a platove se pomeje tak stejne...