57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
|
|
Generare una parola a caso (sicuramente pronunciabile), esempio: MUSETO.
|
|
Consonanti = "BCDFGLMNPRSTVZ".
|
|
Vocali = "AEIOU".
|
|
Ogni sillaba è consonante + vocale, esempio: BA.
|
|
Il numero di sillabe viene deciso da input o in modo randomico.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <iostream>
|
|
#define N_SILL 4
|
|
|
|
using namespace std;
|
|
|
|
void generaParola(int numSillabe, char* parola, int maxLen);
|
|
|
|
int main() {
|
|
const int MAX_LEN = 20;
|
|
char parolaGenerata[MAX_LEN];
|
|
|
|
srand((unsigned)time(NULL));
|
|
int numSillabe = rand() % 3 + 2;
|
|
|
|
generaParola(numSillabe, parolaGenerata, MAX_LEN);
|
|
|
|
printf("Parola generata: %s\n", parolaGenerata);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void generaParola(int numSillabe, char* parola, int maxLen) {
|
|
const char consonanti[] = "BCDFGLMNPRSTVZ";
|
|
const char vocali[] = "AEIOU";
|
|
|
|
parola[0] = '\0';
|
|
|
|
int currentLen = 0;
|
|
|
|
for (int i = 0; i < numSillabe; i++) {
|
|
if (currentLen + 2 >= maxLen) break;
|
|
|
|
char sillaba[3];
|
|
sillaba[0] = consonanti[rand() % (sizeof(consonanti) - 1)];
|
|
sillaba[1] = vocali[rand() % (sizeof(vocali) - 1)];
|
|
sillaba[2] = '\0';
|
|
|
|
strcat(parola, sillaba);
|
|
currentLen += 2;
|
|
}
|
|
}
|