TulisGra/main.cpp
2025-01-20 21:27:58 +00:00

330 lines
14 KiB
C++

#include "iostream"
#include <algorithm>
#include <cstdlib>
using namespace std;
string clear_command;
//Kajetan Pietrzak
//Zgadywanie
void clear_screen() {
#ifdef _WIN32
system("cls");
#elif defined(__unix__) || defined(__unix) || defined(__linux__) || defined(__APPLE__)
system("clear");
#endif
}
int main() {
//Ponieważ mój system (code-server) znajduje się na linux, użyję system("clear");
//Aby wyczyścić na windows, należy użyć: system("cls");
#ifdef _WIN32
#elif defined(__unix__) || defined(__unix) || defined(__linux__) || defined(__APPLE__)
#else
cout << "Nie potrafię określić twojego systemu!" << endl;
exit(1);
#endif
int opcja;
cout << "1. Zgadywanie liczb." << endl;
cout << "2. Papier, kamień, nożyce." << endl;
cout << "Wybierz grę: ";
if(!(cin >> opcja) || (opcja != 1 && opcja != 2)) {
cout << "To nie jest poprawna opcja!" << endl; //Nie panikujemy, tylko "grzecznie" udajemy, że problemu nie ma :P
exit(1);
}
clear_screen();
if(opcja == 1) {
int rund = 0;
int proby[1000] = {0};
bool done = false;
do {
cout << "1. Gra z komputerem." << endl;
cout << "2. Gra z drugim graczem" << endl;
cout << "3. Wyjście" << endl;
cout << "Wybierz tryb: ";
if(!(cin >> opcja) || (opcja != 1 && opcja != 2 && opcja != 3)) {
cout << "To nie jest poprawna opcja!" << endl; //Nie panikujemy, tylko "grzecznie" udajemy, że problemu nie ma :P
exit(1);
} else if (opcja == 3) {
cout << "Dziękuję za udział!" << endl;
cout << "Grałeś " << rund << " razy!" << endl;
int suma = 0;
for(int i = 0; i<rund; i++) {
if(proby[i] == 0) break;
suma += proby[i];
}
cout << "Średni wynik (liczba prób): " << suma/rund << endl;
done = true;
exit(0);
}
rund += 1;
if(opcja == 1) {
int ilosc = 0;
clear_screen();
bool done_game = false;
srand(time(0)); //Ustawiamy ziarno losowości (bez tego, liczba zawsze jest praktycznie taka sama!)
int x = (rand() % (100 + 1));
cout << "Komputer wybrał liczbę..." << endl;
do {
cout << "Spróbuj zgadnąć liczbę: " << endl;
int y;
ilosc++;
if(cin >> y) {
int odleglosc = y-x;
if(odleglosc > 0) {
if(odleglosc < 50) {
if(odleglosc < 35) {
if(odleglosc < 20) {
if(odleglosc < 10) {
if(odleglosc < 5) {
if(odleglosc == 0) {
cout << "Zgadłeś!" << endl;
done_game = true;
} else {
cout << "Bardzo gorąco!!!!!!!!" << endl;
}
} else {
cout << "Bardzo ciepło! (za dużo)" << endl;
}
} else {
cout << "Ciepło! (za dużo)" << endl;
}
} else {
cout << "No coś tak, tak letnio... (za dużo)" << endl;
}
} else {
cout << "Zimno! (za dużo)" << endl;
}
} else {
cout << "Bardzo zimno! (dużo za dużo)" << endl;
}
} else {
if(odleglosc > -50) {
if(odleglosc > -35) {
if(odleglosc > -20) {
if(odleglosc > -10) {
if(odleglosc > -5) {
if(odleglosc == 0) {
cout << "Zgadłeś!" << endl;
done_game = true;
} else {
cout << "Bardzo gorąco!!!!!!!!" << endl;
}
} else {
cout << "Bardzo ciepło! (za mało)" << endl;
}
} else {
cout << "Ciepło! (za mało)" << endl;
}
} else {
cout << "No coś tak, tak letnio... (za mało)" << endl;
}
} else {
cout << "Zimno! (za mało)" << endl;
}
} else {
cout << "Bardzo zimno! (dużo za mało!)" << endl;
}
}
} else {
cout << "To nie jest liczba całkowita!" << endl;
exit(1);
}
} while(!done_game);
cout << "Całkowita liczba prób: " << ilosc << endl;
proby[rund-1] = ilosc;
}
if(opcja == 2) {
int x;
int ilosc = 0;
clear_screen();
cout << "Podaj liczbę, który drugi użytkownik będzie zgadywał: ";
if(cin >> x) {
//Ponieważ mój system (code-server) znajduje się na linux, użyję system("clear");
//Aby wyczyścić na windows, należy użyć: system("cls");
clear_screen();
bool done_game = false;
do {
cout << "Spróbuj zgadnąć liczbę: " << endl;
int y;
ilosc++;
if(cin >> y) {
int odleglosc = y-x;
if(odleglosc > 0) {
if(odleglosc < 50) {
if(odleglosc < 35) {
if(odleglosc < 20) {
if(odleglosc < 10) {
if(odleglosc < 5) {
if(odleglosc == 0) {
cout << "Zgadłeś!" << endl;
done_game = true;
} else {
cout << "Bardzo gorąco!!!!!!!!" << endl;
}
} else {
cout << "Bardzo ciepło! (za dużo)" << endl;
}
} else {
cout << "Ciepło! (za dużo)" << endl;
}
} else {
cout << "No coś tak, tak letnio... (za dużo)" << endl;
}
} else {
cout << "Zimno! (za dużo)" << endl;
}
} else {
cout << "Bardzo zimno! (dużo za dużo)" << endl;
}
} else {
if(odleglosc > -50) {
if(odleglosc > -35) {
if(odleglosc > -20) {
if(odleglosc > -10) {
if(odleglosc > -5) {
if(odleglosc == 0) {
cout << "Zgadłeś!" << endl;
done_game = true;
} else {
cout << "Bardzo gorąco!!!!!!!!" << endl;
}
} else {
cout << "Bardzo ciepło! (za mało)" << endl;
}
} else {
cout << "Ciepło! (za mało)" << endl;
}
} else {
cout << "No coś tak, tak letnio... (za mało)" << endl;
}
} else {
cout << "Zimno! (za mało)" << endl;
}
} else {
cout << "Bardzo zimno! (dużo za mało!)" << endl;
}
}
} else {
cout << "To nie jest liczba całkowita!" << endl;
exit(1);
}
} while(!done_game);
proby[rund-1] = ilosc;
cout << "Całkowita liczba prób: " << ilosc << endl;
} else {
cout << "To nie jest liczba całkowita!" << endl;
exit(1);
}
}
} while(!done);
}
if(opcja == 2) {
int remis = 0;
int wygrana = 0;
int przegrana = 0;
bool done = false;
do {
cout << "Komputer wybrał..." << endl;
srand(time(0)); //Ustawiamy ziarno losowości (bez tego, liczba zawsze jest praktycznie taka sama!)
int random_number = (rand() % (2 + 1));
cout << "1. Kamień" << endl;
cout << "2. Papier" << endl;
cout << "3. Nożyce" << endl;
cout << "4. Wyjście" << endl;
cout << "Wygranych: " << wygrana << " Przegranych: " << przegrana << " Remis: " << remis << " Rund: " << przegrana + wygrana + remis << endl;
cout << "Twój wybór: ";
int wybor;
cin >> wybor;
if(wybor == 4) {
cout << "Wygranych: " << wygrana << " Przegranych: " << przegrana << " Remis: " << remis << " Rund: " << przegrana + wygrana + remis << endl;
cout << "Dziękuję za grę!" << endl;
done = true;
exit(0);
}
clear_screen();
if(random_number == (wybor-1)) {
cout << "Remis!" << endl;
remis++;
}
//Wykluczulyśmi remis!
string komputer = (random_number == 0) ? "Kamień" : (random_number == 1) ? "Papier" : "Nożyce";
string human = (wybor == 1) ? "Kamień" : (wybor == 2) ? "Papier" : "Nożyce";
cout << "Komputer wybrał " << komputer << ", a ty " << human << endl;
if(random_number == 0) {
if(wybor == 2) {
cout << "Wygrana!" << endl;
wygrana++;
cout << endl << "Wpisz cokolwiek i nacisnij enter aby kontynuować!";
char dummy;
cin >> dummy;
continue;
}
cout << "Przegrana!" << endl; //Możemy pominąć ifa, bo wykluczyłem remis!
przegrana++;
}
if(random_number == 1) {
if(wybor == 3) {
cout << "Wygrana!" << endl;
wygrana++;
cout << endl << "Wpisz cokolwiek i nacisnij enter aby kontynuować!";
char dummy;
cin >> dummy;
continue;
}
cout << "Przegrana!" << endl;
przegrana++;
}
if(random_number == 2) {
if(wybor == 1) {
cout << "Wygrana!" << endl;
wygrana++;
cout << endl << "Wpisz cokolwiek i nacisnij enter aby kontynuować!";
char dummy;
cin >> dummy;
continue;
}
cout << "Przegrana!" << endl;
przegrana++;
}
cout << endl << "Wpisz cokolwiek i nacisnij enter aby kontynuować!";
char dummy;
cin >> dummy;
} while (!done);
}
return 0;
}