Witam!
Zadaniem programu jest "odgadnąć" hasło wprowadzone przez użytkownika. Użytkownik wprowadza napis składający się z określonej liczby liter, a komputer losuje zadaną ilość znaków i sprawdza, czy udało mu się wylosować to, co wpisał użytkownik. Wszystko fajnie, tylko program do wylosowanego (w poprzedniej próbie) napisu "dokleja" mi nowo utworzoną kombinację liter. Najchętniej kazałbym programowi za każdym razem kasować stary napis po sprawdzeniu jego poprawności.
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <time.h>
using namespace std;
string generator();
int liczba_podejsc=0, liczba_znakow=3;
string napis, haslo;
int main(int argc, char** argv)
{
srand(time(NULL));
cout << endl << " Podaj mi jakies slowo (skladajace sie z 3 znakow): ";
cin >> haslo;
do
{
system("cls");
generator();
liczba_podejsc++;
cout << endl << " " << liczba_podejsc << ". Podano: " << haslo << ". Wylosowano: " << napis << endl;
Sleep(50);
}
while(haslo!=napis);
cout << " Odgadlem Twoje haslo w " << liczba_podejsc << " probie! :)" << endl;
system("pause");
return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
string generator()
{
int liczba;
char znaki[26]={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
for(int i=1; i<=liczba_znakow; i++)
{
liczba=(rand()%26)+1;
napis+=znaki[liczba];
i++;
}
return napis;
}