From c35d650d365a5bc931039c6514db858f7e6264a9 Mon Sep 17 00:00:00 2001 From: Vichingo455 Date: Fri, 10 Jan 2025 13:13:05 +0000 Subject: [PATCH] Upload files to "sfusi" --- sfusi/G.c | 37 ++++ sfusi/H.c | 18 ++ sfusi/I.c | 34 ++++ sfusi/L.c | 33 ++++ sfusi/M.c | 41 ++++ sfusi/N.c | 31 +++ sfusi/O.c | 26 +++ sfusi/menu1.c | 170 ++++++++++++++++ sfusi/menu2.c | 223 +++++++++++++++++++++ sfusi/menu3.c | 536 ++++++++++++++++++++++++++++++++++++++++++++++++++ sfusi/t.c | 49 +++++ sfusi/v.c | 64 ++++++ sfusi/z.c | 64 ++++++ 13 files changed, 1326 insertions(+) create mode 100644 sfusi/G.c create mode 100644 sfusi/H.c create mode 100644 sfusi/I.c create mode 100644 sfusi/L.c create mode 100644 sfusi/M.c create mode 100644 sfusi/N.c create mode 100644 sfusi/O.c create mode 100644 sfusi/menu1.c create mode 100644 sfusi/menu2.c create mode 100644 sfusi/menu3.c create mode 100644 sfusi/t.c create mode 100644 sfusi/v.c create mode 100644 sfusi/z.c diff --git a/sfusi/G.c b/sfusi/G.c new file mode 100644 index 0000000..8e67ea4 --- /dev/null +++ b/sfusi/G.c @@ -0,0 +1,37 @@ +#include + +int main() { + int n, numero, somma = 0, minimo, massimo; + float media; + + printf("Inserisci il numero di numeri interi: "); + scanf("%d", &n); + + // Leggi il primo numero per inizializzare minimo e massimo + printf("Inserisci il primo numero: "); + scanf("%d", &numero); + somma = minimo = massimo = numero; + + // Leggi gli altri numeri e aggiorna somma, minimo e massimo + for (int i = 1; i < n; i++) { + printf("Inserisci il prossimo numero: "); + scanf("%d", &numero); + somma += numero; + if (numero < minimo) + minimo = numero; + if (numero > massimo) + massimo = numero; + } + + // Calcola la media + media = (float)somma / n; + + // Stampa i risultati + printf("Somma: %d\n", somma); + printf("Minimo: %d\n", minimo); + printf("Massimo: %d\n", massimo); + printf("Media: %.2f\n", media); + + return 0; +} + diff --git a/sfusi/H.c b/sfusi/H.c new file mode 100644 index 0000000..df96bf6 --- /dev/null +++ b/sfusi/H.c @@ -0,0 +1,18 @@ +#include + +int main() { + int n, somma = 0; + + printf("Inserisci un numero intero positivo: "); + scanf("%d", &n); + + // Calcola la somma dei primi n numeri naturali + for (int i = 1; i <= n; i++) { + somma += i; + } + + printf("La somma dei primi %d numeri naturali e' : %d\n", n, somma); + + return 0; +} + diff --git a/sfusi/I.c b/sfusi/I.c new file mode 100644 index 0000000..014f4f1 --- /dev/null +++ b/sfusi/I.c @@ -0,0 +1,34 @@ +#include + +int main() { + int k, n; + + // Richiedi all'utente di inserire il valore k compreso tra 1 e 4 + do { + printf("Inserisci un valore k compreso tra 1 e 4: "); + scanf("%d", &k); + } while (k < 1 || k > 4); + + // Richiedi all'utente di inserire il numero di caratteri + printf("Inserisci il numero di caratteri (n): "); + scanf("%d", &n); + + // Leggi e elabora gli n caratteri + printf("Inserisci %d caratteri:\n", n); + for (int i = 0; i < n; i++) { + char carattere; + int valore; + + // Leggi il carattere + scanf(" %c", &carattere); + + // Somma k al valore del carattere + valore = carattere + k; + + // Stampa il valore ottenuto per il carattere + printf("Il valore ottenuto per il carattere %c e' : %d\n", carattere, valore); + } + + return 0; +} + diff --git a/sfusi/L.c b/sfusi/L.c new file mode 100644 index 0000000..0e59855 --- /dev/null +++ b/sfusi/L.c @@ -0,0 +1,33 @@ +#include + +// Funzione per calcolare la potenza +int potenza(int base, int esponente) { + int risultato = 1; + for (int i = 0; i < esponente; i++) { + risultato *= base; + } + return risultato; +} + +int main() { + int b, e; + + // Richiedi all'utente di inserire la base b e l'esponente e + printf("Inserisci la base (b): "); + scanf("%d", &b); + printf("Inserisci l'esponente (e): "); + scanf("%d", &e); + + // Verifica che entrambi b ed e siano numeri interi positivi + if (b < 0 || e < 0) { + printf("La base e l'esponente devono essere numeri interi positivi.\n"); + return 1; // Termina il programma con un codice di errore + } + + // Calcola e stampa la potenza + int risultato = potenza(b, e); + printf("%d elevato alla %d e' : %d\n", b, e, risultato); + + return 0; +} + diff --git a/sfusi/M.c b/sfusi/M.c new file mode 100644 index 0000000..f1847b5 --- /dev/null +++ b/sfusi/M.c @@ -0,0 +1,41 @@ +#include + +int main() { + int n; + + // Richiedi all'utente di inserire il numero di caratteri + printf("Inserisci il numero di caratteri: "); + scanf("%d", &n); + + // Leggi e controlla ciascun carattere + printf("Inserisci %d caratteri:\n", n); + for (int i = 0; i < n; i++) { + char carattere; + + // Leggi il carattere + scanf(" %c", &carattere); + + // Controlla se il carattere è una lettera maiuscola + if (carattere >= 'A' && carattere <= 'Z') { + // Trasforma la lettera maiuscola in minuscola + carattere = carattere + 32; + } + // Controlla se il carattere è una lettera minuscola + else if (carattere >= 'a' && carattere <= 'z') { + // Trasforma la lettera minuscola in maiuscola + carattere = carattere - 32; + } + // Controlla se il carattere è un carattere numerico + else if (carattere >= '0' && carattere <= '9') { + // Trasforma il carattere numerico nel carattere '9' + carattere = '9'; + } + + // Stampa il carattere trasformato + printf("%c ", carattere); + } + + printf("\n"); + + return 0; +} \ No newline at end of file diff --git a/sfusi/N.c b/sfusi/N.c new file mode 100644 index 0000000..cbd59a9 --- /dev/null +++ b/sfusi/N.c @@ -0,0 +1,31 @@ +#include + +// Funzione per calcolare il fattoriale di un numero +int fattoriale(int n) { + if (n == 0 || n == 1) { + return 1; + } else { + return n * fattoriale(n - 1); + } +} + +int main() { + int n; + + // Richiedi all'utente di inserire un numero intero positivo + printf("Inserisci un numero intero positivo: "); + scanf("%d", &n); + + // Verifica che il numero inserito sia non negativo + if (n < 0) { + printf("Il numero deve essere non negativo.\n"); + return 1; // Termina il programma con un codice di errore + } + + // Calcola il fattoriale e stampa il risultato + int risultato = fattoriale(n); + printf("Il fattoriale di %d è: %d\n", n, risultato); + + return 0; +} + diff --git a/sfusi/O.c b/sfusi/O.c new file mode 100644 index 0000000..675a1de --- /dev/null +++ b/sfusi/O.c @@ -0,0 +1,26 @@ +#include + +int main() { + int N; + + // Richiedi all'utente di inserire un numero intero compreso tra 1 e 10 + printf("Inserisci un numero intero compreso tra 1 e 10: "); + scanf("%d", &N); + + // Verifica se il numero inserito è valido + if (N < 1 || N > 10) { + printf("Errore: Il numero inserito non è compreso tra 1 e 10.\n"); + return 1; + } + + // Stampa il quadrato di asterischi di lato N + for (int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) { + printf("* "); + } + printf("\n"); + } + + return 0; +} + diff --git a/sfusi/menu1.c b/sfusi/menu1.c new file mode 100644 index 0000000..054740c --- /dev/null +++ b/sfusi/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/sfusi/menu2.c b/sfusi/menu2.c new file mode 100644 index 0000000..80736eb --- /dev/null +++ b/sfusi/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/sfusi/menu3.c b/sfusi/menu3.c new file mode 100644 index 0000000..3f7c82a --- /dev/null +++ b/sfusi/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; +} diff --git a/sfusi/t.c b/sfusi/t.c new file mode 100644 index 0000000..047e68f --- /dev/null +++ b/sfusi/t.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include + + +double calcola_affinita(char nome1[], char nome2[]) { + int somma_ascii = 0; + int min_ascii; + int random_value; + + + for (int i = 0; nome1[i] != '\0' && nome2[i] != '\0'; i++) { + somma_ascii += (int)nome1[i] + (int)nome2[i]; + } + + min_ascii = (int)nome1[0] < (int)nome2[0] ? (int)nome1[0] : (int)nome2[0]; + for (int i = 1; nome1[i] != '\0' && nome2[i] != '\0'; i++) { + if ((int)nome1[i] < min_ascii) + min_ascii = (int)nome1[i]; + if ((int)nome2[i] < min_ascii) + min_ascii = (int)nome2[i]; + } + + srand(time(NULL)); + random_value = rand() % (min_ascii + 1); + + double affinita = (double)(somma_ascii - random_value) / (255 * strlen(nome1) + 255 * strlen(nome2) - random_value) * 10; + + return affinita; +} + +int main() { + SetConsoleTitle("Calcolo affinita' di coppia by Vichi Manuel"); + char nome1[100]; + char nome2[100]; + + printf("Inserisci il primo nome: "); + scanf("%s", nome1); + printf("Inserisci il secondo nome: "); + scanf("%s", nome2); + + double affinita = calcola_affinita(nome1, nome2); + + printf("L'affinita' di coppia tra %s e %s e'': %.2f/10\n", nome1, nome2, affinita); + + return 0; +} diff --git a/sfusi/v.c b/sfusi/v.c new file mode 100644 index 0000000..8125015 --- /dev/null +++ b/sfusi/v.c @@ -0,0 +1,64 @@ +#include +#include +#include + +// Funzione per generare un valore casuale compreso tra a e b +int genera_valore_casuale(int a, int b) { + return rand() % (b - a + 1) + a; +} + +// Funzione per cercare le occorrenze di un valore specifico in un array +int conta_occorrenze(int array[], int lunghezza, int valore) { + int contatore = 0; + for (int i = 0; i < lunghezza; i++) { + if (array[i] == valore) { + contatore++; + } + } + return contatore; +} + +int main() { + int n, a, b, valore_specifico; + + // Input della dimensione degli array e degli estremi dell'intervallo + printf("Inserisci la dimensione degli array: "); + scanf("%d", &n); + printf("Inserisci gli estremi dell'intervallo (a e b): "); + scanf("%d %d", &a, &b); + printf("Inserisci il valore specifico da cercare: "); + scanf("%d", &valore_specifico); + + // Allocazione dinamica di memoria per gli array + int *array_valori = (int *)malloc(n * sizeof(int)); + int *array_random = (int *)malloc(n * sizeof(int)); + + // Inizializzazione del generatore di numeri casuali + srand(time(NULL)); + + // Input dei valori nell'array + printf("Inserisci i valori nell'array:\n"); + for (int i = 0; i < n; i++) { + scanf("%d", &array_valori[i]); + } + + // Generazione di valori casuali e memorizzazione nell'array random + for (int i = 0; i < n; i++) { + array_random[i] = genera_valore_casuale(a, b); + } + + // Cerca le occorrenze del valore specifico in entrambi gli array + int occorrenze_valori = conta_occorrenze(array_valori, n, valore_specifico); + int occorrenze_random = conta_occorrenze(array_random, n, valore_specifico); + + // Stampa il risultato + printf("Il valore %d compare %d volte nell'array dei valori inseriti.\n", valore_specifico, occorrenze_valori); + printf("Il valore %d compare %d volte nell'array dei valori casuali.\n", valore_specifico, occorrenze_random); + + // Deallocazione della memoria + free(array_valori); + free(array_random); + + return 0; +} + diff --git a/sfusi/z.c b/sfusi/z.c new file mode 100644 index 0000000..8125015 --- /dev/null +++ b/sfusi/z.c @@ -0,0 +1,64 @@ +#include +#include +#include + +// Funzione per generare un valore casuale compreso tra a e b +int genera_valore_casuale(int a, int b) { + return rand() % (b - a + 1) + a; +} + +// Funzione per cercare le occorrenze di un valore specifico in un array +int conta_occorrenze(int array[], int lunghezza, int valore) { + int contatore = 0; + for (int i = 0; i < lunghezza; i++) { + if (array[i] == valore) { + contatore++; + } + } + return contatore; +} + +int main() { + int n, a, b, valore_specifico; + + // Input della dimensione degli array e degli estremi dell'intervallo + printf("Inserisci la dimensione degli array: "); + scanf("%d", &n); + printf("Inserisci gli estremi dell'intervallo (a e b): "); + scanf("%d %d", &a, &b); + printf("Inserisci il valore specifico da cercare: "); + scanf("%d", &valore_specifico); + + // Allocazione dinamica di memoria per gli array + int *array_valori = (int *)malloc(n * sizeof(int)); + int *array_random = (int *)malloc(n * sizeof(int)); + + // Inizializzazione del generatore di numeri casuali + srand(time(NULL)); + + // Input dei valori nell'array + printf("Inserisci i valori nell'array:\n"); + for (int i = 0; i < n; i++) { + scanf("%d", &array_valori[i]); + } + + // Generazione di valori casuali e memorizzazione nell'array random + for (int i = 0; i < n; i++) { + array_random[i] = genera_valore_casuale(a, b); + } + + // Cerca le occorrenze del valore specifico in entrambi gli array + int occorrenze_valori = conta_occorrenze(array_valori, n, valore_specifico); + int occorrenze_random = conta_occorrenze(array_random, n, valore_specifico); + + // Stampa il risultato + printf("Il valore %d compare %d volte nell'array dei valori inseriti.\n", valore_specifico, occorrenze_valori); + printf("Il valore %d compare %d volte nell'array dei valori casuali.\n", valore_specifico, occorrenze_random); + + // Deallocazione della memoria + free(array_valori); + free(array_random); + + return 0; +} +