Pazaak è un gioco di carte dell'universo di Star Wars. È simile al Black Jack, con due giocatori messi l'uno contro l'altro cercando di raggiungere un totale di venti senza andare oltre. Ogni giocatore ha un "mazzo laterale" di quattro carte proprie che può usare per modificare il proprio punteggio.
Classifica
A partire dal 17/06/2015 alle 16:40 EDT
Modifica: Neptor è stato squalificato per frode. I punteggi verranno risolti il più presto possibile ...
- NEPTR: ~ 424.000
- The Cincinnati Kid: ~ 422.000
- Nestor: ~ 408.000
- Poteri di Austin: ~ 405.000
- Bastila: ~ 248.000
- Stupido giocatore cauto: ~ 107.000
- Giocatore stupido: ~ 87.000
Mock Pazaak Playoffs Cup
Sarà aggiornato al più presto.
Round One - Nestor vs Bastila & Austin Powers vs The Cincinnati Kid
Secondo round - Nestor vs Austin Powers e The Cincinnati Kid vs Bastila
Meccanica
Il gioco si svolge a turno. Al giocatore 1 viene distribuita una carta dal mazzo principale (casa). Il mazzo casa contiene quaranta carte: quattro copie da una a 10. Dopo aver ricevuto una carta, possono scegliere di terminare il loro turno e ricevere una nuova carta il turno successivo, stare al loro valore attuale o giocare una carta dal loro mazzo laterale e stare al nuovo valore. Dopo che il giocatore uno decide cosa vogliono fare, il giocatore due ripete il processo.
Una volta che entrambi i giocatori sono andati, le mani vengono valutate. Se un giocatore è bombardato (ha superato i venti), l'altro giocatore vincerà, a condizione che non abbia bombardato. Se un giocatore ha scelto di stare in piedi e l'altro giocatore ha un valore della mano più alto, l'altro giocatore vincerà. Se entrambi i giocatori scelgono di stare in piedi, vincerà il giocatore con il valore della mano più alto. In caso di pareggio, nessuno dei due giocatori ottiene la vittoria.
A condizione che non sia soddisfatta una condizione vincente, il gioco si ripeterà. Se un giocatore ha scelto di terminare il proprio turno, riceverà una nuova carta e potrà fare una nuova scelta. Se hanno scelto di stare in piedi o se hanno giocato una carta dal loro mazzo laterale, non riceveranno una nuova carta e non potranno scegliere una nuova azione.
Il gioco continua così fino a quando un giocatore vince la partita. Le partite si svolgono nelle migliori tre serie su cinque.
Perché "Simple" Pazaak?
Nell'universo di Star Wars, Pazaak implicava il gioco d'azzardo. Mentre l'inclusione di un tale sistema aggiungerebbe più di una dinamica al gioco, è un po 'complicato per una competizione KoTH per la prima volta.
I mazzi laterali "reali" di Pazaak erano forniti anche dai giocatori stessi e potevano includere molte opzioni di carte diverse come carte negative, carte positive o negative, carte a fogli mobili, carte doppie e carte tiebreaker. Ciò renderebbe anche il gioco più interessante, ma richiederebbe un'interfaccia di gioco in atto e richiederebbe molto di più dai concorrenti. In questo gioco di Simple Pazaak, ogni giocatore ottiene lo stesso mazzo laterale: due copie da una a cinque, da cui quattro sono scelte a caso.
A seconda del successo di questo gioco, potrei sforzarmi di sviluppare una versione avanzata in cui sono possibili mazzi laterali di gioco e personalizzati.
I giocatori
I giocatori di questo gioco saranno robot progettati da te. Ogni bot deve estendere la classe Player, importare il pacchetto Mechanics e risiedere nel pacchetto player in questo modo:
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;
}
}
Ad ogni round, il controller chiamerà il metodo getResponse per il tuo bot, a meno che il tuo bot non abbia precedentemente indicato che voleva rimanere in piedi. Il metodo getResponse può impostare due proprietà: un'azione e una carta per giocare. L'azione può essere una delle seguenti:
- FINE: termina il turno e pesca una nuova carta il turno successivo.
- STAND: Rimane al valore attuale della mano. Non pescerà una carta.
- GIOCA: gioca una carta dal mazzo laterale e poi resta in piedi.
La carta da giocare è ovviamente importante solo se si imposta l'azione su GIOCO. Prende un oggetto Card. Se l'oggetto Carta che passi ad esso non esiste nel tuo mazzo laterale, il tuo robot rimarrà invece STAND.
I parametri che il tuo bot riceve ad ogni turno sono:
- Un array contenente le vincite di ciascun giocatore. vince [0] è il giocatore 1, vince 1 è il giocatore 2 (int [])
- Indipendentemente dal fatto che il tuo bot sia il giocatore uno (booleano)
- Una raccolta delle carte che ti sono state distribuite finora (Raccolta)
- Finora è stata distribuita una raccolta di carte del tuo avversario (Raccolta)
- Una raccolta di carte nel tuo mazzo laterale (Collezione)
- Il numero di carte rimanenti nel mazzo laterale del tuo avversario (int)
- L'ultima azione compiuta dal tuo avversario (Azione) [Nota: questa sarà END o STAND, mai GIOCARE]
- Indipendentemente dal fatto che il tuo avversario abbia giocato una carta (booleano)
Regole del bot
I tuoi robot possono utilizzare solo le informazioni fornite loro tramite il metodo getResponse. Non dovrebbero tentare di interagire con nessun'altra classe. Possono scrivere su un singolo file per memorizzare i dati tra i round. Possono avere qualsiasi metodo personalizzato, proprietà, ecc. Come desiderato. Dovrebbero funzionare in un ragionevole lasso di tempo (se l'esecuzione del programma non è praticamente istantanea, noterò che qualcosa non va).
Se trovi un qualche tipo di exploit nel codice, sarai ricompensato per "esserti trasformato". Se noto prima l'exploit, lo riparerò e non riceverai alcuna ricompensa.
Demos
Il controller non è necessario per scrivere un bot, poiché tutto è già spiegato in questo post. Tuttavia, se si desidera eseguire il test, è possibile trovarlo qui: https://github.com/PhantomJedi759/simplepazaak Sono inclusi due robot di base. Nessuno dei due dovrebbe resistere bene contro un avversario "intelligente", poiché scelgono solo tra END e STAND. Ecco un esempio di ciò che fanno:
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!
Poiché questi robot si basano esclusivamente sulla fortuna del sorteggio, i loro rapporti di sconfitta possono variare drasticamente. Sarà interessante vedere come l'abilità può combattere la fortuna del gioco.
Questo dovrebbe essere tutto ciò di cui hai bisogno! Vai a costruire alcuni robot!
Chiarimento alle regole
Il mazzo principale è composto da quaranta carte: 4x1-10 Viene rimescolato all'inizio di ogni mano.
Il mazzo laterale di un giocatore ha quattro carte, scelte casualmente su 2x1-5. Il ponte laterale persiste tra le mani.
Le mani sono giocate nei giochi per i migliori tre su cinque. I robot vengono segnati in base al numero totale di partite vinte, quindi dal numero totale di mani.
L'abbinamento è gestito in modo tale che ogni giocatore dovrà giocare 100.000 partite contro ogni altro giocatore.
Nella Coppa Pazaak, i round in stile eliminazione restringeranno chi è veramente il miglior bot Pazaak. Ogni accoppiamento di robot giocherà per i migliori set di 100.000 partite quattro su sette. Chi vince quattro salirà la scala verso il prossimo avversario, e i perdenti rimarranno a combattere per le classifiche sequenziali. Questo stile di gioco è il più giusto, in quanto i robot non possono "coltivare" alcuni avversari per compensare la mancanza di abilità contro gli altri. La Coppa Pazaak si terrà venerdì 3 luglio, a condizione che siano presenti almeno otto robot inviati. Il vincitore riceverà lo stato di risposta corretta e un bonus iniziale in Advanced Pazaak, che si spera sia pronto quasi nello stesso momento in cui si tiene la Coppa Pazaak.