• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kolejny (-,-) problem z plikiem wsadowym.

Object Storage Arubacloud
0 głosów
212 wizyt
pytanie zadane 17 września 2015 w Inne języki przez b00ny Mądrala (6,050 p.)

Witam!

Kolejny błąd polega na tym iż jeśli wpisze cokolwiek np. AKHDSUFBHDSGVDFHBASS to skrypt uzna to za poprawną odpowiedź. 

Kod:

@echo off
echo Witaj w quzie o Tivolcie. Jest malo pytan , lecz jakbym dal
echo wiecej to byloby bardzo duzo linijek kodu :)
echo.
echo.
color 2
echo Pytanie Pierwsze:
echo Imie dziewczyny Tivolta:
echo Uwzgledniana jest wielkosc znakow :)
echo.
echo.
color 2
echo ODPOWIEDZI: Zosia  Karolina
set/p odp1=Odp:
IF "%odp1%" == "Zosia" goto 1
IF "%odp1%" == "Karolina" goto 2
:1
color a
echo Poprawnie!
goto odp2
:2
color 4
echo ZLE!
echo Poprawna odpowiedz to: Zosia
:odp2
cls 
color 2
echo Poprawnie!
echo.
echo.
echo Pytanie Drugie:
echo Ile kanałów ma Tivolt?
echo.
echo.
echo ODPOWIEDZI: 1 3
set/p odp2=Odp:
IF "%odp2%" == "3" goto 3
IF "%odp2%" == "1" goto 4
:3
color a
echo Poprawnie!
goto odp3
:4
color 4
echo ZLE!
echo Poprawna odpowiedz to: 3.
:odp3
cls 
color 2
echo Poprawnie!
echo.
echo.
echo Pytanie Trzecie:
echo Wyznacznik Tivolta?
echo.
echo.
echo ODPOWIEDZI: Drabina  Jebacze
set/p odp3=Odp:
IF "%odp3%" == "Drabina" goto 5
IF "%odp3%" == "Jebacze" goto 6
:5
color a
echo Poprawnie!
goto Wygrana
:6
echo ZLE!
echo Poprawna odpowiedz to: Drabina.
:Wygrana
cls
echo Brawo! Udalo ci sie ukonczyc quiz.
echo Teraz mozesz sie czuc jak pelnoprawny Jebacz.
echo Dzieki za gre.
echo (Copyright) b00ny 2015. Wszelkie Prawa Zastrzezone.
pause >nul

 

2 odpowiedzi

0 głosów
odpowiedź 17 września 2015 przez Pieniek Gaduła (3,330 p.)
wybrane 19 września 2015 przez b00ny
 
Najlepsza

Haha moja wina powinienem był Ci to lepiej wyjaśnić więc tym razem nie wyślę gotowego kodu.

Musisz to sobie wyobrazić tak kod wykonuje się polecenie po poleceniugoto coś przenosi wskaźnik do :coś .
I teraz musisz się zastanowić co się stanie jeśli żaden if nie przeniesie wskaźnika

komentarz 17 września 2015 przez Pieniek Gaduła (3,330 p.)
Jak coś pytaj!

Cała nauka programowania polega na nauczeniu się zadawania sobie odpowiedniych pytań.
komentarz 18 września 2015 przez b00ny Mądrala (6,050 p.)

Poprawiłem kod. Lecz wystąpił ten sam problem czyli po wpisaniu byle czego skrypt uznaje to za dobrą odp.

Kod:

@echo off
echo Witaj w quzie o Tivolcie. Jest malo pytan , lecz jakbym dal
echo wiecej to byloby bardzo duzo linijek kodu :)
echo.
echo.
color 2
echo Pytanie Pierwsze:
echo Imie dziewczyny Tivolta:
echo Uwzgledniana jest wielkosc znakow :)
echo.
echo.
color 2
echo ODPOWIEDZI: Zosia  Karolina
set/p odp1=Imie to:
IF "%odp1%" == "Zosia" goto odp2
IF "%odp1%" == "Karolina" goto zle
:odp2
cls 
color 2
echo Pytanie Drugie:
echo Ile kanałów ma Tivolt?
echo.
echo.
echo ODPOWIEDZI: 1 3
set/p odp2=Liczba:
IF "%odp2%" == "3" goto odp3
IF "%odp2%" == "1" goto zle
:odp3
cls 
color 2
echo Pytanie Trzecie:
echo Wyznacznik Tivolta?
echo.
echo.
echo ODPOWIEDZI: Drabina  Jebacze
set/p odp3=Wyznacznik to:
IF "%odp3%" == "Drabina" goto Wygrana
IF "%odp3%" == "Jebacze" goto zle
:zle
color 4
echo ZLE!
:Wygrana
cls
color 2
echo Brawo! Udalo ci sie ukonczyc quiz.
echo Teraz mozesz sie czuc jak pelnoprawny Jebacz.
echo Dzieki za gre.
echo (Copyright) b00ny 2015. Wszelkie Prawa Zastrzezone.
pause >nul

 

komentarz 18 września 2015 przez Pieniek Gaduła (3,330 p.)
edycja 18 września 2015 przez Pieniek

Hmm jeśli chcesz mogę Ci wysłać poprawiony kod.

Polecam przeprowadzić śledzenie kodu. Wyobraź sobie że wpisujesz te przypadkowe dane i linijka po linijce analizuj co wg Ciebie powinno się stać. Znajdz punkt w którym twoje wyobrażenie rozjeżdzają się z efektem końcowym i tam coś dopisz.

Do tego dodam że etykiety czyli np :odp2 służą jedynie do przenoszenia wskażnika poleceniem goto a same w sobie nie robią już niczego więcej. Kod za nimi jest wykonywany nawet jeśli nie zostanie wywołana ta etykieta poleceniem goto jeśli dojdzie do niej wskaźnik!

komentarz 18 września 2015 przez b00ny Mądrala (6,050 p.)
To jak mam to zrobić ? Siedzę i siedzę i błędów nie widze. Robie tak jak napisałeś. Są poradniki do tego? Dalej nie rozumiem czemu skrypt nie sprawdza czy odpowiedź użytkownika jest poprawna >.<
komentarz 18 września 2015 przez Pieniek Gaduła (3,330 p.)
@echo off
echo Witaj w quzie o Tivolcie. Jest malo pytan , lecz jakbym dal
echo wiecej to byloby bardzo duzo linijek kodu :)
echo.
echo.
color 2
echo Pytanie Pierwsze:
echo Imie dziewczyny Tivolta:
echo Uwzgledniana jest wielkosc znakow :)
echo.
echo.
color 2
echo ODPOWIEDZI: Zosia  Karolina
set/p odp1=Imie to:
IF "%odp1%" == "Zosia" goto odp2
goto zle
:odp2
cls 
color 2
echo Pytanie Drugie:
echo Ile kanałów ma Tivolt?
echo.
echo.
echo ODPOWIEDZI: 1 3
set/p odp2=Liczba:
IF "%odp2%" == "3" goto odp3
goto zle
:odp3
cls 
color 2
echo Pytanie Trzecie:
echo Wyznacznik Tivolta?
echo.
echo.
echo ODPOWIEDZI: Drabina  Jebacze
set/p odp3=Wyznacznik to:
IF "%odp3%" == "Drabina" goto Wygrana
:zle
color 4
echo ZLE!
goto koniec
:Wygrana
cls
color 2
echo Brawo! Udalo ci sie ukonczyc quiz.
echo Teraz mozesz sie czuc jak pelnoprawny Jebacz.
:koniec
echo Dzieki za gre.
echo (Copyright) b00ny 2015. Wszelkie Prawa Zastrzezone.
pause >nul

Wydaje mi się że nie rozumiesz czym są etykiety i traktujesz je jak bloki kodu. Ale bez stresu nic na siłe z czasem po prostu Cię olśni (przeanalizowanie jak zmieniłem ten kod chyba powinno pomóc).

komentarz 18 września 2015 przez b00ny Mądrala (6,050 p.)
Dzięki! Lecz ja nie chce iśc do etykiety gotowiec , tylko naucz się :D

Analizuję kod który dałeś. Pierwsze co na razie zauważyłem to jest tylko jeden if na jedną odpowiedź.

A poza tym nie wiem co masz na mysli mówiąc "traktujesz je jak bloki kodu".

Pozdrawiam. :D
komentarz 18 września 2015 przez Pieniek Gaduła (3,330 p.)
@echo off
echo Pytanie Pierwsze:
echo Mozliwe odpowiedzi:
echo A , B , C
:pytanie
set/p odp=Wybrana odpowiedz to:
IF "%odp%" == "A" goto poprawnie
IF "%odp%" == "B" goto blad
IF "%odp%" == "C" goto blad
echo Musisz wybrac jedna z trzech mozliwych odpowiedzi
echo (A , B lub C)
goto pytanie
:poprawnie
echo Poprawna odpowiedz!
goto koniec
:blad
echo Bledna odpowiedz!
:koniec
echo Dzieki za udzial w grze : )
pause >null

Tu zrobiłem ładniej jedno pytanie może lepiej to przeanalizuj. No i powodzenia! : )

komentarz 18 września 2015 przez b00ny Mądrala (6,050 p.)
Ahhh już rozumiem! xD

Dzięki :)
0 głosów
odpowiedź 17 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Heh, nie wiem czy nie jestem ślepy i nie przeoczyłem czegoś, ale jeśli chcesz się zabezpieczyć przed błędną odpowiedzią, to ustal etykiete tuż przed pobraniem odpowiedzi i po ifach daj else i wtedy goto etykieta. Sorki, jutro napiszę trochę zrozumialej w razie czego, bo pod wieczór już nie myślę :)
komentarz 18 września 2015 przez b00ny Mądrala (6,050 p.)
Tylko to jest Plik wsadowy (DOS windowsa) I są tam dwa ify czyli

IF EXIST plik komenda

IF "zmienna" == "odp" goto etykieta

Ja tak to rozumiem.
komentarz 18 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Nie wiem czy o to ci chodzi, ale ja zawsze robiłem to w ten sposób:

http://wklej.org/id/1798921/

NIe wiem czy cię dobrze zrozumiałem :) Ale jeśli są błędy to sorki, ale ja w batchu nie siedzę od dawna :] A się fajne gierki robiło :)

Podobne pytania

0 głosów
1 odpowiedź 138 wizyt
pytanie zadane 17 września 2015 w Inne języki przez b00ny Mądrala (6,050 p.)
0 głosów
1 odpowiedź 1,260 wizyt
pytanie zadane 8 grudnia 2019 w PHP przez Dariusz Hozer Użytkownik (920 p.)
0 głosów
2 odpowiedzi 184 wizyt
pytanie zadane 23 października 2016 w HTML i CSS przez SebbaGamess Użytkownik (690 p.)

92,614 zapytań

141,465 odpowiedzi

319,773 komentarzy

61,996 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...