Gambas-it
Programmazione => Progetti degli utenti => Topic aperto da: leo72 - 03 Giugno 2010, 15:53:30
-
Questo è il progetto fin dove sono arrivato io.
Il problema è la conversione del listato BASIC (che trovate nella cartella del progetto con il nome hexapawn.bas) dalle righe 210-890.
Vi illustro un attimo sulle variabili del vecchio sorgente:
- B(x,y): contiene la disposizione dei pedoni sulla scacchiera da analizzare per trovare le mosse
- M(x,y): contiene le mosse del computer
- S(x): contiene la disposizione dei pedoni durante la partita
Quelle da me usate sono ampiamente documentate.
Il gioco si basa sul punta-e-clicca. L'umano è SEMPRE il pedone bianco e parte per primo, il computer risponde a seguire col pedone nero.
Le mosse sono al massimo 3, dopo di che o il nero o il bianco vincono. Per vincere bisogna o mangiare tutte le pedine dell'avversario oppure arrivare dall'altra parte della scacchiera. Le mosse "legali" sono quelle classiche del pedone degli scacchi e valgono sia per il nero che per il bianco: un pedone si sposta solo di 1 casella per volta e solo in avanti, potendo però occupare solo caselle libere; un pedone può mangiare solo in diagonale e compiendo un passo. Quindi in un'ipotetica scacchiera 3x3 con la numerazione delle celle che inizia in alto a SX e termina in basso a DX, il pedone dalla casella 5 può muoversi solo nella 2 se questa è libera, può muoversi nella 1 o nella 3 solo se è occupata da un pedone avversario, che viene mangiato.
-
Dimenticavo. Ogni volta che il computer perde, gli viene tolta per punizione l'ultima mossa (riga 830), in modo tale che autoapprenda dai suoi sbagli e diventi, pian pianino "invincibile".
Una cosa carina da fare, una volta che l'algoritmo di gioco funzionerà, è quello di salvare lo stato corrente delle mosse del computer in modo che, se il giocatore umano vuole, può provare a sfidare un computer "allenato" e imbattibile.
Intanto cerchiamo di far funzionare la versione "normale" ;)
-
scaricato, dovrò vedermelo per bene, mi sembra abbastanza complicato
-
a che punto sei, sei andato avanti?
-
Ti rispondo per quel che mi riguarda.
Io personalmente son fermo perché in questi giorni ho avuto non pochi problemi (piede rotto :'().
Vedrò nella prossima settimana di rivedere la logica di gestione delle mosse.
Intanto vi anticipo che ho trovato altre cose carine, magari a fine estate presento un programma con diversi giochini "direttamente dal passato", tipo la battaglia navale, il mastermind, la briscola ecc... Avrei anche uno Star Trek a metà... insomma di cose da fare ne avrei tante, avessi la voglia ed il tempo di terminarle :P
-
attenderò trepidante :o
Guarisci presto con il piede :D
Purtroppo pure per me questo non è periodo, forse a settembre vedrò.