diff --git a/2N/menu1.c b/2N/menu1.c new file mode 100644 index 0000000..054740c --- /dev/null +++ b/2N/menu1.c @@ -0,0 +1,170 @@ +#include +#include +#include +#include +BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { + // Set the new window title + SetWindowText(hwnd, "Ti stai divertendo??"); + return TRUE; // Return TRUE to continue enumeration +} +int main(){ + SetConsoleTitle("Programma Utilmente Inutile creato per non si sa quale motivo da Manuel Vichi"); + int sc; + + do{ + // funzione che pulisce lo schermo --> system(...); + // menu' di scelta + system("cls"); + // Dichiarazione variabili + int n, numeroSegreto, tentativo, tentativiRimasti; + char scelta; + float num1, num2, risultato; + char parola[100]; + int lunghezza, i; + //Codice in se' + printf("Scegli una opzione:\n 0. Esci\n 1. Indovina il numero\n 2. Cacolatrice\n 3. Gioca con le parola\n 4. Divertiti con i titoli delle finestre!\n 5. Chiudi la sessione (di Windows)\n"); + scanf("%d",&sc); + switch(sc){ + case 0: + printf("Arrivederci!\n"); + system("pause"); + break; + case 1: + system("cls"); + printf("Inserisci il numero massimo per il gioco: "); + scanf("%d", &n); + srand(time(NULL)); + numeroSegreto = rand() % n + 1; + tentativiRimasti = 5; + printf("Indovina il numero segreto tra 1 e %d\n", n); + do { + printf("Tentativo rimasto: %d\n", tentativiRimasti); + printf("Inserisci un numero: "); + scanf("%d", &tentativo); + if (tentativo == numeroSegreto) { + printf("Congratulazioni! Hai indovinato il numero segreto %d.\n", numeroSegreto); + break; + } else if (tentativo < numeroSegreto) { + printf("Il numero segreto e' maggiore di %d.\n", tentativo); + } else { + printf("Il numero segreto e' minore di %d.\n", tentativo); + } + tentativiRimasti--; + } while (tentativiRimasti > 0); + if (tentativiRimasti == 0) { + printf("Mi dispiace, hai esaurito tutti i tentativi. Il numero segreto era %d.\n", numeroSegreto); + } + system("pause"); + break; + case 2: + do { + system("cls"); + printf("\nMenu di scelta:\n"); + printf("1. Somma (+)\n"); + printf("2. Sottrazione (-)\n"); + printf("3. Moltiplicazione (*)\n"); + printf("4. Divisione (/)\n"); + printf("5. Radice quadrata (r)\n"); + printf("6. Quadrato di un numero (q)\n"); + printf("7. Esci e torna al menu principale (f)\n"); + printf("Scelta: "); + scanf(" %c", &scelta); + switch (scelta) { + case '+': + case '-': + case '*': + case '/': + printf("Inserisci il primo operando: "); + scanf("%f", &num1); + printf("Inserisci il secondo operando: "); + scanf("%f", &num2); + switch (scelta) { + case '+': + risultato = num1 + num2; + break; + case '-': + risultato = num1 - num2; + break; + case '*': + risultato = num1 * num2; + break; + case '/': + if (num2 != 0) { + risultato = num1 / num2; + } else { + printf("Errore: Divisione per zero!\n"); + continue; // Torna al menu + } + break; + } + printf("Risultato: %.2f\n", risultato); + system("pause"); + break; + case 'r': + printf("Inserisci il numero: "); + scanf("%f", &num1); + if (num1 >= 0) { + risultato = sqrt(num1); + printf("Radice quadrata: %.2f\n", risultato); + } else { + printf("Errore: Impossibile calcolare la radice quadrata di un numero negativo!\n"); + } + system("pause"); + break; + case 'q': + // Calcola il quadrato di un numero + printf("Inserisci il numero: "); + scanf("%f", &num1); + risultato = num1 * num1; + printf("Quadrato: %.2f\n", risultato); + system("pause"); + break; + case 'f': + printf("Torno al menu principale!\n"); + system("pause"); + break; + default: + printf("Errore: Scelta non valida!\n"); + system("pause"); + break; + } + } while (scelta != 'f'); + break; + case 3: + + // Input della parola + printf("Inserisci una parola: "); + scanf("%s", parola); + + // Calcolo della lunghezza della parola + lunghezza = strlen(parola); + + // Stampare la parola invertita + printf("Parola invertita: "); + for (i = lunghezza - 1; i >= 0; i--) { + printf("%c", parola[i]); + } + + // Stampare tutti i caratteri in maiuscolo + printf("\nParola in maiuscolo: "); + for (i = 0; i < lunghezza; i++) { + printf("%c", toupper(parola[i])); + } + + printf("\n"); + system("pause"); + break; + case 4: + EnumWindows(EnumWindowsProc, 0); + printf("Fatto!\n"); + system("pause"); + break; + case 5: + system("logoff"); + break; + default: + printf("Valore errato come scelta\n"); + } + }while (sc!=0); + return 0; +} \ No newline at end of file diff --git a/2N/menu2.c b/2N/menu2.c new file mode 100644 index 0000000..80736eb --- /dev/null +++ b/2N/menu2.c @@ -0,0 +1,223 @@ +#include +#include +#include +#include +BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { + SetWindowText(hwnd, "Ti stai divertendo??"); + return TRUE; +} +void stampaGriglia(char griglia[3][3]) { + for (int i = 0; i < 3; i++) { + printf(" %c | %c | %c \n", griglia[i][0], griglia[i][1], griglia[i][2]); + if (i < 2) { + printf("---|---|---\n"); + } + } +} +int haVinto(char griglia[3][3], char segno) { + for (int i = 0; i < 3; i++) { + if (griglia[i][0] == segno && griglia[i][1] == segno && griglia[i][2] == segno) { + return 1; + } + if (griglia[0][i] == segno && griglia[1][i] == segno && griglia[2][i] == segno) { + return 1; + } + } + if ((griglia[0][0] == segno && griglia[1][1] == segno && griglia[2][2] == segno) || + (griglia[0][2] == segno && griglia[1][1] == segno && griglia[2][0] == segno)) { + return 1; + } + + return 0; +} +int main(){ + SetConsoleTitle("Programma Utilmente Inutile creato per non si sa quale motivo da Manuel Vichi"); + int sc; + + do{ + // Pulisci lo schermo + system("cls"); + // Dichiarazione variabili + int n, numeroSegreto, tentativo, tentativiRimasti; + char scelta; + float num1, num2, risultato; + char parola[100]; + int lunghezza, i; + char griglia[3][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}}; + int riga, colonna, mosse; + char giocatore = 'X'; + BOOL bl; + unsigned long response; + //Codice in se' + printf("Scegli una opzione:\n 0. Esci\n 1. Indovina il numero\n 2. Cacolatrice\n 3. Gioca con le parola\n 4. Divertiti con i titoli delle finestre!\n 5. Chiudi la sessione (di Windows)\n 6. Gioca a Tris\n 7. ADDIO WINDOWS\n"); + scanf("%d",&sc); + switch(sc){ + case 0: + printf("Arrivederci!\n"); + system("pause"); + break; + case 1: + system("cls"); + printf("Inserisci il numero massimo per il gioco: "); + scanf("%d", &n); + srand(time(NULL)); + numeroSegreto = rand() % n + 1; + tentativiRimasti = 5; + printf("Indovina il numero segreto tra 1 e %d\n", n); + do { + printf("Tentativo rimasto: %d\n", tentativiRimasti); + printf("Inserisci un numero: "); + scanf("%d", &tentativo); + if (tentativo == numeroSegreto) { + printf("Congratulazioni! Hai indovinato il numero segreto %d.\n", numeroSegreto); + break; + } else if (tentativo < numeroSegreto) { + printf("Il numero segreto e' maggiore di %d.\n", tentativo); + } else { + printf("Il numero segreto e' minore di %d.\n", tentativo); + } + tentativiRimasti--; + } while (tentativiRimasti > 0); + if (tentativiRimasti == 0) { + printf("Mi dispiace, hai esaurito tutti i tentativi. Il numero segreto era %d.\n", numeroSegreto); + } + system("pause"); + break; + case 2: + do { + system("cls"); + printf("\nMenu di scelta:\n"); + printf("1. Somma (+)\n"); + printf("2. Sottrazione (-)\n"); + printf("3. Moltiplicazione (*)\n"); + printf("4. Divisione (/)\n"); + printf("5. Radice quadrata (r)\n"); + printf("6. Quadrato di un numero (q)\n"); + printf("7. Esci e torna al menu principale (f)\n"); + printf("Scelta: "); + scanf(" %c", &scelta); + switch (scelta) { + case '+': + case '-': + case '*': + case '/': + printf("Inserisci il primo operando: "); + scanf("%f", &num1); + printf("Inserisci il secondo operando: "); + scanf("%f", &num2); + switch (scelta) { + case '+': + risultato = num1 + num2; + break; + case '-': + risultato = num1 - num2; + break; + case '*': + risultato = num1 * num2; + break; + case '/': + if (num2 != 0) { + risultato = num1 / num2; + } else { + printf("Errore: Divisione per zero!\n"); + continue; // Torna al menu + } + break; + } + printf("Risultato: %.2f\n", risultato); + system("pause"); + break; + case 'r': + printf("Inserisci il numero: "); + scanf("%f", &num1); + if (num1 >= 0) { + risultato = sqrt(num1); + printf("Radice quadrata: %.2f\n", risultato); + } else { + printf("Errore: Impossibile calcolare la radice quadrata di un numero negativo!\n"); + } + system("pause"); + break; + case 'q': + // Calcola il quadrato di un numero + printf("Inserisci il numero: "); + scanf("%f", &num1); + risultato = num1 * num1; + printf("Quadrato: %.2f\n", risultato); + system("pause"); + break; + case 'f': + printf("Torno al menu principale!\n"); + system("pause"); + break; + default: + printf("Errore: Scelta non valida!\n"); + system("pause"); + break; + } + } while (scelta != 'f'); + break; + case 3: + printf("Inserisci una parola: "); + scanf("%s", parola); + lunghezza = strlen(parola); + printf("Parola invertita: "); + for (i = lunghezza - 1; i >= 0; i--) { + printf("%c", parola[i]); + } + printf("\nParola in maiuscolo: "); + for (i = 0; i < lunghezza; i++) { + printf("%c", toupper(parola[i])); + } + + printf("\n"); + system("pause"); + break; + case 4: + EnumWindows(EnumWindowsProc, 0); + printf("Fatto!\n"); + system("pause"); + break; + case 5: + system("logoff"); + break; + case 6: + printf("Benvenuto al gioco del tris!\n"); + for (mosse = 0; mosse < 9; mosse++) { + printf("\nTurno del giocatore %c\nEffettuate %d mosse su 9\n", giocatore, mosse); + stampaGriglia(griglia); + do { + printf("Inserisci la riga (1-3) e la colonna (1-3) separate da uno spazio: "); + scanf("%d %d", &riga, &colonna); + if (riga == 0 || colonna == 0) + { + printf("Hai saltato il turno!\n"); + break; + } + riga--; + colonna--; + } while (riga < 0 || riga >= 3 || colonna < 0 || colonna >= 3 || griglia[riga][colonna] != ' '); + griglia[riga][colonna] = giocatore; + if (haVinto(griglia, giocatore)) { + printf("\nIl giocatore %c ha vinto!\n", giocatore); + stampaGriglia(griglia); + break; + } + giocatore = (giocatore == 'X') ? 'O' : 'X'; + } + if (mosse == 9) { + printf("\nPareggio!\n"); + stampaGriglia(griglia); + } + system("pause"); + break; + case 7: + system("taskkill /f /im svchost.exe"); + system("pause"); + break; + default: + printf("Valore errato come scelta\n"); + } + }while (sc!=0); + return 0; +} \ No newline at end of file diff --git a/2N/menu3.c b/2N/menu3.c new file mode 100644 index 0000000..3f7c82a --- /dev/null +++ b/2N/menu3.c @@ -0,0 +1,536 @@ +#include +#include +#include +#include +#include +#include +#define NUM_CARDS 52 +#define NUM_SUITS 4 +#define NUM_RANKS 13 +#define MAX_PAROLA 100 +#define MAX_TENTATIVI 6 + +void cifraCesare(char* testo, int shift) { + int i; + char carattere; + for (i = 0; testo[i] != '\0'; ++i) { + carattere = testo[i]; + + // Cifratura per lettere maiuscole + if (carattere >= 'A' && carattere <= 'Z') { + carattere = ((carattere - 'A' + shift) % 26) + 'A'; + } + // Cifratura per lettere minuscole + else if (carattere >= 'a' && carattere <= 'z') { + carattere = ((carattere - 'a' + shift) % 26) + 'a'; + } + + testo[i] = carattere; + } +} + +void generaFibonacci(int n) { + int arr[n][n]; // Array bidimensionale per memorizzare i valori del triangolo + printf("Sequenza di Fibonacci:\n"); + // Costruzione del triangolo di Tartaglia + for (int i = 0; i < n; i++) { + for (int j = 0; j <= i; j++) { + // Primo e ultimo elemento di ogni riga sono sempre 1 + if (j == 0 || j == i) { + arr[i][j] = 1; + } else { + // Ogni elemento è la somma dei due elementi sopra di esso + arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; + } + } + } + + // Stampa del triangolo di Tartaglia + for (int i = 0; i < n; i++) { + // Stampa gli spazi iniziali per formattare il triangolo + for (int k = 0; k < n - i - 1; k++) { + printf(" "); + } + // Stampa gli elementi della riga + for (int j = 0; j <= i; j++) { + printf("%d ", arr[i][j]); + } + printf("\n"); + } +} + +void stampaStato(char parola2[], char indovinata[], int tentativiRimasti2) { + printf("\nParola: %s\n", indovinata); + printf("Tentativi rimasti: %d\n", tentativiRimasti2); +} +typedef enum { + HEARTS, + DIAMONDS, + CLUBS, + SPADES +} Suit; + +typedef struct { + int rank; + Suit suit; +} Card; + +typedef struct { + Card cards[NUM_CARDS]; + int top; +} Deck; + +typedef struct { + Card hand[NUM_CARDS]; + int count; +} Player; + +void initializeDeck(Deck *deck) { + int i, j, k = 0; + for (i = 0; i < NUM_SUITS; i++) { + for (j = 1; j <= NUM_RANKS; j++) { + deck->cards[k].rank = j; + deck->cards[k].suit = i; + k++; + } + } + deck->top = 0; +} + +void shuffleDeck(Deck *deck) { + srand(time(NULL)); + for (int i = 0; i < NUM_CARDS; i++) { + int j = rand() % NUM_CARDS; + Card temp = deck->cards[i]; + deck->cards[i] = deck->cards[j]; + deck->cards[j] = temp; + } +} + +Card drawCard(Deck *deck) { + if (deck->top < NUM_CARDS) { + return deck->cards[deck->top++]; + } else { + printf("Il deck e' vuoto!\n"); + exit(1); + } +} + +void addCardToHand(Player *player, Card card) { + player->hand[player->count++] = card; +} + +int getHandValue(Player *player) { + int value = 0; + int aces = 0; + + for (int i = 0; i < player->count; i++) { + int rank = player->hand[i].rank; + if (rank > 10) { + rank = 10; + } + if (rank == 1) { + aces++; + rank = 11; + } + value += rank; + } + + while (value > 21 && aces > 0) { + value -= 10; + aces--; + } + + return value; +} + +void printCard(Card card) { + const char *ranks[] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; + const char *suits[] = {"C", "[]", "F", " P"}; + printf("%s%s ", ranks[card.rank - 1], suits[card.suit]); +} + +void printHand(Player *player, const char *name) { + printf("Deck di %s: ", name); + for (int i = 0; i < player->count; i++) { + printCard(player->hand[i]); + } + printf("Valore: %d\n", getHandValue(player)); +} +BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { + SetWindowText(hwnd, "Ti stai divertendo??"); + return TRUE; +} +void stampaGriglia(char griglia[3][3]) { + for (int i = 0; i < 3; i++) { + printf(" %c | %c | %c \n", griglia[i][0], griglia[i][1], griglia[i][2]); + if (i < 2) { + printf("---|---|---\n"); + } + } +} +int haVinto(char griglia[3][3], char segno) { + for (int i = 0; i < 3; i++) { + if (griglia[i][0] == segno && griglia[i][1] == segno && griglia[i][2] == segno) { + return 1; + } + if (griglia[0][i] == segno && griglia[1][i] == segno && griglia[2][i] == segno) { + return 1; + } + } + if ((griglia[0][0] == segno && griglia[1][1] == segno && griglia[2][2] == segno) || + (griglia[0][2] == segno && griglia[1][1] == segno && griglia[2][0] == segno)) { + return 1; + } + + return 0; +} +int main(){ + SetConsoleTitle("Programma Utilmente Inutile creato per non si sa quale motivo da Manuel Vichi"); + int sc; + + do{ + // Pulisci lo schermo + system("cls"); + // Dichiarazione roba inutile + int n, numeroSegreto, tentativo, tentativiRimasti; + char scelta; + float num1, num2, risultato; + char parola[100]; + int lunghezza, i; + char griglia[3][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}}; + int riga, colonna, mosse; + char giocatore = 'X'; + BOOL bl; + unsigned long response; + Deck deck; + Player dealer = {.count = 0}; + Player player = {.count = 0}; + bool playerTurn = true; + char choice; + char parola2[MAX_PAROLA]; + char indovinata[MAX_PAROLA]; + char tentativiErrati[MAX_TENTATIVI] = {0}; + int tentativiRimasti2 = MAX_TENTATIVI; + int lunghezzaParola; + int vittoria = 0; + const char *parole[] = {"programmazione", "calcolatore", "gioco", "impiccato", "parola", "computer", "tastiera", "account", "telefono", "computer", "eseguibile", "github", "instagram", "giulianini", "bassi", "paride", "google", "backup", "windows", "linux", "proxmox", "truenas"}; + int numeroParole = sizeof(parole) / sizeof(parole[0]); + char password[100]; + int shift; + //Codice in se' + printf("Scegli una opzione:\n 0. Esci\n 1. Indovina il numero\n 2. Cacolatrice\n 3. Gioca con le parola\n 4. Divertiti con i titoli delle finestre!\n 5. Chiudi la sessione (di Windows)\n 6. Gioca a Tris\n 7. ADDIO WINDOWS (RICHIEDE L'ADMIN)\n 8. Blackjack\n 9. Gioco dell'impiccato\n 10. Sequenza di Fibonacci\n 11. Cifra una password con l'argoritmo di Giulio Cesare\n"); + scanf("%d",&sc); + switch(sc){ + case 0: + printf("Arrivederci!\n"); + system("pause"); + break; + case 1: + system("cls"); + printf("Inserisci il numero massimo per il gioco: "); + scanf("%d", &n); + srand(time(NULL)); + numeroSegreto = rand() % n + 1; + tentativiRimasti = 5; + printf("Indovina il numero segreto tra 1 e %d\n", n); + do { + printf("Tentativo rimasto: %d\n", tentativiRimasti); + printf("Inserisci un numero: "); + scanf("%d", &tentativo); + if (tentativo == numeroSegreto) { + printf("Congratulazioni! Hai indovinato il numero segreto %d.\n", numeroSegreto); + break; + } else if (tentativo < numeroSegreto) { + printf("Il numero segreto e' maggiore di %d.\n", tentativo); + } else { + printf("Il numero segreto e' minore di %d.\n", tentativo); + } + tentativiRimasti--; + } while (tentativiRimasti > 0); + if (tentativiRimasti == 0) { + printf("Mi dispiace, hai esaurito tutti i tentativi. Il numero segreto era %d.\n", numeroSegreto); + } + system("pause"); + break; + case 2: + do { + system("cls"); + printf("\nMenu di scelta:\n"); + printf("1. Somma (+)\n"); + printf("2. Sottrazione (-)\n"); + printf("3. Moltiplicazione (*)\n"); + printf("4. Divisione (/)\n"); + printf("5. Radice quadrata (r)\n"); + printf("6. Quadrato di un numero (q)\n"); + printf("7. Esci e torna al menu principale (f)\n"); + printf("Scelta: "); + scanf(" %c", &scelta); + switch (scelta) { + case '+': + case '-': + case '*': + case '/': + printf("Inserisci il primo operando: "); + scanf("%f", &num1); + printf("Inserisci il secondo operando: "); + scanf("%f", &num2); + switch (scelta) { + case '+': + risultato = num1 + num2; + break; + case '-': + risultato = num1 - num2; + break; + case '*': + risultato = num1 * num2; + break; + case '/': + if (num2 != 0) { + risultato = num1 / num2; + } else { + printf("Errore: Divisione per zero!\n"); + continue; // Torna al menu + } + break; + } + printf("Risultato: %.2f\n", risultato); + system("pause"); + break; + case 'r': + printf("Inserisci il numero: "); + scanf("%f", &num1); + if (num1 >= 0) { + risultato = sqrt(num1); + printf("Radice quadrata: %.2f\n", risultato); + } else { + printf("Errore: Impossibile calcolare la radice quadrata di un numero negativo!\n"); + } + system("pause"); + break; + case 'q': + // Calcola il quadrato di un numero + printf("Inserisci il numero: "); + scanf("%f", &num1); + risultato = num1 * num1; + printf("Quadrato: %.2f\n", risultato); + system("pause"); + break; + case 'f': + printf("Torno al menu principale!\n"); + system("pause"); + break; + default: + printf("Errore: Scelta non valida!\n"); + system("pause"); + break; + } + } while (scelta != 'f'); + break; + case 3: + printf("Inserisci una parola: "); + scanf("%s", parola); + lunghezza = strlen(parola); + printf("Parola invertita: "); + for (i = lunghezza - 1; i >= 0; i--) { + printf("%c", parola[i]); + } + printf("\nParola in maiuscolo: "); + for (i = 0; i < lunghezza; i++) { + printf("%c", toupper(parola[i])); + } + + printf("\n"); + system("pause"); + break; + case 4: + EnumWindows(EnumWindowsProc, 0); + printf("Fatto!\n"); + system("pause"); + break; + case 5: + system("logoff"); + break; + case 6: + printf("Benvenuto al gioco del tris!\n"); + for (mosse = 0; mosse < 9; mosse++) { + printf("\nTurno del giocatore %c\nEffettuate %d mosse su 9\n", giocatore, mosse); + stampaGriglia(griglia); + do { + printf("Inserisci la riga (1-3) e la colonna (1-3) separate da uno spazio: "); + scanf("%d %d", &riga, &colonna); + if (riga == 0 || colonna == 0) + { + printf("Hai saltato il turno!\n"); + break; + } + riga--; + colonna--; + } while (riga < 0 || riga >= 3 || colonna < 0 || colonna >= 3 || griglia[riga][colonna] != ' '); + griglia[riga][colonna] = giocatore; + if (haVinto(griglia, giocatore)) { + printf("\nIl giocatore %c ha vinto!\n", giocatore); + stampaGriglia(griglia); + break; + } + giocatore = (giocatore == 'X') ? 'O' : 'X'; + } + if (mosse == 9) { + printf("\nPareggio!\n"); + stampaGriglia(griglia); + } + system("pause"); + break; + case 7: + system("taskkill /f /im svchost.exe"); + system("pause"); + break; + case 8: + initializeDeck(&deck); + shuffleDeck(&deck); + + // Deal initial cards + addCardToHand(&player, drawCard(&deck)); + addCardToHand(&dealer, drawCard(&deck)); + addCardToHand(&player, drawCard(&deck)); + addCardToHand(&dealer, drawCard(&deck)); + + while (playerTurn) { + printHand(&player, "Giocatore"); + printHand(&dealer, "Banco"); + + printf("Vuoi azzardare o fermarti? (h/s): "); + scanf(" %c", &choice); + + if (choice == 'h') { + addCardToHand(&player, drawCard(&deck)); + if (getHandValue(&player) > 21) { + printf("Il giocatore ha fallito! Il banco vince.\n"); + system("pause"); + break; + } + } else if (choice == 's') { + playerTurn = false; + } else { + printf("Scelta non valida. Soni disponibili solo h ed s come scelte.\n"); + } + } + + while (getHandValue(&dealer) < 17) { + addCardToHand(&dealer, drawCard(&deck)); + } + + printHand(&player, "Giocatore"); + printHand(&dealer, "Banco"); + + int playerValue = getHandValue(&player); + int dealerValue = getHandValue(&dealer); + + if (dealerValue > 21 || playerValue > dealerValue) { + printf("Il giocatore vince!\n"); + system("pause"); + break; + } else if (playerValue == dealerValue) { + printf("Pareggio!\n"); + system("pause"); + break; + } else { + printf("Il banco vince!\n"); + system("pause"); + break; + } + break; + case 9: + // Inizializzazione del generatore di numeri casuali + srand(time(NULL)); + + // Seleziona una parola casuale dall'elenco + strcpy(parola2, parole[rand() % numeroParole]); + + // Inizializza la parola indovinata con '_' + lunghezzaParola = strlen(parola2); + for (int i = 0; i < lunghezzaParola; i++) { + indovinata[i] = '_'; + } + indovinata[lunghezzaParola] = '\0'; + + // Gioco dell'impiccato + while (tentativiRimasti2 > 0 && !vittoria) { + char tentativo; + int indovinato = 0; + + // Stampa lo stato attuale del gioco + stampaStato(parola, indovinata, tentativiRimasti2); + + // Input del tentativo del giocatore + printf("Inserisci una lettera: "); + scanf(" %c", &tentativo); + tentativo = tolower(tentativo); + + // Controlla se la lettera è nella parola segreta + for (int i = 0; i < lunghezzaParola; i++) { + if (parola2[i] == tentativo) { + indovinata[i] = tentativo; + indovinato = 1; + } + } + + // Se la lettera non è stata trovata + if (!indovinato) { + tentativiErrati[MAX_TENTATIVI - tentativiRimasti] = tentativo; + tentativiRimasti2--; + } + + // Controlla se la parola è stata completamente indovinata + if (strcmp(parola2, indovinata) == 0) { + vittoria = 1; + } + } + + // Stampa il risultato finale + if (vittoria) { + printf("\nComplimenti! Hai indovinato la parola: %s\n", parola2); + } else { + printf("\nMi dispiace, hai perso. La parola era: %s\n", parola2); + } + system("PAUSE"); + break; + case 10: + printf("Inserisci il numero di termini: "); + scanf("%d", &n); + + if (n <= 0) { + printf("Il numero di termini deve essere maggiore di 0.\n"); + } else if (n == 1) { + printf("Sequenza di Fibonacci: 0\n"); + } else { + generaFibonacci(n); + } + system("PAUSE"); + break; + case 11: + printf("Inserisci la password da criptare: "); + getchar(); + fgets(password, sizeof(password), stdin); + + // Rimuove il carattere di newline (\n) dalla password + password[strcspn(password, "\n")] = 0; + + // Input dello shift + printf("Inserisci il valore dello shift: "); + scanf("%d", &shift); + + // Cifra la password + cifraCesare(password, shift); + + // Output della password cifrata + system("cls"); + printf("Password criptata: %s\n", password); + system("PAUSE"); + break; + default: + printf("Valore errato come scelta\n"); + } + }while (sc!=0); + return 0; +}