Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pomoc s kodem

Nudil jsem se, tak sem si řekl, žebych se mohl naučit něco nového, zkouším programovat v dávkových souborech, už jsem uspěšně vytvořil aby se v CMD měnilo pozadí a text a název, pak papouška (opakuje 2x muj napsanej text), teď sem si chtěl vytvořit ''kvíz'', dal jsem tam smajlika, 3 možnosti, a chci, aby když dám přislušný číslo, tak aby to hodilo buď ''wrong'' nebo ''correct''. Ale když to teď spustim, tak to funguje jen po ''Tvá odpověď'' a když tam dám číslo, tak cmd zmizí, kde muže byt chyba?

@echo off

echo Co je to za smajlika? - ":)"

:Zadani
echo.
echo 1 - Usmevavy
echo 2 - Smutny
echo 3 - Sileny
set /p operace=Tva odpoved:
goto operace

:operace
if %1% goto Correct
if %2% goto Wrong1
if %3% goto Wrong2

:Correct
set /a Vysledek=%echo Correct%
goto vysledek

:Wrong1
set /a Vysledek=%echo Wrong%
goto vysledek

:Wrong2
set /a Vysledek=%echo Wrong%
goto vysledek

:Vysledek
echo Vysledek odpoved je %vysledek%

Zabývám se tím celkově 1 den, předtím sem nikdy nic podobnýho nedělal, zkoušel sem už hromadu kombinaci, upravovat to, hrát si s proměnýmá (%) i s ''goto'' a pořád stejný.

Děkuju předem za rady kde je chyba :)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Ok, tak jsem na to nějakym způsobem přišel :D @echo off :start echo Co je to za smajlika? - ":)" :Z…
Kenzerut 06.02.2017 10:58
Kenzerut
Takto je to lépe: @echo off :start cls echo Co je to za smajlika? - ":)" :Zadani echo. echo 1 - Usm…
touchwood 06.02.2017 13:37
touchwood
ešte by som vyhodil tento záhadný kód goto operace :operace
sakraforte 06.02.2017 13:40
sakraforte
jj. edit: ten kód je samozřejmě neoptimální, ale zřejmě jde o nějakou školní práci, a tam je jistá…
touchwood 06.02.2017 13:56
touchwood
:-) Rozumiem.. Šachy mi nikdy moc nešly. A takýto úvod by asi vyučujúci nestrávil :-) @echo off set…
sakraforte 06.02.2017 14:20
sakraforte
Případně by to zvládnul i bez polí, podobně jako odpovědi. Ve tvém případě by musel dořešit správné… nový
Jan Fiala 06.02.2017 14:56
Jan Fiala
Išlo mi o to, aby nebola otázka zakaždým rovnaká. A odpoveď je uložená v num (prípadne num+1). S tým… nový
sakraforte 06.02.2017 15:05
sakraforte
@echo off setlocal enabledelayedexpansion enableextensions :start cls set smajlik[0]=:-) set smajlik… poslední
sakraforte 06.02.2017 19:47
sakraforte

Ok, tak jsem na to nějakym způsobem přišel :D

@echo off

:start
echo Co je to za smajlika? - ":)"

:Zadani
echo.
echo 1 - Usmevavy
echo 2 - Smutny
echo 3 - Sileny
set /p input=Tva odpoved:
goto operace

:operace
if %input%==1 goto dobre
if %input%==2 goto spatne
if %input%==3 goto spatne
pause

:dobre
echo Odpoved je Spravna!
pause >nul
goto start

:spatne
echo Odpoved je Spatna!
pause >nul
goto start

Takto je to lépe:

@echo off

:start
cls
echo Co je to za smajlika? - ":)"

:Zadani
echo.
echo 1 - Usmevavy
echo 2 - Smutny
echo 3 - Sileny
set /p input=Tva odpoved:
goto operace

:operace
if %input%==1 goto dobre
if %input%==2 goto spatne
if %input%==3 goto spatne
echo Odpoved nebyla rozeznana
goto Zadani

:dobre
echo Odpoved je Spravna!
pause >nul
goto start

:spatne
echo Odpoved je Spatna!
pause >nul
goto start

:-) Rozumiem.. Šachy mi nikdy moc nešly. A takýto úvod by asi vyučujúci nestrávil :-)

@echo off
setlocal enabledelayedexpansion enableextensions

:start
cls
set smajlik[0]=:-)
set smajlik[1]=:-(
set smajlik[2]=:-o
set smajlik[3]=:-O
set smajlik[4]=:-#

set /a num=%random% %%5

echo Co je to za smajlíka ? !smajlik[%num%]!



pause

zdroj : http://superuser.com/questions/191224/populating-a rray-in-dos-batch-script

@echo off
setlocal enabledelayedexpansion enableextensions

:start
cls
set smajlik[0]=:-)
set smajlik[1]=:-(
set smajlik[2]=:-o
set smajlik[3]=:-O
set smajlik[4]=:-#
set popis[0]=1-veselý
set popis[1]=2-smutný
set popis[2]=3-prekvapený
set popis[3]=4-retardovaný
set popis[4]=5-zúrivý

set /a num=%random% %%5

echo Co je to za smajlíka ? !smajlik[%num%]!
FOR /L %%A IN (0,1,4) DO (
  ECHO !popis[%%A]!
)

set /a pom=%num%+1
set /p input=Tva odpoved:

if %input%==%pom% goto dobre
echo Zle, to je !popis[%num%]! smajlík.

pause
goto start

:dobre
echo Správne
pause

Zpět do poradny Odpovědět na původní otázku Nahoru