Cookies help us deliver our services. By using our services, you agree to our use of cookies.

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;
}