Vaja3.cpp
/*
* Program, ki izbere naključno število in dovooli uporabniku, da ga ugiba.
*/
#include <time.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
using namespace std;
const int SpodnjaMeja = 1;
const int ZgornjaMeja = 100;
const int MaxSteviloPoskusov = 10;
int main()
{
int iskanoStevilo;
int vnesenoStevilo;
int steviloPoskusov = 0;
int poskusi[MaxSteviloPoskusov];
// generiranje naključnega števila za iskanje
srand(time(NULL));
iskanoStevilo = (rand() % (ZgornjaMeja - SpodnjaMeja)) + SpodnjaMeja;
// od uporabnika zahtevamo vnos števila tako dolgo, dokler ne ugane vrednosti ali ne porabi vseh 50 poskusov
do
{
// vnos števila
cout << "Ugani moje število med " << SpodnjaMeja << " in " << ZgornjaMeja << ": " << endl;
cin >> vnesenoStevilo;
poskusi[steviloPoskusov] = vnesenoStevilo;
steviloPoskusov = steviloPoskusov + 1;
// preverjanje ustreznosti vnesenega števila
if (vnesenoStevilo < iskanoStevilo) // premajhno število?
{
cout << "Moje število je večje!" << endl;
}
else
{
if (vnesenoStevilo > iskanoStevilo) // preveliko število?
{
cout << "Moje število je manjše!" << endl;
}
else // če ni preveliko in ni premajhno...
{
cout << "Čestitam! To je prava vrednost!" << endl;
}
}
}
while ((vnesenoStevilo != iskanoStevilo) && (steviloPoskusov < MaxSteviloPoskusov));
// izpis statistike na zaslon
cout << endl << endl << "- - - - - - Povzetek - - - - - -" << endl;
if (poskusi[steviloPoskusov - 1] == iskanoStevilo) // število najdeno?
{
cout << "Število ste uganili." << endl;
}
else
{
cout << "Števila niste uganili." << endl;
}
cout << "Porabili ste " << steviloPoskusov << " poskusov." << endl;
// še izpis vsakega poskusa
cout << "Vaši poskusi so bili: ";
for (int i = 0; i < steviloPoskusov; i++)
{
cout << poskusi[i];
// oblikovanje izpisa z vejicami in piko.
if (i == steviloPoskusov - 1)
{
cout << "." << endl;
}
else
{
cout << ", ";
}
}
// še zapis podatkov o igri v datoteko
ofstream datoteka("Igra.txt", ios::app);
if (! datoteka.good())
{
cout << "NAPAKA: ne morem odpreti datoteke." << endl;
return -1;
}
datoteka << endl << endl << "- - - - - - Igra ugibanja števila - - - - - -" << endl;
datoteka << "Skrita vrednost je bila " << iskanoStevilo << "." << endl;
if (poskusi[steviloPoskusov - 1] == iskanoStevilo) // vrednost najdena ?
{
datoteka << "Število je bilo najdeno." << endl;
}
else
{
datoteka << "Število ni bilo najdeno." << endl;
}
datoteka << "Uporabnik je potreboval " << steviloPoskusov << " poskusov." << endl;
for (int i = 0; i < steviloPoskusov; i++)
{
datoteka << poskusi[i];
// oblikovanje izpisa z vejicami in piko.
if (i == steviloPoskusov - 1)
{
datoteka << "." << endl;
}
else
{
datoteka << ", ";
}
}
return 0;
}