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

milionerzy ładowanie pytań z pliku

Ostatnio zmodyfikowano 2013-11-14 16:28
Autor Wiadomość
matiko101
Temat założony przez niniejszego użytkownika
milionerzy ładowanie pytań z pliku
» 2013-11-13 20:12:07
Witam,
Już drugi raz piszę odnośnie milionerów (gra która zamierzam zrobić)
Mam następujące problemy:
1.Jak oddzielić po 5 linii z pliku.txt(pytanie,odpowiedź,odpowiedź,odpowiedź,odpowiedź) i zapisać do różnych zmiennych?(chyba,że nie będę potrzebował zmiennych)Potem zamierzam te zmienne wsadzić do tablicy i z niej losować indeksy tych zmiennych(zmienna zachowuje swoją zawartość po tym jak wylosuję tzn.Przechowuje to pytanie,które w niej jest? Na końcu nie wiem/nie myślałem jeszcze jak zapisać prawidłowe odpowiedzi tzn. losuje pytanie -->podaj odpowiedz --> if(odpowiedz==1).
Oto mój kod: (nie podaje menu/tablicy wynikow itd.)
C/C++
int pytania()
{
    fstream plik( "D:\\milionerzy\\pytania.txt" );
    if( !plik.good() )
    {
        cout << "Brak pliku";
        return 1;
    }
    else
    {
        int odp = 0;
        srand( time( 0 ) );
        int los;
        string a, b, c, d;
        cout << "plik otwarty";
        system( "cls" );
        vector < string > vektor;
        string tekst;
        while( !plik.eof() && getline( plik, tekst ) )
             vektor.push_back( tekst );
       
    }
    plik.close();
    return 0;
}
Proszę o konkretne odpowiedzi, a nie czy nie myślałem jak to zrobić, bo już nad tym siedzę i siedzę :(
P-96224
Buby
» 2013-11-13 20:17:17
Ja bym zrobił tak, a właściwie już tak zrobiłem,
tylko mój program pytał o kraje - wyświetlał flagę.

To znaczy, zrobiłbym  zmienne tekstowe.
Liczbę los.

I teraz blok instrukcji:
C/C++
int losuj()
return // funkcja losujaca, zakres i wartosci pozostaja do wpisania przez Ciebie :)

//

switch( los )
{
case 1:
    pytanie = "Tutaj masz pytanko";
    a = "Costam";
    b = "costam2"
   
    dobra = /* numer dobrej odpowiedzi */;
    //itd
   
   
    // Wpisanie odpowiedzi - cin, lub mozesz zrobic to funkcja getch()
    // oczywiscie jesli piszesz pod konsole np. cin >> odpowiedz.
   
    if( odpowiedz == dobra )
    {
        //punkty
    }
    else
    {
        // przegral :P
       
    }
   
    break;
   
   
}
P-96225
matiko101
Temat założony przez niniejszego użytkownika
» 2013-11-13 20:20:38
Tak zrobiłem pytania z poprzedniej próbie zrobienia tej gry wyglądało to tak:
C/C++
int pytania300()
{
    int losowanie = 0;
    int x = 100, z = 500, y = 300;
    int wynik = 300;
    srand( time( 0 ) );
    losowanie = rand() % 3 + 1;
    switch( losowanie )
    {
       
       
    case 1:
        {
            cout << "\nx*2+x*x= ?  ----------500zl\n[1] 4x\n[2] 3x\n[3] 3x+2\n[4] 2x+x^x\n";
            int wybor;
            cin >> wybor;
            if( wybor == 4 )
            {
                system( "cls" );
                cout << "\nGratulacje zdobywasz " << z << " i przechodzisz do nastepnego pytania\n";
                exit( 0 );
            }
            else
            {
                system( "cls" );
                cout << "\nSzkoda zdobyles " << y << " zlotych\n";
                plik( wynik );
                exit( 0 );
            }
        }
I nie było to przyjemne, bo powtarzało się to wiele razy więc postanowiłem zrobić to krócej wczytując pytania z pliku i zapisanie ich do zmiennych :)
P-96227
pekfos
» 2013-11-13 20:25:43
1.Jak oddzielić po 5 linii z pliku.txt(pytanie,odpowiedź,odpowiedź,odpowiedź,odpowiedź) i zapisać do różnych zmiennych?
A co teraz robisz?
P-96228
matiko101
Temat założony przez niniejszego użytkownika
» 2013-11-13 20:29:16
Wczytałem cały plik do vektora i przypisałem pod każdy indeks 1 linijkę.
Oczywiście zrobiłbym bym przypisanie po 5 linijek do każdej zmiennej uzywajac tego vektora, ale byłoby tyle pętli co zmiennych czyli pytań. A ktoś powiedział, że jeżeli w kodzie coś się powtarza wiele razu i zmienia się tylko kilka znaków to można to zrobić krócej nie powtarzając tego.
C/C++
for( int x = 0; x < 5; x++ )
{
    a = vektor[ x ];
    cout << a << "\n"; // po to by zobaczyc czy dziala
}
P-96230
pekfos
» 2013-11-13 20:36:05
ale byłoby tyle pętli co zmiennych czyli pytań.
Po co tyle zmiennych?
P-96232
matiko101
Temat założony przez niniejszego użytkownika
» 2013-11-13 20:40:12
Jak inaczej to zapisać, aby losowało te 5 linii(pyt,odp,odp,odp,odp) razem, a nie było to pytanie 2 a odpowiedzi z 3,8,1,9 pytania? jakaś wskazówka ? :)
Myślałem, żeby po 5 linii brać do zmiennej i potem te zmienne wsadzić do tablicy z której bym je losował. Chyba coś poplątałem, ale myślę, że zrozumiesz
P-96233
pekfos
» 2013-11-13 20:48:58
jakaś wskazówka ? :)
Odesłanie do lekcji o operacjach matematycznych wystarczy? Myśl.. pytania masz w co piątej linii, a odpowiedzi zaraz za nimi..
P-96234
« 1 » 2
  Strona 1 z 2 Następna strona