Analizzare una versione modificata del gioco di carte "Guerra"


13

Un gioco semplice di solito giocato da bambini, il gioco di guerra è giocato da due persone usando un mazzo standard di 52 carte da gioco. Inizialmente, il mazzo viene mischiato e tutte le carte vengono distribuite due ai due giocatori, in modo che ognuna abbia 26 carte casuali in un ordine casuale. Supponiamo che i giocatori possano esaminare (ma non cambiare) entrambi i mazzi, in modo che ogni giocatore conosca le carte e gli ordini delle carte in entrambi i mazzi. Questo è in genere una nota fatta in pratica, ma non cambierebbe nulla su come si gioca il gioco e aiuta a mantenere questa versione della domanda completamente deterministica.

Quindi, i giocatori rivelano la maggior parte delle carte dai rispettivi mazzi. Il giocatore che rivela la carta più grande (secondo il solito ordine: 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace) vince il round, piazzando prima la sua carta (il carta alta) nella parte inferiore del suo mazzo, e poi la carta del suo avversario (la carta bassa) nella parte inferiore del mazzo (in genere, l'ordine di questo non viene applicato, ma per mantenere deterministica la prima versione di questa domanda, tale verrà eseguito un ordine).

In caso di pareggio, ogni giocatore rivela quattro carte aggiuntive dalla cima del proprio mazzo. Se la quarta carta mostrata da un giocatore è superiore alla quarta carta mostrata da un altro giocatore, il giocatore con la quarta carta più alta vince tutte le carte giocate durante il tie-breaker, nel qual caso le carte del vincitore vengono posizionate per prime nella parte inferiore del mazzo del vincitore (nell'ordine di primo ingresso, primo di uscita; in altre parole, le carte più vecchie sono piazzate per prime in fondo), seguite dalle carte del perdente (nello stesso ordine).

In caso di vincoli successivi, il processo viene ripetuto fino a quando non viene determinato un vincitore del pareggio. Se un giocatore esaurisce le carte e non può continuare a rompere il pareggio, il giocatore che ha ancora le carte viene dichiarato vincitore. Se entrambi i giocatori esauriscono le carte per giocare contemporaneamente, il gioco viene dichiarato pareggio.

I round vengono giocati fino a quando un giocatore esaurisce le carte (cioè non ha più carte nel suo mazzo), a quel punto il giocatore che ha ancora carte viene dichiarato vincitore.

Dato che il gioco è stato descritto finora, né l'abilità né la fortuna sono coinvolte nella determinazione del risultato. Poiché esiste un numero finito di permutazioni di 52 carte, esiste un numero finito di modi in cui i mazzi possono essere inizialmente distribuiti, e ne consegue che (poiché l'unica informazione di stato nel gioco è lo stato attuale dei mazzi di entrambi i giocatori ) l'esito di ciascuna configurazione di gioco può essere deciso a priori. Certamente, è forse per vincere il gioco della guerra, e allo stesso modo, perderlo. Lasciamo aperta anche la possibilità che un gioco di guerra possa tradursi in un pareggio o in un ciclo infinito; per la versione completamente deterministica sopra descritta, tale potrebbe o meno essere il caso.

Diverse varianti del gioco che tentano di renderlo più interessante (e no, non tutte implicano il trasformarlo in un gioco a bere). Un modo in cui ho pensato di rendere il gioco più interessante è consentire ai giocatori di dichiarare "briscole" automatiche in determinati round. Ad ogni round, entrambi i giocatori (o entrambi) possono dichiarare "briscola". Se un giocatore dichiara "briscola", quel giocatore vince il round indipendentemente dalle carte giocate. Se entrambi i giocatori dichiarano "briscola", il round viene trattato come un pareggio e il gioco continua di conseguenza.

Si può immaginare una varietà di regole che limitano la capacità dei giocatori di briscola (la briscola illimitata si tradurrebbe sempre in una partita di pareggio, poiché i giocatori trionferanno ad ogni turno). Propongo due versioni (appena al di sopra della mia testa; probabilmente sono possibili versioni più interessanti lungo queste linee) di War basate su questa idea ma usando diversi meccanismi di limitazione di Trump:

  1. Frequenza-Guerra: i giocatori possono vincere solo se non hanno battuto nei precedenti round .K
  2. Revenge-War: i giocatori possono avere la meglio solo se non hanno vinto un round nei precedenti round.K

Ora per le domande, che si applicano a ciascuna delle versioni sopra descritte:

  1. Esiste una strategia tale che, per alcune serie di possibili configurazioni iniziali di gioco, vince sempre il giocatore che la utilizza (strategia fortemente vincente)? In tal caso, qual è questa strategia? In caso contrario, perché no?
  2. Esiste una strategia tale che, per alcune serie di possibili configurazioni di gioco iniziali, il giocatore che la utilizza può sempre vincere o forzare un pareggio (strategia vincente)? In tal caso, qual è questa strategia? In caso contrario, perché no?
  3. SS'

Per essere chiari, sto pensando a una "strategia" come a un algoritmo fisso che determina in quali round il giocatore che usa la strategia dovrebbe vincere. Ad esempio, l'algoritmo "briscola ogni volta che puoi" è una strategia e un algoritmo (un algoritmo euristico). Un altro modo di quello che sto chiedendo è questo:

Esistono euristiche valide (o decisamente ottimali) per giocare a questi giochi?

KK=0


Esiste anche una versione alternativa: se entrambi i giocatori giocano a briscola, le regole sono normali (ovvero vince la carta più alta).
Joe,

@Joe Ottimo suggerimento! In effetti, più in generale, si possono avere versioni alternative non solo cambiando il modo in cui i giocatori possono guadagnare la capacità di briscola, ma anche cambiando il modo in cui entrambi i giocatori trionfano durante lo stesso turno. Sentiti libero di fornire anche un'analisi della situazione che presenti, poiché tale analisi faciliterebbe quasi sicuramente l'analisi di versioni altrimenti simili.
Patrick87,

Risposte:


7

Se ho capito bene, tutte le informazioni sul gioco sono disponibili per entrambi i giocatori. Cioè, la configurazione iniziale e tutte le possibili mosse sono conosciute da entrambi i giocatori (principalmente perché entrambi i giocatori possono guardare le carte dell'altro giocatore). Questo rende il gioco un gioco a somma zero di informazioni perfette. Quindi esiste una strategia perfetta disponibile per entrambi i giocatori che otterrebbe il miglior risultato in ogni partita per quel giocatore. Ciò fu dimostrato nel 1912 dal matematico tedesco Ernst Zermelo.

Non so quale sia la strategia, ma si potrebbe immaginare di costruire un grande albero di gioco per esso e ottenere un computer per trovare la strategia per me usando il algoritmo min-max .

L'albero di ogni partita avrebbe come radice le mani dei due giocatori. I rami dell'albero corrispondono alle mosse dei giocatori. Nel caso più semplice, questi consistono semplicemente nel posare le carte richieste. Nei casi più avanzati, è possibile effettuare la mossa "briscola". I nodi interni dell'albero registrano quale sia l'attuale configurazione delle carte insieme a qualsiasi informazione sullo stato "briscole". Le foglie dell'albero corrispondono alle posizioni finali del gioco, che saranno etichettate con, diciamo, +1 per una vittoria sul Giocatore 1, 0 per un pareggio e -1 per una vittoria sul Giocatore 2. ignora le partite in loop.

Ora l'algoritmo min-max funzionerà come segue (dal punto di vista del giocatore 1). Supponi che guardi un nodo in cui il giocatore 1 fa una mossa e che i nodi sottostanti sono annotati con un +1, 0 o -1 (il payoff) insieme alle scelte che il giocatore deve fare per ottenere il risultato dato. Il giocatore 1 seleziona semplicemente il nodo con il payoff maggiore, registra quel payoff e la scelta richiesta per ottenerlo. Per il nodo in cui il giocatore 2 sta effettuando la mossa, viene scelto il nodo con il payoff minimo e la scelta viene registrata. Ciò riflette che il giocatore 2 punta al punteggio più basso per vincere. Questo viene propagato all'albero. Le scelte registrate su ciascun nodo corrispondono alla migliore strategia che un giocatore può fare. Il payoff finale determina chi vince. Questa è in definitiva una funzione in termini di payoff, anche se la scelta esatta delle mosse può variare.

Le configurazioni potenzialmente in loop possono essere incorporate nell'albero del gioco semplicemente aggiungendo loop che ritornano a una configurazione già vista (quando si esegue il calcolo dall'alto). Per tali nodi prendi il punto fisso più grande se è un nodo in cui il giocatore 1 gioca e il punto meno fisso quando il giocatore 2 gioca.

Nota che se non avessi ipotizzato che entrambi i giocatori potessero esaminare entrambi i mazzi, questo approccio non si applicherebbe. Il gioco coinvolgerebbe quindi il caso e la strategia selezionata sarebbe specifica del gioco.

La presenza o meno di una strategia vincente forte o debole per uno dei giocatori dipende dal risultato dell'algoritmo min-max applicato a tutti gli alberi. Ma ce ne sono sicuramente molti ... Calcolare l'albero per uno è probabilmente abbastanza facile, dal momento che non ci sono molte scelte fatte nel gioco.


Dopo aver fatto alcuni tentativi di rispondere da solo, mi sono reso conto a breve di ciò che hai sottolineato, cioè che deve necessariamente esserci una strategia ottimale, ma che realisticamente, affermare le regole per tale strategia potrebbe essere incredibilmente complesso. Sembra anche che potrebbe essere possibile per i giocatori entrare in un vicolo cieco in alcune versioni di questi giochi ... in cui entrambi sono in grado di briscolare, ma non possono essere d'accordo su quale dovrebbe essere la configurazione di briscola (uno trionferà se l'altro non e uno trionferà se l'altro lo facesse). Molto interessante.
Patrick87
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.