Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <algorithm>
- #include <limits>
- using namespace std;
- int main(void) {
- /*
- Määritellään vakiot, alustetaan pseudorändöm-generäättöri ja esitellään globaalit muuttujat.
- Unsigned koska käpistellään vain positiivia lukuja (lue: HiFistely Maximus).
- Rajoitin = pallojen määrä, numerot = sallittujen numeroarvojen yläraja. Alaraja kovakoodattu 1.
- */
- const unsigned int rajoitin = 7, numerot = 39;
- srand ( static_cast<unsigned>(time(NULL)) );
- unsigned int oikein = 0, i = 0;
- bool virhe = false;
- unsigned int lottonumerot[rajoitin], valitut_numerot[rajoitin], kaytetyt_numerot[2][rajoitin];
- // Nollataan tarpeelliset muuttujat.
- for (unsigned int u = 0; u < rajoitin; ++u) {
- lottonumerot[u] = 0;
- valitut_numerot[u] = 0;
- kaytetyt_numerot[0][u] = 0;
- kaytetyt_numerot[1][u] = 0;
- }
- // Ohjelma alkaa!
- while (true) {
- // Arvotaan lottonumerot, virallisena valvojana Aulis Gerlander
- i = 0;
- while (i < rajoitin) {
- while (true) {
- lottonumerot[i] = rand() % numerot + 1;
- for (unsigned int u = 0; u < rajoitin; ++u) {
- if (lottonumerot[i] == kaytetyt_numerot[0][u]) {
- virhe = true;
- }
- }
- if (virhe == false) {
- kaytetyt_numerot[0][i] = lottonumerot[i];
- ++i;
- break;
- }
- virhe = false;
- }
- }
- // Järjestetään lottonumerot pienimmästä suurimpaan.
- sort(lottonumerot, (lottonumerot+rajoitin));
- // Kirjataan ylös käyttäjän valitsemat numerot.
- cout << "Ilmianna lottonumerot (1 - " << numerot << ", " << rajoitin << " kpl, 0 = lopetus): " << endl;
- i = 0;
- while (i < rajoitin) {
- while (true) {
- cout << (i + 1) << ". ";
- if ( !(cin >> valitut_numerot[i]) ) {
- virhe = true;
- }
- cin.clear();
- cin.ignore(numeric_limits<streamsize>::max(),'\n');
- if ((valitut_numerot[i] == 0) && (virhe == false)) {
- return EXIT_SUCCESS;
- }
- if (valitut_numerot[i] != 0) {
- for (unsigned int u = 0; u < rajoitin; ++u) {
- if (valitut_numerot[i] == kaytetyt_numerot[1][u]) {
- virhe = true;
- cout << "Voit valita saman luvun vain kerran!" << endl;
- }
- }
- }
- if ((valitut_numerot[i] <= numerot) && (valitut_numerot[i] >= 1) && (virhe == false)) {
- kaytetyt_numerot[1][i] = valitut_numerot[i];
- ++i;
- break;
- }
- virhe = false;
- }
- }
- // Tulostetaan lottonumerot näytölle.
- cout << "Arvotut lottonumerot: ";
- for (unsigned int u = 0; u < rajoitin; ++u) {
- cout << lottonumerot[u];
- if (u != (rajoitin - 1) ) {
- cout << ", ";
- }
- else {
- cout << "." << endl;
- }
- }
- // Lasketaan kuinka moni käyttäjän numeroista meni oikein.
- i = 0;
- while (i < rajoitin) {
- for (unsigned int u = 0; u < rajoitin; u++) {
- if (valitut_numerot[i] == lottonumerot[u]) {
- ++oikein;
- break;
- }
- }
- ++i;
- }
- // Kerrotaan käyttäjälle kuinka monta rivistä oikein.
- cout << "Sait " << oikein << " oikein!";
- if (oikein < 4) {
- cout << " :-(" << endl;
- }
- else {
- cout << " :-)" << endl;
- }
- // Uusi kierros, nollataan.
- for (unsigned int u = 0; u < rajoitin; ++u) {
- kaytetyt_numerot[0][u] = 0;
- kaytetyt_numerot[1][u] = 0;
- }
- }
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement