V I S U A L I Z Z A D I S C U S S I O N E |
morfeus |
Inserito il - 29/07/2011 : 10:56:38 Salve ragazzi, ho creato questo semplice programma: /* ============================================================================ Name : MorraCinese.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */
#include <stdio.h> #include <time.h> #include <locale.h> #include <ctype.h>
char morraAutomatica(); //prototipo funzione
int main(void) { char scelta; char sceltaComputer; char r; int vinte = 0; int perse = 0; int pareggiate = 0;
do{ system("clear");// comando LINUX serve per pulire in WINDOWS si utilizza cls printf("Questo e' il gioco della Morra Cinese\n"); printf("Carta = c | Forbice = f | Sasso = s\n"); printf("Inserisci la tua scelta: "); scanf("%c",&scelta); printf("\n");
sceltaComputer = morraAutomatica(); switch(sceltaComputer){ case 'c': printf("Il computer ha scelto Carta\n"); break; case 'f': printf("Il computer ha scelto Forbice\n"); break; case 's': printf("Il computer ha scelto Sasso\n"); break; }
if((scelta == 'c') && (sceltaComputer == 'c')){ printf("Pari\n"); pareggiate++; } if((scelta == 'f') && (sceltaComputer == 'f')){ printf("Pari\n"); pareggiate++; } if((scelta == 's') && (sceltaComputer == 's')){ printf("Pari\n"); pareggiate++; } if((scelta == 'c') && (sceltaComputer == 'f')){ printf("Ha vinto il computer!!\n"); perse++; } if((scelta == 'c') && (sceltaComputer == 's')){ printf("Hai vinto!!\n"); vinte++; } if((scelta == 'f') && (sceltaComputer == 'c')){ printf("Hai vinto!!\n"); vinte++; } if((scelta == 'f') && (sceltaComputer == 's')){ printf("Ha vinto il computer!!\n"); perse++; } if((scelta == 's') && (sceltaComputer == 'c')){ printf("Ha vinto il computer!!\n"); perse++; } if((scelta == 's') && (sceltaComputer == 'f')){ printf("Hai vinto!!\n"); vinte++; } printf("Partite vinte: %d\n",vinte); printf("Partite perse: %d\n",perse); printf("Partite pareggiate: %d\n",pareggiate);
printf("Vuoi giocare ancora?(s|n): ");
scanf("%c",&r);
}while(r == 's');
printf("\nCiao!!\n"); return 0; }
/* Scelta del computer */ char morraAutomatica() { char s[3]; int secondi; int x; time_t t = time(NULL); struct tm *tp = localtime(&t); strftime (s, 3, "%S",tp); secondi = atoi(s); x = secondi % 3; switch(x) {
case 0: return 'c'; break; case 1: return 'f'; break; case 2: return 's'; break;
} }
la cosa che non riesco a capire, perché non mi prende la scanf("%c",&r); Grazie |
2 U L T I M E R I S P O S T E (in alto le più recenti) |
coma |
Inserito il - 29/07/2011 : 18:17:16 Allora, innanzitutto vorrei invitarti ad utilizzare dei nopaste online quando posti del codice ma soprattutto dovresti imparare ad identarlo perchè altrimenti risulta essere assolutamente illeggibile per gli altri utenti portandoli così a trascurare completamente il tuo codice vista la difficoltà nella lettura! Allora fondamentalmente il tuo codice è corretto a parte alcune formalità del tutto non trascurabili quali, l'utilizzo di chiamate di sistema che sono strettamente vincolate al sistema operativo sul quale viene eseguito il codice e per tale ragione ti invito a dare un'occhiata in giro per vedere come implementare una funzione di pulitura dello schermo sia su UNIX system che su Windows oppure potresti tranquillamente adoperare delle specifiche del preprocessore per poter rilevare il sistema operativo sul quale viene eseguito il tuo codice e lanciare eventualmente il comando "cls" o "clear", nei diversi casi! Per quanto riguarda invece puramente la struttura del codice, non è tanto bella da vedere quella cascata di if che potrebbero essere tranquillamente sostituiti da uno switch sicuramente molto più funzionale!! Perdonami ma mi son preso la briga di modificare leggermente il tuo codice per poterlo rendere funzionante( io l'ho appena eseguito su Kubuntu 11.04 e compilato con gcc accompagnato da tante simpatiche flag come ansi, Wall e pedantic). Eccolo qui!! ;) http://ideone.com/SELas
coma |
morfeus |
Inserito il - 29/07/2011 : 10:59:37 L'eseguibile è questo: Questo e' il gioco della Morra Cinese Carta = c | Forbice = f | Sasso = s Inserisci la tua scelta: c
Il computer ha scelto Forbice Ha vinto il computer!! Partite vinte: 0 Partite perse: 1 Partite pareggiate: 0 Vuoi giocare ancora?(s|n): Ciao!!
come potete vedere non mi da la possibilità di scegliere s o n.. |
|
|