Witam, niedawno zacząłem zabawę z programowaniem, znam podstawowe funkcje i uznałem że czas napisać pierwszy większy program.
Program ma zgadywać o jakim kraju (Ameryki Południowej bo tam jest najmniej państw nie licząc Oceani) myśli użytkownik zadając mu serie pytań jednak pytania nie mają iść zawsze tą samą drogą np.: "jeśli tak to zadaj to i to pytanie a jeśli nie to to i to" :)
Niestety pętla odpowiedzialna za właściwie cały program wykonuje się tylko raz, a więc pytanie zadawane jest tylko jedno. (wiem że są tylko 2 pytania ale niedługo dodam więcej chodzi mi teraz o sam kod a nie liczbę pytań).
Oto program:
#include <iostream>
#include <string>
#include <time.h>
int main()
{
std::string pytania[3] = {"czy w większosci ten kraj lezy na polnocy ameryki poludniowej(Paragwaj lezy na poludniu) ?","Czy ten kraj lezy na oceanem Spokojnym ?"};
int wykorzystane_pytania[3] = {0,0,0};
std::string kraje[13] = {"Kolumbia","Wenezuela","Gujana","Surinam","Gujana Francuska","Ekwador","Peru","Brazylia","Boliwia","Paragwaj","Chile","Argentyna","Urugwaj"};
int odp[3][13] = {{1,1,1,1,1,1,1,1,1,0,0,0,0},{1,0,0,0,0,1,1,0,0,0,1,0,0},{}};
int wynik[13] = {1,1,1,1,1,1,1,1,1,1,1,1,1};
bool wygrana = false;
int n, a;
std::string odpowiedz;
while(wygrana == true);
{
srand(time(NULL));
n = rand()%2;
if(wykorzystane_pytania[n] == 0)
{
std::cout << pytania[n] << std::endl;
}else{
continue;
}
wykorzystane_pytania[n] = 1;
std::cin >> odpowiedz; //czekanie na odpowiedz tak / nie
if(odpowiedz == "tak") //sprawdzanie dla odpowiedzi "tak"
{
for(int i = 0; i < 13; i++)
{
if(odp[n][i] == 0)
{
wynik[i] = 0;
}
}
}
if(odpowiedz == "nie") //sprawdzanie dla odpowiedzi "nie"
{
for(int i = 0; i < 13; i++)
{
if(odp[n][i] == 1)
{
wynik[i] = 0;
}
}
}
a = 0;
for(int i = 0; i < 13; i++) //sprawdzanie końca gry
{
if(wynik[i] == 1)
{
a = a + 1;
}
}
if(a == 1)
{
for(int i = 0; i < 13; i++)
{
if(wynik[i] == 1)
{
wygrana == true;
std::cout << kraje[i];
}
}
}
}
system("PAUSE");
return 0;
}
z góry dzięki za pomoc i Pozdrawiam