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.) 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ę :( |
|
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: int losuj() return
switch( los ) { case 1: pytanie = "Tutaj masz pytanko"; a = "Costam"; b = "costam2" dobra = ; if( odpowiedz == dobra ) { } else { } break; } |
|
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: 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 :) |
|
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? |
|
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. for( int x = 0; x < 5; x++ ) { a = vektor[ x ]; cout << a << "\n"; }
|
|
pekfos |
» 2013-11-13 20:36:05 ale byłoby tyle pętli co zmiennych czyli pytań. |
Po co tyle zmiennych? |
|
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 |
|
pekfos |
» 2013-11-13 20:48:58 Odesłanie do lekcji o operacjach matematycznych wystarczy? Myśl.. pytania masz w co piątej linii, a odpowiedzi zaraz za nimi.. |
|
« 1 » 2 |