Car Trumps is a Windows Phone 8 example game, based on a well-known children’s
card game. Basically the aim of the game is to select one property from a card
in your hand (e.g., the car’s top speed) which you think can beat the opponent’s
selection. This is a two player game, and requires two phones with NFC support.
The game starts when the players touch the phones together. A random hand is
given to both players from the deck. Both players select a card from their
decks. Then the other one of the players has to choose a property to compare.
The comparison is executed by touching the devices together. The winner gets the
opponent’s losing card. The game ends when either player runs out of cards.
Nfc/NfcManager.cs: Wrapper for the ProximityDevice. Handles submission and
subscription of NFC messages. The class contains two methods used by
MainPage and GamePage;
DealCards(): Sends a DealCards message, which starts a new game.
The message contains ids of opponent’s cards, and a random id, which
is used to decide which player’s randomised cards are used.
ShowCard(): Sends a ShowCard message. The message contains selected
card id and property.
Nfc/NfcInitiationMessage.cs: This message type is used in the custom
initiation protocol to decide the master/slave relationship between the two
devices before the game is started.
Nfc/NfcMessage.cs: Container for a NFC message, handles (de)serialization.
In practice the binary message sent via NFC is a XML document.
Model/CardModel.cs: Model for the pages. Contains also simple game logic;
shuffling of the cards, winner decision, etc.
MainPage.xaml.cs: The game starts from and ends at the main page. Mainpage
handles the DealCards message, which starts a new game.
GamePage.xaml.cs: The in-game page. Handles the ShowCard message. The lower
part of the page consists of a Panorama holding the card properties. The top
part is reserved for the car’s image.
Required capabilities:
ID_CAP_NETWORKING
ID_CAP_PROXIMITY
Known issues
Wrong card may be selected, if the touch between the phones is too weak.
Car Trumps
Car Trumps is a Windows Phone 8 example game, based on a well-known children’s card game. Basically the aim of the game is to select one property from a card in your hand (e.g., the car’s top speed) which you think can beat the opponent’s selection. This is a two player game, and requires two phones with NFC support.
The game starts when the players touch the phones together. A random hand is given to both players from the deck. Both players select a card from their decks. Then the other one of the players has to choose a property to compare. The comparison is executed by touching the devices together. The winner gets the opponent’s losing card. The game ends when either player runs out of cards.
This example application is hosted in GitHub: https://github.com/Microsoft/car-trumps
For more information on implementation and porting, visit Lumia Developer’s Library: http://developer.nokia.com/Resources/Library/Lumia/#!code-examples/car-trumps.html
This project is compatible with Windows Phone 8 and has been developed with Microsoft Visual Studio Express 2012 for Windows Phone.
To build the application you need to have Windows 8 and Windows Phone SDK 8.0 or later installed.
Using the Windows Phone 8 SDK:
CarTrumps.slnPlease see the official documentation for deploying and testing applications on Windows Phone devices: http://msdn.microsoft.com/en-us/library/gg588378%28v=vs.92%29.aspx
Important files and classes:
Nfc/NfcManager.cs: Wrapper for the ProximityDevice. Handles submission and subscription of NFC messages. The class contains two methods used byMainPageandGamePage;DealCards(): Sends a DealCards message, which starts a new game. The message contains ids of opponent’s cards, and a random id, which is used to decide which player’s randomised cards are used.ShowCard(): Sends a ShowCard message. The message contains selected card id and property.Nfc/NfcInitiationMessage.cs: This message type is used in the custom initiation protocol to decide the master/slave relationship between the two devices before the game is started.Nfc/NfcMessage.cs: Container for a NFC message, handles (de)serialization. In practice the binary message sent via NFC is a XML document.Model/CardModel.cs: Model for the pages. Contains also simple game logic; shuffling of the cards, winner decision, etc.MainPage.xaml.cs: The game starts from and ends at the main page.Mainpagehandles theDealCardsmessage, which starts a new game.GamePage.xaml.cs: The in-game page. Handles the ShowCard message. The lower part of the page consists of a Panorama holding the card properties. The top part is reserved for the car’s image.Required capabilities:
ID_CAP_NETWORKINGID_CAP_PROXIMITYSee the license text file delivered with this project. The license file is also available online at https://github.com/Microsoft/car-trumps/blob/master/Licence.txt
All the car images were taken from Wikipedia. Here is a complete list of the used images (public domain):
GNU Free Documentation License: http://en.wikipedia.org/wiki/en:GNU_Free_Documentation_License