diff --git a/Resources/fonts/Chunkfive.otf b/Resources/fonts/Chunkfive.otf
new file mode 100644
index 000000000..c2ba1d969
Binary files /dev/null and b/Resources/fonts/Chunkfive.otf differ
diff --git a/src/GameLogic/Deck.cs b/src/GameLogic/Deck.cs
index 4b30d8f89..e74fcceba 100644
--- a/src/GameLogic/Deck.cs
+++ b/src/GameLogic/Deck.cs
@@ -14,13 +14,14 @@ public class Deck
{
private readonly Card[] _cards = new Card[52];
private int _topCard;
-
+ private int num1;
///
/// Creates a new Deck with 52 Cards. The first card
/// will be the top of the Deck.
///
public Deck ()
{
+ num1 = 1000;
int i = 0;
for (Suit s = Suit.CLUB; s <= Suit.SPADE; s++)
diff --git a/src/GameLogic/Snap.cs b/src/GameLogic/Snap.cs
index 42894a1a7..b6e1f8f99 100644
--- a/src/GameLogic/Snap.cs
+++ b/src/GameLogic/Snap.cs
@@ -37,6 +37,7 @@ public class Snap
public Snap ()
{
_deck = new Deck ();
+ _gameTimer = SwinGame.CreateTimer();
}
///
@@ -92,6 +93,7 @@ public void Start()
_deck.Shuffle (); // Return the cards and shuffle
FlipNextCard (); // Flip the first card...
+ _gameTimer.Start();
}
}
@@ -111,8 +113,13 @@ public void FlipNextCard()
///
public void Update()
{
- //TODO: implement update to automatically slip cards!
- }
+ //TODO: implement update to automatically slip cards!
+ if (_gameTimer.Ticks > _flipTime)
+ {
+ _gameTimer.Reset();
+ FlipNextCard();
+ }
+ }
///
/// Gets the player's score.
@@ -140,9 +147,15 @@ public void PlayerHit (int player)
_score[player]++;
//TODO: consider playing a sound here...
}
+ else if (player >= 0 && player < _score.Length)
+ {
+ _score[player]--;
+ }
+
// stop the game...
_started = false;
+ _gameTimer.Stop();
}
#region Snap Game Unit Tests
diff --git a/src/SnapGame.cs b/src/SnapGame.cs
index ec78e9072..d79dd02b5 100644
--- a/src/SnapGame.cs
+++ b/src/SnapGame.cs
@@ -11,6 +11,9 @@ public static void LoadResources()
Bitmap cards;
cards = SwinGame.LoadBitmapNamed ("Cards", "Cards.png");
SwinGame.BitmapSetCellDetails (cards, 82, 110, 13, 5, 53); // set the cells in the bitmap to match the cards
+
+ SwinGame.LoadFontNamed("GameFont", "Chuckfive.otf", 12);
+
}
///
@@ -24,9 +27,25 @@ private static void HandleUserInput(Snap myGame)
if (SwinGame.KeyTyped (KeyCode.vk_SPACE))
{
- myGame.FlipNextCard ();
+ myGame.Start();
+ }
+ if (myGame.IsStarted)
+ {
+ if (SwinGame.KeyTyped(KeyCode.vk_LSHIFT) &&
+ SwinGame.KeyTyped(KeyCode.vk_RSHIFT))
+ {
+ //TODO: add sound effects
+ }
+ else if (SwinGame.KeyTyped(KeyCode.vk_LSHIFT))
+ {
+ myGame.PlayerHit(0);
+ }
+ else if (SwinGame.KeyTyped(KeyCode.vk_RSHIFT))
+ {
+ myGame.PlayerHit(1);
+ }
+ }
}
- }
///
/// Draws the game to the Window.
@@ -40,9 +59,9 @@ private static void DrawGame(Snap myGame)
Card top = myGame.TopCard;
if (top != null)
{
- SwinGame.DrawText ("Top Card is " + top.ToString (), Color.RoyalBlue, 0, 20);
- SwinGame.DrawText ("Player 1 score: " + myGame.Score(0), Color.RoyalBlue, 0, 30);
- SwinGame.DrawText ("Player 2 score: " + myGame.Score(1), Color.RoyalBlue, 0, 40);
+ SwinGame.DrawText ("Top Card is " + top.ToString (), Color.RoyalBlue, "GameFont", 0, 20);
+ SwinGame.DrawText ("Player 1 score: " + myGame.Score(0), Color.RoyalBlue, "GameFont", 0, 30);
+ SwinGame.DrawText ("Player 2 score: " + myGame.Score(1), Color.RoyalBlue, "GameFont", 0, 40);
SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), top.CardIndex, 350, 50);
}
else
@@ -64,6 +83,7 @@ private static void DrawGame(Snap myGame)
private static void UpdateGame(Snap myGame)
{
myGame.Update(); // just ask the game to do this...
+
}
public static void Main()