Losowe liczby

0

Cześć, mam za zadanie napisać ,,gre w duchy,,. Polega na tym że sprawdza się drzwi i jak będzie duch to koniec gry ( zadanie na informatykę). Nie proszę o rozwiązanie go a tylko o podpowiedz co mogę zrobić. Największy problem mam z instrukcjami switch ( nie chce aby było ustawione sztywno tylko 3 możliwości ) chciałbym, aby liczba możliwości wyboru zależała od podanego stopnia trudności.

#include <iostream>
#include <cstdlib>
#include <time.h>
#include<windows.h>
using namespace std;
int n;
int zapis;
int strzal;
int tablica[1000];

int main()
{
cout << "Witaj w mojej grze w duchy" << endl;
cout << "Bardzo prosze, abys wybral poziom trudnosci (podaj ile drzwi chcesz zgadywac): ";
cin>>n;
//podanie stopnia trudności
for(int i=0;i<n;i++)
{
cout<<"DRZWI NUMER "<< i+1<<endl;

    } //wypisanie liczby dzrwi na podstawie podanego poziomu
    for(int i=0;i<n;i++)
    {
    srand(time(NULL));
    tablica[i] = rand();
    cout<<tablica[i]<<endl;

    Sleep(1000);
    }
    //wylosowanie losowych liczb i zapisanie ich do tablicy


    for(int i=0;i<n;i++)
    {
    cout<<"Prosze wybrac jakies drzwi: ";
    cin>>strzal;
    //wybor drzwi

    switch(strzal)
    {
    case 1:
        if(tablica[i]%2!=0)
             {cout<<"Nie parzysta, jest tutaj duch";
            system("pause");

            }


        else cout<<"Parzysta, nie ma tutaj ducha";
        break;
         case 2:
        if(tablica[i]%2!=0)
             {cout<<"Nie parzysta, jest tutaj duch";
            system("pause");
           }


        else cout<<"Parzysta, nie ma tutaj ducha";
        break;
         case 3:
        if(tablica[i]%2!=0)
            {cout<<"Nie parzysta, jest tutaj duch";
            system("pause");
            }


        else cout<<"Parzysta, nie ma tutaj ducha";
        break;

    }


    }















return 0;

}

0

Zrób sobie po prostu pętlę w której losujesz poprawną odpowiedź, nie do tablicy na początku jak teraz tylko za każdym razem od nowa.
Potem pobierasz odpowiedź i sprawdzasz czy podana odpowiedź jest równa tej wylosowanej, jeśli tak to przerwanie pętli i koniec, jeśli nie to kolejny obrót pętli.

0

Dzięki wielkie za pomoc, nie potrzebnie tak kombinowałem, mógłbyś zerknąć na ten kod :
#include <iostream>
#include <cstdlib>
#include <time.h>
#include<windows.h>
using namespace std;
int n;
int liczba;
int zapis;
int strzal;
int wynik = 0;
int tablica[1000];

int main()
{
cout << "Witaj w mojej grze w duchy" << endl;
cout << "Bardzo prosze, abys wybral poziom trudnosci (podaj ile drzwi chcesz zgadywac): ";
cin>>n;
//podanie stopnia trudnoœci
for(int i=0;i<n;i++)
{
cout<<"DRZWI NUMER "<< i+1<<endl;

    } //wypisanie liczby dzrwi na podstawie podanego poziomu
    for(int i=0;i<n;i++)
    {
    srand(time(NULL));
    liczba = rand();


    cout<<"Prosze podaj jakie drzwi chcesz otworzyc: ";
    cin>>strzal;
    if(liczba%2==0)
    {
        cout<<"Dobrze wytypowales podaj nastepne drzwi"<<endl;
        wynik++;
    }
    else
    {
        cout<<"Zle wytypowales bledne drzwi"<<endl;
        cout<<"Twoj wynik to: " <<wynik;
        break;
    }
    }



















return 0;

}

0

Jak działa to działa, ale patrząc na kod to duch chyba opętał tę grę.
Losujesz sobie liczbę z ogromnego przedziału, nie ograniczasz wylosowanej liczby w żaden sposób, następnie niezależnie od tego co podał gracz, czyli od zmiennej strzal, jeżeli zmienna jest parzysta to piszesz, że dobrze wytypował a jeśli nieparzysta to że źle. O to chodziło?

0

Działać działa, tak o to chodziło

0

Czyli to co poda gracz nie ma żadnego znaczenia na grę. Tak samo jak wybór poziomu trudności. Dziwne, ale jak o to chodziło to okej :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1