Jeu de cartes italiennes en visual c++

Soyez le premier à donner votre avis sur cette source.

Vue 9 714 fois - Téléchargée 871 fois

Description

This article present a simple game card, programmed with MFC, for the graphics and the user feedback, and at lower level I used the STL of C++ to manage the classes for the deck, the players, the game. The same low level structure, could be reused for a different future game (Poker? Bridge...is too difficult I guess!) I used a dialog based application in the MFC wizard.

Description

The italian game card "Sette e mezzo" or "Seven and half" is a tipical Christmas game. You have to bet your "virtual" dollars and then take a card from the deck until you feel that your points are enough and under 7 and half that is the maximum allowed point. Then is the Pc's turn to play and it will take cards until it will arrive over your points or until it will loose, because over 7 and half!

Source / Exemple :


The whole code and project is in the zip file!
Here there is only a description.

Classes
I used 2 classes for the MFC dialog boxes and classes for the lower level C++/STL engine. CDeck for the deck of cards, CGameCard for the 40 cards, CPlayer for the 2 players you and your Pc and GameNapoletano for the whole game. 
Some code
I used a function to load .jpg and .bmp from files and to render them to the DC: // This function loads a file into an IStream.
void myUtilities::LoadPictureFile(LPCTSTR szFile, LPPICTURE &gpPic)

And this function uses the OLE technology To map cards picture with the key code that identify the card I used the std::map. For each card I built a key code using its value and its family (there are 40 cards, 10 cards and 4 families) typedef std::map<int, LPPICTURE, std::less > PicCardType;

So in the OnPaint function of the main dialog box I show all the current cards in the game, using a std::vector, where I pushed the pointer to the picture card: std::vector<LPPICTURE>

Before that, every random card, taken from the deck, has to be found in the map already built, by its key code.    // take the idCard from the current card
   int idCard = card.GetIdCard();
   // with the idCard we can find the iterator to the picture by the map
   m_itMyCard = m_CardMap.find(idCard);

When the 40 cards are all gone, I have to reshuffle the deck, but I have not to use the card still on the table! So I have to use another deck where I copied all the cards used and reshuffle that one... 
Conclusion
I wrote this code for hobby. Next step will be a poker card game, hopefully reusing the same structure and inheriting from the same classes... Feel free to suggest me your code, and your opinion is always appreciated. Tell me where I have to change, where the code really sucks and what you would do instead. 

Thank you

Conclusion :


Mauro (Maurus) Mindoli
email:
mindolimauro@rocketmail.com

Hobbyes: Soccer, Chess, Programming, Progressive Rock, Video Games

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 mars 2009

c'est trop fort comme application fait avec mfc wizard application. comment tu as fait pour arriver à écrire ce code. J'aimerai arriver des applications comme cele ci . est ce que tu peux me donner un help exemple un cours ou tutoriel.merci
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007

bien bien, j'essayerais d'apprendre pour faire pareil ;-)
Messages postés
1
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
1 mai 2004

Comment faire pour jouer car il n'y a pas de fichier exe et comme moi et l'informatique ca fait 2 lol
Messages postés
2
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
11 juillet 2003

Je ne suis pas d'accord avec c2lamerd. On peut d'ailleurs supposer qu'avec un pseudo pareil, il ne fasse que critiquer.
Le programme est assez bien fait à part peut-être le pointeur qui n'est pas très pratique, même si la modification du pointeur est intéressante.

bon courage pour le français
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
27 octobre 2005

c'est a chier
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.