Pazaak est un jeu de cartes de l'univers Star Wars. Il est similaire à BlackJack, avec deux joueurs opposés essayant d'atteindre un total de vingt sans passer par-dessus. Chaque joueur dispose d'un "deck latéral" de quatre cartes qu'il peut utiliser pour modifier son score.
Classement
Au 17/06/2015 @ 16:40 EDT
Edit: Neptor a été disqualifié pour avoir triché. Les scores seront fixés dès que possible ...
- NEPTR: ~ 424 000
- L'enfant de Cincinnati: ~ 422 000
- Nestor: ~ 408 000
- Austin Powers: ~ 405 000
- Bastila: ~ 248 000
- Joueur stupide et prudent: ~ 107 000
- Joueur stupide et audacieux: ~ 87 000
Mock Pazaak Cup Playoffs
Sera mis à jour dès que possible.
Premier tour - Nestor vs Bastila & Austin Powers vs The Cincinnati Kid
Deuxième tour - Nestor vs Austin Powers & The Cincinnati Kid vs Bastila
Mécanique
Le gameplay se fait à tour de rôle. Le premier joueur reçoit une carte du paquet principal (maison). Le deck maison contient quarante cartes: quatre copies de une à 10. Après avoir reçu une carte, il peut choisir de terminer son tour et recevoir une nouvelle carte au tour suivant, se tenir à sa valeur actuelle ou jouer une carte de son deck latéral et rester à la nouvelle valeur. Une fois que le joueur un décide ce qu'il veut faire, le joueur deux répète le processus.
Une fois les deux joueurs partis, les mains sont évaluées. Si un joueur a bombardé (dépassé la vingtaine), l'autre joueur gagnera, à condition qu'il n'ait pas également bombardé. Si un joueur choisit de se tenir debout et que l'autre joueur a une valeur de main plus élevée, l'autre joueur gagnera. Si les deux joueurs choisissent de rester, le joueur avec la valeur de main la plus élevée l'emportera. En cas d'égalité, aucun des deux joueurs n'obtient la victoire.
Si une condition gagnante n'est pas remplie, le jeu se répétera. Si un joueur choisit de terminer son tour, il recevra une nouvelle carte et pourra faire un nouveau choix. S'ils choisissent de rester ou s'ils jouent une carte de leur deck, ils ne recevront pas de nouvelle carte et ne pourront pas choisir une nouvelle action.
Le jeu continue ainsi jusqu'à ce qu'un joueur gagne la partie. Les matchs se jouent en trois sets sur cinq.
Pourquoi "simple" Pazaak?
Dans l'univers Star Wars, Pazaak impliquait le jeu. Bien que l'inclusion d'un tel système ajouterait plus de dynamique au jeu, c'est un peu compliqué pour une première compétition KoTH.
Les "vrais" decks latéraux Pazaak ont également été fournis par les joueurs eux-mêmes, et pourraient inclure de nombreuses options de cartes différentes telles que les cartes négatives, les cartes positives ou négatives, les cartes flip, les cartes doubles et les cartes de départage. Celles-ci rendraient également le jeu plus intéressant, mais nécessiteraient une interface de jeu en place et exigeraient beaucoup plus des concurrents. Dans ce jeu Simple Pazaak, chaque joueur obtient le même deck latéral: deux copies de un à cinq, parmi lesquelles quatre sont sélectionnées au hasard.
En fonction du succès de ce jeu, je peux déployer des efforts pour développer une version avancée dans laquelle les jeux de hasard et les decks latéraux personnalisés sont possibles.
Les joueurs
Les joueurs de ce jeu seront des robots conçus par vous. Chaque bot doit étendre la classe Player, importer le package Mechanics et résider dans le package Players comme suit:
package Players;
import java.util.Collection;
import Mechanics.*;
public class DemoPlayer extends Player {
public DemoPlayer() {
name = "Your Name Here";
}
public void getResponse(int wins[], boolean isPlayerOne,
Collection<Card> yourHand, Collection<Card> opponentHand,
Collection<Card> yourSideDeck, int opponentSideDeckCount,
Action opponentAction, boolean opponentDidPlay) {
action = null;
cardToPlay = null;
}
}
À chaque tour, le contrôleur appellera la méthode getResponse pour votre bot, sauf si votre bot a précédemment indiqué qu'il voulait rester. La méthode getResponse peut définir deux propriétés: une action et une carte à jouer. L'action peut être l'une des suivantes:
- FIN: termine le tour et pioche une nouvelle carte au tour suivant.
- STAND: Reste à la valeur actuelle de la main. Ne tirera pas de carte.
- JOUER: Joue une carte du paquet latéral puis se tient.
La carte à jouer n'a évidemment d'importance que si vous définissez l'action sur PLAY. Il faut un objet Card. Si l'objet Carte que vous lui passez n'existe pas dans votre deck latéral, votre robot se tiendra à la place.
Les paramètres que votre bot reçoit à chaque tour sont:
- Un tableau contenant les gains de chaque joueur. gagne [0] est le joueur 1, gagne 1 est le joueur 2 (int [])
- Que votre robot soit ou non le premier joueur (booléen)
- Une collection des cartes qui vous ont été distribuées jusqu'à présent (Collection)
- Une collection des cartes de votre adversaire a été distribuée jusqu'à présent (Collection)
- Une collection de cartes dans votre deck latéral (Collection)
- Le nombre de cartes restantes dans le deck latéral de votre adversaire (int)
- L'action que votre adversaire a effectuée en dernier (Action) [Remarque: Ce sera FIN ou STAND, ne jouez jamais]
- Que votre adversaire ait joué ou non une carte (booléen)
Règles du bot
Vos robots ne peuvent utiliser que les informations qui leur sont transmises via la méthode getResponse. Ils ne devraient pas tenter d'interagir avec une autre classe. Ils peuvent écrire dans un seul fichier pour stocker des données entre les tours. Ils peuvent avoir toutes les méthodes, propriétés, etc. personnalisées comme vous le souhaitez. Ils devraient s'exécuter dans un délai raisonnable (si l'exécution du programme n'est pas pratiquement instantanée, je remarquerai que quelque chose ne va pas).
Si vous trouvez une sorte d'exploit dans le code, vous serez récompensé pour "vous avoir rendu". Si je remarque l'exploit en premier, je le corrigerai et vous n'obtiendrez aucune récompense.
Démos
Le contrôleur n'est pas nécessaire pour écrire un bot, car tout est déjà expliqué dans ce post. Cependant, si vous souhaitez tester, il peut être trouvé ici: https://github.com/PhantomJedi759/simplepazaak Deux bots de base sont inclus. Aucun des deux ne devrait bien résister à un adversaire "intelligent", car il ne choisit qu'entre END et STAND. Voici un exemple de ce qu'ils font:
New Game!
The standings are 0 to 0
Dumb Bold Player's Hand: []
Dumb Bold Player's new Hand: [2]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: []
Dumb Cautious Player's new Hand: [8]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2]
Dumb Bold Player's new Hand: [2, 8]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8]
Dumb Cautious Player's new Hand: [8, 3]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2, 8]
Dumb Bold Player's new Hand: [2, 8, 7]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8, 3]
Dumb Cautious Player's new Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player's Hand: [2, 8, 7]
Dumb Bold Player's new Hand: [2, 8, 7, 6]
Dumb Bold Player has chosen to STAND
Dumb Cautious Player's Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player has bombed out! Dumb Cautious Player wins!
Parce que ces robots dépendent uniquement de la chance du tirage au sort, leurs taux de victoires / défaites peuvent varier considérablement. Il sera intéressant de voir comment les compétences peuvent lutter contre la chance du match.
Cela devrait être tout ce dont vous avez besoin! Allez construire des bots!
Clarification des règles
Le deck principal est de quarante cartes: 4x1-10 Il est remélangé au début de chaque main.
Le deck latéral d'un joueur a quatre cartes, sélectionnées au hasard parmi 2x1-5. Le pont latéral persiste entre les mains.
Les mains sont jouées dans les jeux pour le meilleur trois sur cinq. Les bots sont marqués en fonction du nombre total de parties gagnées, puis du nombre total de mains.
L'appariement est géré de telle sorte que chaque joueur devra jouer 100 000 matchs contre tous les autres joueurs.
Dans la Coupe Pazaak, les rondes de style élimination réduiront qui est vraiment le meilleur bot Pazaak. Chaque paire de bots jouera pour les quatre meilleurs ensembles de 100 000 matchs sur quatre. Celui qui gagne quatre montera l'échelle au prochain adversaire, et les perdants resteront en bas pour se battre pour les classements séquentiels. Ce style de jeu est le plus juste, car les bots ne peuvent pas "gagner-ferme" certains adversaires pour compenser le manque de capacité contre d'autres. La Coupe Pazaak aura lieu le vendredi 3 juillet, à condition qu'il y ait au moins huit robots soumis. Le gagnant recevra le statut de réponse correcte et un bonus de départ dans Advanced Pazaak, qui, espérons-le, sera prêt presque au même moment que la Coupe Pazaak se déroule.
la source
Réponses:
L'enfant de Cincinnati
Essayez de vous assurer que nous tirons une autre carte si nous savons que nous perdons, sinon regardez notre deck latéral et les scores globaux pour décider quoi faire.
Mis à jour pour mieux gérer les situations où l'adversaire a déjà fini de jouer. Dans mes propres tests, cela semble être à nouveau le meilleur candidat, du moins pour l'instant.
la source
Austin Powers
Austin Powers, comme vous pourriez le supposer, aime vivre dangereusement. Sauf si quelqu'un a éclaté, ou s'il peut garantir une victoire, il frappera toujours s'il est derrière, ou a plus de 20% de chances de ne pas éclater.
la source
Bastila
Bastila joue de façon conservatrice. Pour elle, un 17 est aussi bon qu'un 20, et il vaut mieux rester court que bombarder.
la source
Nestor
Nestor adore en obtenir 20 en utilisant son deck latéral, mais lorsque cela échoue, il calcule son gain attendu en choisissant stand ou end, en supposant que l'adversaire est sensible.
la source
Glaucus
Glaucus fait 100 simulations avec une liste de cartes mélangées et choisit sa meilleure option en fonction de ces simulations.
la source
HK-47
Voir! Un bot de ma propre conception. HK-47 essaie de tuer tous les sacs de viande qu'il peut, bien qu'il soit un peu content de ses cartes de jeu.
Jusqu'à présent, il peut battre tout le monde sauf The Cincinnati Kid.
la source
NEPTR
(Robot de lancer de tarte sans fin)
Neptor est désolé, Neptor a triché. Neptor allait vraiment se nettoyer, il voulait juste s'amuser d'abord :(
la source
PazaakGameMain.HAND_GOAL = ingredients; //Trololo, you caught me, sorry!
fonctionne réellement.