Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Losowanie w switch()

Ostatnio zmodyfikowano 2013-12-23 15:56
Autor Wiadomość
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:

C/C++
#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ć?
P-99817
kubawal
» 2013-12-22 14:18:12
C/C++
#include <cstdlib>

srand( time( NULL ) );

liczba =( rand() % 3 ) + 1;
P-99818
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?
P-99822
kubawal
» 2013-12-22 15:14:38
#include <cstdlib>
na początku i

C/C++
srand( time( NULL ) );

liczba =( rand() % 3 ) + 1;
po
C/C++
std::cin >> liczba;
P-99830
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.

C/C++
#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:
        //char wpisane = 'b' || 'B';
        std::cout << "Rzeka nad, ktora znajduje sie najwiecej zamkow we Francji to: \n";
        std::cout << "A: Aussonnelle \n";
        std::cout << "B: Loara \n"; //poprawne
        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"; //poprawne
        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"; //poprawne
        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' )
 ?
P-99878
SeaMonster131
» 2013-12-22 21:20:38
W ten sposób nie tworzy się warunków. Musisz zrobić:
C/C++
if( zmienna == 'b' || zmienna == 'B' )
itd..

I nie rozumiem, po co dałeś takie przypisanie:
C/C++
char wpisane1 = 'b' || 'B';
P-99879
dawid
Temat założony przez niniejszego użytkownika
» 2013-12-22 21:27:31
Utworzyłem zatem taki warunek:

C/C++
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?
P-99880
SeaMonster131
» 2013-12-22 21:41:01
Jesteś pewien? Skopiowałem kod do siebie, i wszystko działa.
P-99882
« 1 » 2
  Strona 1 z 2 Następna strona