Domanda sequenza di numeri random e tombola !!! mi scuso con XxstephXx

Stato
Discussione chiusa ad ulteriori risposte.

Pr0Ryder93

Utente Electrum
14 Gennaio 2010
264
67
14
174
Codice:
#include<iostream>
#include<windows.h>
#include<ctime>
#include<string>
using namespace std;
int main(){
int condizione;
system("color a"),

cout << " ToMbOlA v.5.0 By C4rM3l0 PeTrAsChI" << endl;
Beep(250,100);
Beep(300,200);
Beep(200,19);
Beep(200,200);
Beep(200,150);
Beep(230,123);
Beep(12,32);


cout <<""<<endl;
cout <<" premi 1 per giocare" << endl;
cout <<"premi 2 per uscire"<<endl;
cin >> condizione;
Beep(200,100);
switch(condizione){
case 1:
string gioca;
string numero;
cout << "scrivi gioca"<<endl;
cin >> gioca;
Beep(200,150);
cout <<"scrivi la parola numero"<<endl;
cin >> numero;
Beep(300,400);
if(gioca == "gioca" && numero == "numero")
{
Beep(200,100);
Beep(100,300);
Beep(300,200);
Beep(400,100);
Beep(500,200);
Beep(500,200);
Beep(340,231);
Beep(230,213);


srand(static_cast<unsigned>(time(NULL)));
}
else
{
cout <<"ERRORE"<<endl;
}
while (true)
while(1==1)
{

system("cls");
cout <<"attendi mentre i numeri vengono mescolati"<<endl;

cout << rand() % 50;
if(rand()<30)
{
    Beep(200,130);
{

if(rand() >= 50)
Beep(234,123);
{
if(rand() == 30)
Beep(130,342);
}

system("pause");
}
break;
}
{

}
}
}
}
 
Tranquillo non ti devi scusare... xD Come algoritmo per scartare i numeri usciti ti conviene fare un array con i numeri e mescolarli all'interno randonomicamnente
Oppure:
Crei un array con i numeri da 1 a 90, appena un numero esce sostituisci la casella del numero col valore 0..
Di modo che crei un ciclo do-while che si ripete sinchè il numero uscito è uguale a 0, dopodichè setta a 0 la casella col numero uscito e ritorna il numero valido.

--- Aggiornamento Post ---

Per esempio potresti fare una cosa del genere:

Codice:
#include <iostream>
using namespace std;
int Estrai(int* valori)
{
    int num(0);
    while(!num)
    {
       num =  *(valori + rand()% 90);
      *(valori + num-1) = 0; 
    }

return num;
}


int main()
{ 
    srand(time(NULL));
    int valori[90];
    for(int i = 0; i<90;i++) valori[i] = i+1;
    for(int y = 0; y <90; y++)
    cout << Estrai(valori)<<"\n";

cin.get();
    
}


Oppure:

Codice:
#include <iostream>
using namespace std;
int main()
{ 
    srand(time(NULL));
    int valori[90], r, tmp;
    for(int i = 0; i<90;i++) valori[i] = i+1;
    for(int i = 0; i<90;i++)
    {
            r = rand()% 90;
            tmp = valori[i];
            valori[i] = valori[r];
            valori[r] = tmp;
    }
    
    for(int i = 0; i<90; i++) cout << valori[i] <<"\n";

cin.get();
    
}

Il secondo è più razionale, ma l'incoveniente è che tutti i valori sono già settati prima ancora di iniziare a giocare xD
 
Stato
Discussione chiusa ad ulteriori risposte.