[C++] Losowanie w switch()
Ostatnio zmodyfikowano 2013-12-23 15:56
dawid Temat założony przez niniejszego użytkownika |
[C++] Losowanie w switch() » 2013-12-22 14:12:58 Witam, korzystając z kursu C++ (lekcji o switch) próbuję zrobić coś w stylu gry tekstowej, w której odpowiada się na pytania. Tyle tytułem wstępu. Otóż mam taki kod: #include <iostream> #include <conio.h>
int main() { int liczba; std::cout << "Wcisnij dowolny przycisk, by zaczac gre. "; std::cin >> liczba; switch( liczba ) { case 1: std::cout << "Pytanie 1 \n"; break; case 2: std::cout << "Pytanie 2" << std::endl; break; case 3: std::cout << "Pytanie 3" << std::endl; break; } getch(); return 0; }
Lecz nie bardzo wiem jak zrobić coś takiego, że jeśli wciśnie się dowolny przycisk to z funkcji switch losują się te pytania. Próbowałem z random() ale nic mi nie wychodziło. Lecz to działa tak, ze jak wcisnę 1 to pojawia się "Pytanie 1" a jak 2 to "Pytanie 2 " itd. Wie może ktoś w czym jest błąd? Możecie mnie nakierować? |
|
kubawal |
» 2013-12-22 14:18:12 #include <cstdlib>
srand( time( NULL ) );
liczba =( rand() % 3 ) + 1;
|
|
dawid Temat założony przez niniejszego użytkownika |
» 2013-12-22 14:54:50 Ale jak mam tego użyć w kodzie powyżej? |
|
kubawal |
» 2013-12-22 15:14:38 na początku i srand( time( NULL ) ); liczba =( rand() % 3 ) + 1;
|
po |
|
dawid Temat założony przez niniejszego użytkownika |
» 2013-12-22 21:17:09 Ok, to działa. Mam za to inny problem z tym związany. #include <iostream> #include <conio.h> #include <cstdlib> #include <ctime>
int main() { char wpisane1 = 'b' || 'B'; char wpisane2 = 'c' || 'C'; char wpisane3 = 'd' || 'D'; int pytania; std::cout << "******************Witaj w grze ''Pytania''******************"; std::cout << "\t\t\tWcisnij dowolny przycisk, aby zaczac gre."; std::cin >> pytania; srand( time( NULL ) ); pytania =( rand() % 3 ) + 1; switch( pytania ) { case 1: std::cout << "Rzeka nad, ktora znajduje sie najwiecej zamkow we Francji to: \n"; std::cout << "A: Aussonnelle \n"; std::cout << "B: Loara \n"; std::cout << "C: Claise \n"; std::cout << "D: Bruxenelle \n"; std::cout << "Wpisz poprawna odpowiedz, podajac litere jej odpowiadajaca: \n"; getch(); std::cin >> wpisane1; if( wpisane1 == 'b' || 'B' ) std::cout << "(B - Loara) Gratulacje! Poprawna odpowiedz. " << wpisane1 << std::endl; else std::cout << "Niestety... zla odpowiedz. Poprawna to Loara(B)" << std::endl; break; case 2: std::cout << "Komiksowym ''dzieckiem'' rysownika Boba Kane'a jest: " << std::endl; std::cout << "A: SumerMan \n"; std::cout << "B: Spider-Man \n"; std::cout << "C: Batman \n"; std::cout << "D: Captain America \n"; std::cout << "Wpisz poprawna odpowiedz, podajac litere jej odpowiadajaca: \n"; getch(); std::cin >> wpisane2; if( wpisane2 == 'c' || 'C' ) std::cout << "(C - Batman) Gratulacje! Poprawna odpowiedz. " << wpisane2 << std::endl; else std::cout << "Niestety... zla odpowiedz. Poprawna to Batman(C)" << std::endl; break; case 3: std::cout << "Skad pochodzi Conan Barbarzynca? " << std::endl; std::cout << "A: z Rivii \n"; std::cout << "B: z Oz \n"; std::cout << "C: z Mordoru \n"; std::cout << "D: z Cimmerii \n"; std::cout << "Wpisz poprawna odpowiedz, podajac litere jej odpowiadajaca: \n"; getch(); std::cin >> wpisane3; if( wpisane3 == 'd' || 'D' ) std::cout << "(D - z Cimmerii) Gratulacje! Poprawna odpowiedz. " << wpisane3 << std::endl; else std::cout << "Niestety... zla odpowiedz. Poprawna to z Cimmerii(D)" << std::endl; break; } getch(); return 0; }
Nie wiem czemu ale jak wpiszę dowolną literę, to pojawia mi się, że odpowiedź jest prawidłowa. Próbuję i próbuję to naprawić jakoś ale nie bardzo wiem jak. Czy coś jest nie tak z warunkiem if( wpisane1 == 'b' || 'B' ) ? |
|
SeaMonster131 |
» 2013-12-22 21:20:38 W ten sposób nie tworzy się warunków. Musisz zrobić: if( zmienna == 'b' || zmienna == 'B' )
itd.. I nie rozumiem, po co dałeś takie przypisanie: char wpisane1 = 'b' || 'B';
|
|
dawid Temat założony przez niniejszego użytkownika |
» 2013-12-22 21:27:31 Utworzyłem zatem taki warunek: if( wpisane1 == 'b' || wpisane1 == 'B' ) std::cout << "(B - Loara) Gratulacje! Poprawna odpowiedz. " << wpisane1 << std::endl; else std::cout << "Niestety... zla odpowiedz. Poprawna to Loara(B)" << std::endl;
i teraz przy każdej odpowiedzi pojawia mi się: "Niestety... zla odpowiedz. Poprawna to..." Dlaczego? |
|
SeaMonster131 |
» 2013-12-22 21:41:01 Jesteś pewien? Skopiowałem kod do siebie, i wszystko działa. |
|
« 1 » 2 |