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()