PDA

View Full Version : [C#] Problema morra cinese


Deehz
15-12-2013, 12:32
Premetto dicendo che ho pochissima esperienza in programmazione e fino ad ora ho fatto solo piccoli problemi. Comunque, stavo facendo una programma che simulava il gioco della morra cinese, e mi chiedevo come potessi fare due cicli: uno che chiede , alla fine di ogni partita, se si vuole rigiocare, e un altro che dopo aver verificato che il valore immesso dall'utente sia sbagliato, gli permetta di reinserirne il valore.
Questo è quello che ho fatto fin'ora:

namespace Morra_Cinese
{
class Program
{
static void Main(string[] args)
{

string nome_utente, scelta_utente, scelta_computer_int;
int scelta_computer;

Console.WriteLine("Inserisci il tuo nome: ");
nome_utente = Console.ReadLine();

//SCELTA UTENTE
Console.WriteLine(nome_utente + " fai la tua scelta: ");
scelta_utente = Console.ReadLine();

//VERIFICA ERRORI
if (scelta_utente != "carta" && scelta_utente != "forbice" && scelta_utente != "sasso")
{
Console.WriteLine("Hai inserito un valore non valido");

Console.ReadLine();
return;
}
else
{
//SCELTA COMPUTER
Random gen = new Random();
scelta_computer = gen.Next(1, 4);
switch (scelta_computer)
{
case 1: scelta_computer_int = Convert.ToString("sasso");
break;
case 2: scelta_computer_int = Convert.ToString("forbice");
break;
default: scelta_computer_int = Convert.ToString("carta");
break;


}
//RISULTATI
if (scelta_utente == "sasso" && scelta_computer_int == "sasso" || scelta_utente == "forbice" && scelta_computer_int == "forbice" || scelta_utente == "carta" && scelta_computer_int == "carta")
Console.WriteLine("Il computer ha giocato " + scelta_computer_int + ". Parità!");
else if (scelta_utente == "carta" && scelta_computer_int == "sasso" || scelta_utente == "sasso" && scelta_computer_int == "forbice" || scelta_utente == "forbice" && scelta_computer_int == "carta")
Console.WriteLine("Il computer ha giocato " + scelta_computer_int + ". Hai vinto!");
else if (scelta_utente == "forbici" && scelta_computer_int == "sasso" || scelta_utente == "carta" && scelta_computer_int == "forbice" || scelta_utente == "sasso" && scelta_computer_int == "carta")
Console.WriteLine("Il computer ha giocato " + scelta_computer_int + ". Hai perso!");
}

Console.ReadLine();


}
}
}


Potete darmi una mano?

sharkkk
15-12-2013, 12:43
ti consiglio prima di tutto di:

- indentare correttamente il codice visto che chiedi un aiuto

- dare un nome sensato alle variabili che usi, a ed s1 non hanno un senso logico

- inoltre ti consiglio anche di metterci qualche commento nel tuo programma, per spiegare il perche di una tua scelta nell'algoritmo

Deehz
15-12-2013, 12:57
ti consiglio prima di tutto di:

- indentare correttamente il codice visto che chiedi un aiuto

- dare un nome sensato alle variabili che usi, a ed s1 non hanno un senso logico

- inoltre ti consiglio anche di metterci qualche commento nel tuo programma, per spiegare il perche di una tua scelta nell'algoritmo
Ora ho modificato il messaggio, mi scuso per la mia imprecisione.

vendettaaaaa
15-12-2013, 13:54
Ora ho modificato il messaggio, mi scuso per la mia imprecisione.
Copia il codice dall'ide e incollalo usando i tag codice (pulsante # nella finestra quando scrivi il nuovo messaggio) così l'indentazione viene mantenuta.

Deehz
15-12-2013, 14:38
Copia il codice dall'ide e incollalo usando i tag codice (pulsante # nella finestra quando scrivi il nuovo messaggio) così l'indentazione viene mantenuta.

Modificato, mi scuso di nuovo.

vendettaaaaa
15-12-2013, 17:50
Devi ripetere una serie di istruzioni, cioè lettura dell'input e verifica, finchè non è valida la condizione di accettazione. Quindi serve un ciclo!

Deehz
15-12-2013, 18:55
Devi ripetere una serie di istruzioni, cioè lettura dell'input e verifica, finchè non è valida la condizione di accettazione. Quindi serve un ciclo!

Potresti dirmi come impostarlo?

vendettaaaaa
15-12-2013, 20:47
Potresti dirmi come impostarlo?
Finchè (while) scelta_utente non è un valore accettabile (condizione del tuo if) scrivi il messaggio che chiede di scrivere la mossa, e poi leggila da input. Ovviamente all'inizio scelta_utente è vuota e rispetta la condizione del ciclo, che quindi viene eseguito almeno una volta.