-
Notifications
You must be signed in to change notification settings - Fork 0
/
Giocata.cs
73 lines (62 loc) · 2.12 KB
/
Giocata.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
namespace morra_cinese
{
public class Giocata
{
Mossa mossaUtente;
Mossa mossaCpu;
int numero;
public Giocata(Mossa mossaUtente, Mossa mossaCpu, int numeroGiocata)
{
this.mossaUtente = mossaUtente;
this.mossaCpu = mossaCpu;
this.numero = numeroGiocata;
}
public Giocatore getVincitore()
{
//la logica è semplificata dal fatto che si guarda solo alla scelta dell'utente
//essendo 2 giocatori se uno vince l'altro perde (solo 2 casi) quindi possiamo semplificare le logiche
bool pareggio = mossaCpu.Valore == mossaUtente.Valore;
bool vinceForbice = mossaUtente.Valore == "forbice" && mossaCpu.Valore == "carta";
bool vinceCarta = mossaUtente.Valore == "carta" && mossaCpu.Valore == "sasso";
bool vinceSasso = mossaUtente.Valore == "sasso" && mossaCpu.Valore == "forbice";
if (pareggio)
{
return null;
}
else
{
if (vinceForbice || vinceCarta || vinceSasso)
{
return mossaUtente.getGiocatore();
}
else
{
return mossaCpu.getGiocatore();
}
}
}
public void AssegnaPunto(Giocatore vincitore)
{
if (vincitore == null)
{
Console.WriteLine("Parità, nessun punteggio assegnato!");
}
else
{
if (vincitore.Cpu)
Console.WriteLine("+1 punto per cpu");
else
Console.WriteLine("+1 punto per utente");
vincitore.Punteggio++;
}
}
public void Stampa()
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", numero,
mossaUtente.Valore,
mossaCpu.Valore,
mossaUtente.getGiocatore().Punteggio,
mossaCpu.getGiocatore().Punteggio);
}
}
}