-
Notifications
You must be signed in to change notification settings - Fork 0
/
CardHand.cs
83 lines (74 loc) · 1.24 KB
/
CardHand.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
74
75
76
77
78
79
80
81
82
83
using System;
namespace BlackJackApp
{
/// <summary>
///
/// </summary>
public class CardHand
{
public Card[] Cards;
public CardHand( int numCards )
{
Cards = new Card[numCards];
for ( int i=0; i<numCards; i++ )
Cards[i] = new Card();
}
//BlackJack total
public int Total
{
get
{
return CalcTotal();
}
set
{
;
}
}
//BlackJack - Dealer's face up card
public int Showing
{
get
{
return Cards[0].Value;
}
set
{
;
}
}
public bool AddCard( Card c )
{
//find next empty spot
int pos = 0;
while ( Cards[pos].Value > 0 && pos < Cards.Length )
pos++;
if ( pos >= Cards.Length )
return false;
Cards[pos].Value = c.Value;
Cards[pos].Suit = c.Suit;
return true;
}
private int CalcTotal()
{
int total = 0;
for ( int i=0; i<Cards.Length; i++ )
total += Cards[i].Value;
if ( total > 21 ) //look for an Ace to convert from 11 to 1
{
for ( int i=0; i<Cards.Length; i++ )
{
if ( Cards[i].Value == 11 )
{
Cards[i].Value = 1;
break;//only convert the first one we find
}
}
total = 0;
for ( int i=0; i<Cards.Length; i++ )
total += Cards[i].Value;
}
return total;
}
}
}