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:
- Open the SLN file: File > Open Project, select the file
- Select the target 'Device'.
- Press F5 to build the project and run it on the device.
Please 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 by
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.
DealCardsmessage, 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.
3. Known issues
Wrong card may be selected, if the touch between the phones is too weak.
See 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
5. Version history
- Version 1.0: The initial release.