Skip to content
Binary file added Resources/fonts/ChunkFive-Regular.otf
Binary file not shown.
Binary file modified Resources/images/Cards.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion src/GameLogic/Snap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public class Snap
public Snap ()
{
_deck = new Deck ();
_gameTimer = SwinGame.CreateTimer ();
}

/// <summary>
Expand Down Expand Up @@ -91,7 +92,8 @@ public void Start()
_started = true;
_deck.Shuffle (); // Return the cards and shuffle

FlipNextCard (); // Flip the first card...
FlipNextCard ();// Flip the first card...
_gameTimer.Start();
}
}

Expand All @@ -111,6 +113,11 @@ public void FlipNextCard()
/// </summary>
public void Update()
{
if (_gameTimer.Ticks > _flipTime)
{
_gameTimer.Reset ();
FlipNextCard ();
}
//TODO: implement update to automatically slip cards!
}

Expand Down Expand Up @@ -140,9 +147,14 @@ 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
Expand Down
32 changes: 27 additions & 5 deletions src/SnapGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ 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, 167, 250, 13, 5, 53); // set the cells in the bitmap to match the cards
}

/// <summary>
Expand All @@ -24,8 +24,24 @@ 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);
}
}
}

/// <summary>
Expand All @@ -40,9 +56,15 @@ 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
Expand Down