2009-07-29 6 views
0

En ce moment j'écris un programme qui permettra de déterminer la valeur d'une main de cartes. cinq au total. J'ai un objet cardHand. J'ai l'intention d'écrire un objet qui compare deux objets ensemble afin de déterminer quelle main a une valeur plus élevée. les deux objets qui seront comparés sont des objets qui contiennent les valeurs de main possibles (une paire, trois d'une sorte ... etc).question de style OOP

est-ce que stackoverflow considère cela comme une méthode d'ajustement de POO? PS: Je sais que l'algorithme circule sur Internet mais j'essaye de le faire par moi-même d'abord pour l'XP.

Répondre

2

Qu'est-ce que vous voulez faire est quelque chose comme ceci:

  • Créer une classe de carte. Ajoutez un operator< à cette classe afin de pouvoir déterminer le tri des cartes individuelles.
  • Créez une classe de collection de cartes (main) qui stocke une collection de ces cartes. Définissez également un opérateur < pour cette classe, afin de déterminer le tri des mains.

Si vous stockez vos cartes dans un std::multiset dans la main, vos cartes se regrouperont automatiquement. En d'autres termes, si vous insérez 2, 7, 3, 4, 3, ils seront dans l'ordre suivant: 2, 3, 3, 4, 7. Cela vous aidera à déterminer des choses comme des paires et des tuplets.

+0

+1 façon d'y aller. Utilisez la surcharge de l'opérateur lorsque cela est nécessaire pour permettre une «manipulation standard» de vos objets. Ou en d'autres termes: faites que vos objets soient aussi indiscernables que possible des objets basiques. De cette façon se trouve le bonheur de la manipulation et de la compréhension communes. –

0

Est-ce que chaque objet manuel ne devrait pas avoir une valeur innée? Vous pourriez alors avoir un autre objet (le donneur?) Comparer les valeurs de chaque main. Le donneur peut également être utilisé pour instancier chaque objet de main.

Là encore, peut-être que je prends un peu trop loin l'approche de la modélisation du domaine du problème. ;-)

0

définir les règles qui déterminent quelle main est la plus élevée.

règle1> règle2> Règle3 ...

comparer le plus grand.

décidez si la main correspond à la règle1 plutôt qu'à la main1.

décidez si la main correspond à la règle 2 plutôt qu'à la main2.

..

si elles sont dans la même règle, faire un algorithme comme dans toutes les règles.

il est juste une idée ... vous pouvez penser à ce sujet ..

+0

Je pense que je pensais que c'est poker? – ufukgun