Урока не е много труден, защото повечето неща в скрипта са познати. Има основно две нови функции - randn() и srand(time()). Функцията randn() служи за генериране на произволно число. То разбира се не е едноцифрено и затова по долу в кода съм използвал функция за намиране на остатък от деление на 10 - %10 - . Остатъка винаги е число между 0 и 9, а аз сам избрал 3 нива на играта:
1 ниво - лесно - от 1 до 10 - затова сам добавил 1 към randn()%10.
2 ниво - средно - от 1 до 15 - получава се чрез добавяне на друго произволно число и др. операции.
3 ниво - трудно - от 1 до 20 - като при 2 ниво само че към едното произволно число се прибавя единица. Функцията srand(time()) показва колко пъти се повтаря избора на едно и също число от компютъра. Ако то е 0 -srand(time(0))- произволно избраното число от компютъра никога няма да се повтори. Естествено след многократно пускане на програмата може да очаквате повторение, но то е защото остатъкът при делението на десет има много малко варианти. Използвал съм също функцията system("cls"). Тя служи за изчистване на конзолата. Нещо подобно на рестартиране на програмата и продължаване на изпълнението и след реда system("cls").
Ето и кода:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int shansove;
int randa,randb,randc;
int level;
int lesno_a,lesno_b;
int sredno_a,sredno_b;
int trudno_a,trudno_b;
int guess;
int chances_les=3,chances_sred=5,chances_trud=8;
lesno_a=1;
lesno_b=10;
sredno_a=1;
sredno_b=15;
trudno_a=1;
trudno_b=20;
cout<<"izberete kategoriq: "<<"n";
cout<<"1-lesno("<<lesno_a<<"-do-"<<lesno_b<<") - "<<chances_les<<" 6ansa"<<"n";
cout<<"2-sredno("<<sredno_a<<"-do-"<<sredno_b<<") - "<<chances_sred<<" 6ansa"<<"n";
cout<<"3-trudno("<<trudno_a<<"-do-"<<trudno_b<<") - "<<chances_trud<<" 6ansa"<<"n";
cin>>level;
if (level==1){
srand(time(0));
randa=(rand()%10+rand()%10)+1;
system("cls");
do
{
cin>>guess;
chances_les--;
if(guess==randa) cout<<"Bravo!Pozna!"<<"n"<<"n"<<"n";
else if(chances_les==0) cout<<"sajelqvam, no ne uspq da poznae6. 4isloto be6e: "<<
randa<<"n"<<"n";
else{
if(guess!=randa&&guess>randa) cout<<"Probvai po malko 4islo"<<" ostavat ti "<<chances_les
<<" jivota"<<"n";
if(guess!=randa&&guess<randa) cout<<"Probvai po golqmo 4islo"<<" ostavat ti "<<chances_les
<<" jivota"<<"n";
}}while(chances_les>0&&guess!=randa);
}
if(level==2) {
while(randa<1||randa>15){
srand(time(0));
randa=rand()%10+rand()%10;
system("cls");}
do
{
cin>>guess;
chances_sred--;
if(guess==randa) cout<<"Bravo!Pozna!"<<"n"<<"n"<<"n";
else if(chances_sred==0) cout<<"sajelqvam, no ne uspq da poznae6. 4isloto be6e: "<<
randa<<"n"<<"n";
else{
if(guess!=randa&&guess>randa) cout<<"Probvai po malko 4islo"<<" ostavat ti "<<chances_sred
<<" jivota"<<"n";
if(guess!=randa&&guess<randa) cout<<"Probvai po golqmo 4islo"<<" ostavat ti "<<chances_sred
<<" jivota"<<"n";
}}while(chances_sred>0&&guess!=randa);
}
if (level==3){
srand(time(0));
randa=(rand()%10+rand()%10)+1;
system("cls");
do
{
cin>>guess;
chances_trud--;
if(guess==randa) cout<<"Bravo!Pozna!"<<"n"<<"n"<<"n";
else if(chances_trud==0) cout<<"sajelqvam, no ne uspq da poznae6. 4isloto be6e: "<<
randa<<"n"<<"n";
else{
if(guess!=randa&&guess>randa) cout<<"Probvai po malko 4islo"<<" ostavat ti "<<chances_trud
<<" jivota"<<"n";
if(guess!=randa&&guess<randa) cout<<"Probvai po golqmo 4islo"<<" ostavat ti "<<chances_trud
<<" jivota"<<"n";
}}while(chances_trud>0&&guess!=randa);
}
system("pause");
return 0;
}
Ако има въпроси - на лс или по скаип ако не сам видял коментар.
Надявам се да съм помогнал. xD