Witam, napisałem prostą grę pt. "Oczko".
Chciałem pokazać swój kod i zapytać czy jest on w miarę do przyjęcia. Gra działa, jednak chciałbym pisać dobrej jakości kod. Co radzicie unikać a czego używać pisząc podobne "gry" do oczka?
#include <iostream>
#include<cstdlib>
#include<ctime>
/*
GRA OCZKO - komputer i gracz losuje karty(liczby), kto jest najbliżej 21 lub bedzie mial rowne 21 - wygrywa.
o losowaniu kolejnej karty decydujemy sami z przedzialu 2-11, za komputer nie decydujemy za to on losuje raz z przedzialu 10-20.
*/
using namespace std;
//zmienne, karty gracza zapisane w tablicy, wiecej niz 10 raczej na pewno nie bedzie. Wiem że powinno być to inaczej rozwiązane żeby nie marnować miejsca pustymi tablicmi ale narazie tak to wymyslilem.
int gracz[10],komp,wybor;
int suma=0,oczko=21,i=0;
int main() {
cout<<"\t\t OCZKO \n\n";
srand(time(NULL));
//losowanie kart.
gracz[i] = rand()%10+2;
komp = rand()%11+10;
// zapisanie karty do sumy, zeby pozniej moc je dodawac.
suma = gracz[i];
cout<<" Wylosowales : "<<gracz[i]<<endl;
// petla do..while bo przynajmniej raz musi sie wykonac to polecenie z zapytaniem o doborze kart.
do
{
cout<<"\nCzy chcesz losowac dalej? \n";
cout<<"TAK = 1 , NIE = 0\n";
cin>>wybor;
//uzylem if zamiast switch'a do decyzji. wydaje mi sie ze jest szybciej i mniej pisania
if(wybor==1)
{
// i++, bo przechodzimy do drugiej karty i bedziemy je zsumowac potem.
i++;
gracz[i] = rand()%10+2;
suma += gracz[i];
cout<<"Wylosowales "<<gracz[i]<<", razem masz : "<<suma<<endl;
// sytuacje, co gdy wylosujemy... i suma kart jest...
if(suma>oczko)
{
cout<<" \n\t PRZEGRALES!\n";
break;
}
if(suma==21&&komp!=21)
{
cout<<" Wygrales!";
break;
}
}
// nie dobieramy kart i ryzykujemy z tym co mamy juz wylosowane, w ifach opisane sytuacje co gdy...
if(wybor==0)
{
if(suma<=oczko&&suma>komp)
{
cout<<"\n\t WYGRALES!\n";
}
if(komp>suma)
{
cout<<"\n\t PRZEGRALES!\n";
}
if(suma==komp)
{
cout<<"\n\t REMIS!";
}
}
}
// jesli wybierzemy cos innego niz 0 to petla sie wykonuje i dobiera kolejna karte. 0 przerywa petle
while(wybor!=0);
// dowiadujemy sie o wyniku, i widzimy co wylosowal komputer.
cout<<" Komputer wylosowal : "<<komp<<endl;
return 0;
}