Witam, napisałem prostą gierkę, w której chodzi o to żeby użytkownik zgadł jaką liczbę wylosował komputer. Dopiero się uczę programować w C++ i chciałbym żebyście przejrzeli mój kod i dali parę rad odnośnie tego co tam napisałem, co można zapisać łatwiej, czyli optymalizacja :)
Chciałbym zaznaczyć, że jestem laikiem jeśli chodzi o programowanie, przerabiam Symfonie C++ Standard (aktualnie zatrzymałem się na tablicach) i po prostu chciałbym usłyszeć parę rad od was :) Byłoby miło!
Oczywiście gra działa tak jak tego chciałem, nie mogę się przyczepić do niczego, w niedalekiej przyszłości (jak już będę wiedział jak to zrobić) zabezpieczę ją przed ewentualnym wpisywaniem liter itp. :)
Krótki opis: początek programu to tzw. "menu" gier, które będę rozwijał w przyszłości o inne pozycje, które napisze :P Gdy użytkownik wybierze w jaką grę chce zagrać, przekierowuje go do niej (w tym wypadku do loterii). Użytkownik w grze Loteria musi zgadnąć liczbę jaką wylosował komputer z przedziału 1-20, a gdy zgadnie ma wybór czy grać dalej czy skończyć :)
Pewnie powiecie, że nie ma się czym szczycić, ale jak dla mnie to nie dość, że była super zabawa, to jeszcze traktuje to jako duży sukces :) W końcu dopiero się uczę, a napisanie takiego kodu od zera to dla mnie (na obecną chwilę) coś ekstra.
Liczę na was :)
Oto kod:
loteria.hpp
#ifndef LOTERIA_HPP_INCLUDED
#define LOTERIA_HPP_INCLUDED
#define ANIM(tab,a,predk) for(int i = 0; i < a; i++) { Sleep(predk); cout<<tab[i]<<" "; }
using std::cout;
using std::cin;
using std::endl;
using std::string;
//ANIM(tekst,tekst.length());
//ANIM(brw,7);
void los_main(), j_raz(), los(), petla(), podaj();
extern int liczba, wls, wls_p, licznik;
extern bool start;
extern char wybor;
#endif
loteria.cpp
#include <iostream>
#include <windows.h>
#include <ctime>
#include <cstdlib>
#include "loteria.hpp"
//---------------------------------------------------------------------------
int liczba, wls, wls_p;
bool start;
char wybor;
//---------------------------------------------------------------------------
int licznik = 0;
string brw = "BRAWO!!!!";
string mys = "------------------------------------";
//---------------------------------------------------------------------------
void los_main()
{
start = true;
los();
podaj();
petla();
cout<<"\nGrasz jeszcze raz? (y/n)\n";
cout<<"Wybor: ";
cin>>wybor;
while(wybor=='y' || wybor == 'Y') j_raz();
cout<<"\nDzieki za gre! :)\n";
system("PAUSE");
}
void j_raz()
{
ANIM(mys,mys.length(),50);
cout<<endl;
los();
podaj();
petla();
}
void los()
{
srand( time( NULL ) );
int wls = (std::rand() % 20 ) + 1;
wls_p=wls;
}
void podaj()
{
if (start == false)
{
cout<<"Dawaj smialo jeszcze raz: ";
}
else if (start == true)
{
cout<<"Program wylosowal liczbe i musisz ja odgadnac! :)\nDawaj smialo: ";
}
cin>>liczba;
cout<<endl;
}
void petla()
{
start = false;
while (liczba)
{
if (liczba>wls_p)
{
++licznik;
cout<<"Za duza liczba!\n";
podaj();
}
else if (liczba<wls_p)
{
++licznik;
cout<<"Za mala liczba!\n";
podaj();
}
else
{
++licznik;
ANIM(brw,brw.length(),200);
cout<<"\nTrafiles za " <<licznik<< " razem! :)\n";
licznik = 0;
break;
}
}
}
main.cpp
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include "loteria.hpp"
int main()
{
int menu;
cout<<"------------MENU GIER----------------\n"
<<"1. Loteria - komputer losuje, a ty zgadujesz!\n"
<<"2. ------||------\n"
<<"3. ------||------\n"
<<"4. ------||------\n"
<<"Wybieram: ";
cin>>menu;
cout<<endl<<endl;
switch(menu)
{
case 1:
{
los_main();
break;
}
default:
{
break;
}
}
cout<<"\n";
system("PAUSE");
}