From d7e45cc2b02101ff35967fa9a561d75cc0b8245d Mon Sep 17 00:00:00 2001 From: jannatulferdousi793 Date: Tue, 23 Jun 2026 12:27:18 +0600 Subject: [PATCH 1/4] add new text font in the game --- Resources/fonts/ChunkFive-Regular.otf | Bin 0 -> 43460 bytes src/SnapGame.cs | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 Resources/fonts/ChunkFive-Regular.otf diff --git a/Resources/fonts/ChunkFive-Regular.otf b/Resources/fonts/ChunkFive-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..7711f20f966b8bc39c2b9615a0ee23beb1f5120d GIT binary patch literal 43460 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 literal 0 HcmV?d00001 diff --git a/src/SnapGame.cs b/src/SnapGame.cs index ec78e9072..b1f55b0f8 100644 --- a/src/SnapGame.cs +++ b/src/SnapGame.cs @@ -10,7 +10,8 @@ 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.BitmapSetCellDetails (cards, 82, 110, 13, 5, 53); + SwinGame.LoadFontNamed ("GameFont", " ChunkFive-Regular.otf", 12); // set the cells in the bitmap to match the cards } /// @@ -40,9 +41,17 @@ 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 From 118655a54789bcaddfbaf339b5b9841c43db2871 Mon Sep 17 00:00:00 2001 From: AbdurRobMridha Date: Tue, 23 Jun 2026 20:45:23 +0600 Subject: [PATCH 2/4] add game timer logic to Snap and have the game started when the spacebar is pressed --- src/GameLogic/Snap.cs | 11 +++++++++++ src/SnapGame.cs | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/GameLogic/Snap.cs b/src/GameLogic/Snap.cs index 42894a1a7..a12424952 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(); } } @@ -112,6 +114,14 @@ public void FlipNextCard() public void Update() { //TODO: implement update to automatically slip cards! + if (_gameTimer.Ticks > _flipTime) + { + _gameTimer.Reset (); + FlipNextCard (); + } + + + } /// @@ -143,6 +153,7 @@ public void PlayerHit (int 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..25764ae64 100644 --- a/src/SnapGame.cs +++ b/src/SnapGame.cs @@ -24,7 +24,7 @@ private static void HandleUserInput(Snap myGame) if (SwinGame.KeyTyped (KeyCode.vk_SPACE)) { - myGame.FlipNextCard (); + myGame.Start (); } } From fd9e5e3206739f07c28da31b2a5ac948f77516a2 Mon Sep 17 00:00:00 2001 From: Tamjidul-Islam Date: Wed, 24 Jun 2026 19:58:47 +0600 Subject: [PATCH 3/4] add player hit with left and right shift, with score decrement for miss hits --- src/GameLogic/Snap.cs | 4 ++++ src/SnapGame.cs | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/GameLogic/Snap.cs b/src/GameLogic/Snap.cs index 42894a1a7..64916a726 100644 --- a/src/GameLogic/Snap.cs +++ b/src/GameLogic/Snap.cs @@ -140,6 +140,10 @@ 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; diff --git a/src/SnapGame.cs b/src/SnapGame.cs index ec78e9072..0c7843072 100644 --- a/src/SnapGame.cs +++ b/src/SnapGame.cs @@ -26,6 +26,22 @@ private static void HandleUserInput(Snap myGame) { myGame.FlipNextCard (); } + 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); + } + } } /// From bb32b286d4e11468f04537b521b2d88098d2d6ed Mon Sep 17 00:00:00 2001 From: Jannatulferdousi793 Date: Thu, 25 Jun 2026 16:47:44 +0600 Subject: [PATCH 4/4] fix position of the cards to be over background --- src/SnapGame.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/SnapGame.cs b/src/SnapGame.cs index b1f55b0f8..f6badbf21 100644 --- a/src/SnapGame.cs +++ b/src/SnapGame.cs @@ -42,6 +42,9 @@ private static void DrawGame(Snap myGame) if (top != null) { SwinGame.DrawText ("Top Card is " + top.ToString (), + SwinGame.DrawCell (SwinGame.BitmapNamed + + ("Cards"), top.CardIndex, 521, 153); Color.RoyalBlue, "GameFont", 0, 20); @@ -61,7 +64,7 @@ private static void DrawGame(Snap myGame) // Draw the back of the cards... to represent the deck SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), 52, 160, 50); - + SwinGame.DrawCell (SwinGame.BitmapNamed ("Cards"), 52, 155, 153); //Draw onto the screen SwinGame.RefreshScreen(60); }