Come Poter Realizzare il Gioco Della Dama in Excel

di il
19 risposte

Come Poter Realizzare il Gioco Della Dama in Excel

Buon Giorno , Mi chiamo Maurizio , Vi scrivo in quanto vorrei Realizzare un Sogno che mi porto dietro da moltissimi anni ; è cioè quello di Riuscire a costruirmi il Gioco Della Dama Sfruttando il Foglio di Excel , di office 2007.
Ora Prmetto che non voglio Rubare il mestiere a nessuno , e ciò che mi permetto di costruire Progettando le cose più Disparate , le progetto solamente per il Gusto di farlo.
Detto questo Pensavo d'aver capito come costruire il Gioco Della Dama , Dopo che ero riuscito a Fare quello Della " Dama Cinese " .
Però poi mi sono accorto che senza l'aiuto di un professionista , non Potrò mai farcela .
Per tanto vi chiedo sè mi potreste dare una mano , nel Capire un paio di cosine , che sono :
1 ) Come muovere Delle Figure inserite in una Cella in senso Diagonale ( Destra ; Sinistra , Giù e Sù )
2 ) Come interagire con il Computer , per una partita a due .
3 ) una volta raggiunta la meta come dire che tale pedina Deve cambiare forma , e muoversi in tutte le direzioni .
In Teoria tutto qui ! ma per mè sarebbe già un grandissimo passo Avanti .
Per Qui Ringrazio sin da Ora Tutti Coloro che presteranno a realizzare questo mio progetto ; Per il resto Vi Porgo i miei Più sinceri saluti e un grazie di tutto da A.Maurizio

19 Risposte

  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Per me devi usare solo ed esclusivamente il VBA....potresti lavorare sulla posizione delle immagini, ma non so come farle muovere....ma il progetto lo devi realizzare per forza in Excel?!
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Ciao ByProgrammer ; Ti Ringrazio del Tuo intervento sulla questione del Gioco della Dama .
    Però il problema stà proprio in questo : Tolto via il fattore Spostare le Figure da Destra verso Sinistra e Dall'alto verso il Basso .
    Questo non è un problema , é invece un problema farli spostare in Diagonale ! .
    E poi come poter far intervenire il Computer ad ogni mia Mossa .
    Sono Queste le cose che non conosco , e non sò neppure esprimerlo in codice VBA o quant altro .
    Comunque sia grazie ancora di tutto ; prima o poi Riuscirò anche a risolvere questo Enicma .
    Sinceri saluti da A. Maurizio
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    La parte "grafica" la puoi realizzare semplicemente colorando le varie celle in base alle loro coordinate. Un pezzo che si muove in diagonale occupa la cella alle coordinate r+1, c+1 (e similmente per tutte le direzioni).

    L'algoritmo da usare per fare determinare una mossa dal computer è alquanto complesso. Se non si ha una grande esperienza in programmazione (e conoscenza di algoritmi e metodologie, funzioni di valutazione, ricerca euristica, al limite anche backtracking ...). Da quello che appare nel thread sembra che sia molto in là rispetto alla tua preparazione attuale.

    Quello che puoi cominciare a fare è la parte di gioco "umano contro umano" ovvero solamente la parte di input della mossa e di visualizzazione delle pedine.


    P.S. Per favore, non scrivere in modo alternato maiuscole e minuscole perché rende difficile e fastidiosa la lettura del thread.
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Ciao oregon Ti Ringrazio anzitempo per avermi dato delle Delucidazioni in merito al Gioco della Dama .
    Però visto che sei cosi gentile , mi potresti spiegare meglio questo Concetto di Qando Scrivi :
    r+1, c+1 che cosa sono e a che cosa ti riferisci , in quanto , Ti Espongo ad esempio una parte della mia dama cinese :
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If (Not Intersect(Me.Range("E3:K9"), Target) Is Nothing) And Target.Cells.Count = 1 Then
    With Me.Range("D6")
    .Value = .Value + 1
    End With
    End If

    Riga = Selection.Row
    Colonna = Selection.Column
    If (FLAG And Selection.Borders.LineStyle = xlContinuous) Then
    If (Cells(Riga, Colonna) = "") Then
    If ((Abs(PrimaRiga - Riga) = 2 And (Piccolo - Colonna = 0)) Or ((Abs(Piccolo - Colonna) = 2 And (PrimaRiga - Riga = 0)))) Then
    Cells(Riga, Colonna) = Cells(PrimaRiga, Piccolo)
    Cells(PrimaRiga, Piccolo) = ""
    If (Abs(PrimaRiga - Riga) = 2) Then
    If ((PrimaRiga - Riga) > 0) Then
    Cells(PrimaRiga - 1, Colonna) = ""
    Else
    Cells(Riga - 1, Colonna) = ""
    End If
    Else
    If ((Piccolo - Colonna) > 0) Then
    Cells(Riga, Piccolo - 1) = ""
    Else
    Cells(Riga, Colonna - 1) = ""
    End If
    End If
    End If
    ElseIf (Not IsEmpty(PrimaRiga) And Not IsEmpty(Piccolo)) Then
    Cells(PrimaRiga, Piccolo).Font.Color = -65536
    End If
    ElseIf (Not IsEmpty(PrimaRiga) And Not IsEmpty(Piccolo)) Then
    If (Cells(PrimaRiga, Piccolo).Locked = False) Then Cells(PrimaRiga, Piccolo).Font.Color = -65536
    End If
    FLAG = False
    If ((Riga <> 1 Or Colonna <> 1) And Cells(Riga, Colonna) <> "") Then
    Selection.Font.Color = -16776961
    FLAG = True
    PrimaRiga = Riga
    Piccolo = Colonna
    ElseIf (Not IsEmpty(PrimaRiga) And Not IsEmpty(Piccolo)) Then
    Cells(PrimaRiga, Piccolo).Font.Color = -65536
    End If
    End Sub

    Per qui visualizzato tutto ciò : dove e come dovrei inserire questi due termini da te accennati !
    Mi potresti per cortesia fare una bozza tu su come apportare tali Variabili .
    Grazie sinceramente anche sè non ci conosciamo ti grarantisco che sei un amico , Sinceri saluti da A. Maurizio
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Quando parlo di r e c mi riferisco a quelle variabili che tu hai chiamato Riga e Colonna
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Grazie infinite per il tuo aiuto saluti da A.Maurizio
    (N.B) Secondo te Riusciresti a dirmi cosa potrei Trovare su internet , sottoforma di gioco , che più si avvicini alla dama , in modo che io possa visionare ; farmene un Idea ; per poi tentare di buttare giù il tutto ! Nuovamente grazie
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    A.Maurizio ha scritto:


    Grazie infinite per il tuo aiuto saluti da A.Maurizio
    (N.B) Secondo te Riusciresti a dirmi cosa potrei Trovare su internet , sottoforma di gioco , che più si avvicini alla dama , in modo che io possa visionare ; farmene un Idea ; per poi tentare di buttare giù il tutto ! Nuovamente grazie
    I giochi (di vario tipo, dai solitari ai giochi uno contro uno, come dama, scacchi, go, ...) sono la palestra su cui si studiano e s implementano gli algoritmi utilizzati nel campo dell'Intelligenza Artificiale.

    Un gioco come dama, othello/reversi, sono semplici dal punto di vista delle regole di gioco, ma abbastanza complessi dal punto di vista dell'implementazione dell'Intelligenza Artificiale contro cui giocare. Per non parlare degli scacchi, per cui attualmente esistono programmi in grado di competere con i grandi maestri, ed il GO, gioco per cui attualmente non esiste nessun programma in grado di battere un maestro .

    Questo non vuol dire che non si possa realizzare un programmino non troppo complesso contro cui giocare: la IA non sara' particolarmente astuta e quindi risultera' facile da battere.

    Il gioco piu' semplice da cui si parte di solito e' il Tris/filetto

    Un'altro gioco semplice e' la morra cinese : in questo caso il computer potrebbe giocare contro se stesso.

    Per i giochi piu' complessi, ad esempio dama o othello/reversi, ti devi leggere qualche testo di Intelligenza Artificiale. Tranquillo, il concetto di funzione euristica e' semplice da comprendere, ed i concetti fundamentali li trovi generalmente nei primi capitoli del testo, sono facili da capire.

    Un testo classico e' il seguente:

  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Grazie infinite migliorabile : Sempre che sia cosi che tu Devo Chiamare !
    Andrò Subito a scaricare il Tutto , e quando sarò pronto di farò poi sapere come e andata .
    Anche sé a dire il Vero : il gioco del Tris l'avevo già creato un po' di hanni fa , ma non a nulla a che fare con la dama ?
    Anche sé è vero che ero riuscito a creare questo gioco in forma autonoma , cioè tu contro il computer , ora che mi ci fai pensare !
    Comunque sia ti Ringrazio Infinitamente per il tuo interessamento , sei proprio un amico .
    Sinceri saluti da A.Maurizio
    (n.b) D'altronde Io amo programmare anche sé sono abbastanza limitato , solo per il gusto di farlo , non per competere con i Grandi o voi del Mestiere .
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Ciao migliorabile , ti scrivo per la Seconda volta in quanto nel mio Primo messaggio non avevo ancora visualizzato , i tuoi link che mi avevi gentilmente inviato .
    Ora che lo fatto , ti ringrazio comunque del tuo interessamento , ma Io Sotto forma di realtà di questi giochi che mi hai dato da visionare , li conosco tutti ; Intendo dire che sò come funziona il Gioco o i giochi in questione .
    Quelloche non conosco e come buttare giù un listato che mi desse l'opportunità di ricreare tali giochi .
    Mi spiego Meglio : Nell'arco della mia Vita , sono riuscito a stento ; ma ci sono Riuscito , a ricreare la funzione per il gioco del Tris ; Della Dama Cinese ; del gioco dell'impiccato ; del Gioco Memory ecc...!
    Però tutti questi giochi hanno una cosa in comune , è cioè che Sei sempre tu a far muovere il tutto .
    Forse l'unico gioco che sono riuscito a far si che : Tu fai la tua mossa e il computer ne fà un altra e il fioco del tris .
    Per il resto e tutto una conseguenza di ciò che fai tu .
    Mentre il Gioco della Dama o degli Scacchi , il discorso cambia notevolmente , sia dall'ato estetico sia dall'ato pratico .
    In entrambi i casi Io sò giocare , per qui conosco il Gioco in sè : Quello che non conosco e come buttare giù un listato ad Doc che faccia funzionare il tutto .
    Un altro esempio che posso farti e questo : Ho sempre pensato che una volta che fossi riuscio a ricreare il gioco della Dama Cinese , avrei sicuramente risolto gran parte dei miei Problemi con il gioco della Dama Classica .
    Ma anche qui non e affatto cosi , in quanto nel primo gioco , ci si muove per linee Orizzontali o Verticali ; Mentre nel secondo caso si muove tutto per Linee Obliquee o Trasversali ecc...!
    E anche solo per questo piccolo concetto , Forsi per te che sei del mestiere , potrà risultare Insignificante ; Per mè che sono un Autodidatta , e come sbattere contro un muro di gomma .
    Figuariamoci poi per tutto il resto , Tutto qui .
    Comunque grazie ancora del tuo Interessamento Sinceri saluti da A.Maurizio

    (N.B) Quello peò che vorrei Sapere Veramente e questo : Perchè oggi come oggi c'è chi ti insegna ad Andare sulla Luna ; A fare un impianto Elettrico ; ad aggiustare dei tubi dell'acqua ; ad offrirti per Excel i giochi più svariati .
    Ma sè tenti di chiedere un aiuto per risolvere anche tu che non sei del mestire ; Per qui non porti danno a nessuno ! questo tipo di Gico Dama ; Scacchie che sia ..!
    Ti si chiudono tutte le porte : Eppure pensare che questo tipo di gioco e già stato inventato e realizzato in tuta le salse , Da Java ; Pascal ; C++ ecc...! Mistero della fede Saluti a tutti .
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Quello che devi capire è che un gioco come la dama o (peggio) gli scacchi usano "algoritmi" molto complessi che si imparano e si riescono a convertire in codice dopo decine di anni di studio di programmatori professionisti.

    Non ha alcun senso vedere un listato che mostra come funzionano questi algoritmi perché, credimi, ci capiresti veramente poco e non ti sarebbe di alcun aiuto (potresti solamente copiarlo e basta).

    Inoltre Excel (e il VBA) non sono i migliori strumenti per questo tipo di programmi (che, ripeto, anche se sono giochi sono tra i più complessi da realizzare). E' meglio un linguaggio come il C (meglio il C++) e tanti, tanti anni di esperienza.
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    @A.Maurizio:
    non e' un problema di non aiutarti.

    Mi e' capitato tempo fa di partecipare ad una discussione, degenerata poi in litigio (ma io non c'entravo ), su un sito di fotografia, in cui un professionista mostrava alcuni suoi lavori (alcune foto) fatti su alcuni gioielli. Quando, giustamente, i frequentatori del forum hanno iniziato a chiedere come ha fatto le foto, quali impostazioni ha utilizzato, che macchina fotografica/obietivo, come ha messo le luci, ecc.. il professionista si e' trincerato dietro banali scuse relative ai segreti del mestiere ed al fatto che divulgando tali informazioni rischiava di aumentare la concorrenza.
    Ora, se tali informazioni, descritte in un post, sono sufficienti per acquisire tutte le competenze per fare foto di gioielli, allora che professionista e'?

    Poiche' di sviluppo software ne so qualcosa, come diversi altri frequentatori quali ad esempio oregon, non ho problemi ad aiutarti. Non saranno certamente le informazioni che posso fornirti, acquisite in decine d'anni di studio/lavoro (non sono di primo pelo ) che potrebbero ridurre le mie probabilita' di trovare lavoro.

    Il problema e' piu' banale: la realizzazione di tali giochi non e' un problema di linguaggio di programmazione, ma di algoritmi.
    Questi algoritmi sono molto specifici e abbastanza (per non dire molto o moltissimo) complessi e richiedono conoscenze abbastanza (per non dire estremamente) sofisticate, che sono al di la' della maggior parte delle persone che sviluppa software per lavoro (anche mie ).

    Tali conoscenze si acquisiscono studiando Intelligenza Artificiale, Teoria dei Giochi, ed approffondendo specificatamente gli algoritmi usati nei giochi di scacchiera, per arrivare agli algoritmi specifici per i diversi tipi di gioco.

    Quindi, oltre a studiare tali argomenti, e' necessario anche andare a caccia di informazioni, leggendo bibliografie, cercando documentazione nelle biblioteche universitarie sulle riviste specializzate di settore (che trovi all'universita' e non dal giornalaio, e' tra l'altro, costano un botto).

    Come ha fatto notare oregon tali algoritmi sono stati sviluppati in decine d'anni di studio/sviluppo/prova ed errore. Un listato non serve assolutamente a nulla: e' come se ti mostrassi il listato dell'implementazione di un driver di una scheda di rete. Senza le opportune conoscenze, non ci capiresti nulla, come non lo capirei io.

    Ora, gli algoritmi implementati nei programmi di giochi per cellulare, ad esempio, sono in grado di vincere contro un giocatore base o anche medio. Generalmente sono stati realizzati da persone che hanno implementato tali giochi gia' da tempo (i computer esistono da un po' di anni ).

    Nel tuo caso, invece, vorrei farti notare alcuni punti:

    1) oregon ha giustamente fatto notare che tali algoritmi hanno richiesto anni di sviluppo. Ma questi algoritmi sono anche in gradi di vincere. Per tuo diletto personale, non e' necessario arrivare all'implementazione di un algoritmo cosi' intelligente. Ti puoi accontentare dell'implementazione della tua idea di algoritmo. Anche se sei in gradi di batterlo, chissene.. ma lo hai implementato tu!

    2) qualunque sia il tuo algoritmo, la lettura di un testo di Intelligenza Artificiale, e comprendere concetti come: grafo definito in modo implicito, funzione euristica, spazio degli stati, (e diversi altri concetti ...) e' estremamente consigliata, perche' senza tali concetti, non saresti in gradi di esprimere l'algoritmo ed implementarlo. Ameno di non reinventarti da solo i concetti indicati, ovviamente

    3) personalmente, oltre al testo di AI, che possiedo (e che a suo tempo ho studiato), non ho testi specifici sugli algortmi usati nei diversi tipi di giochi. Dovrei andare a caccia di informazioni allo stesso modo in cui faresti tu: Amazon, Wikipedia, Google, corsi universitali Online, MIT, Caltech, ecc.

    4) la maggior parte dei frequentatori di questo forum sono ragazzi delle superiori o ai primi anni di universita'. Intelligenza Artificiale e' una branca dell'informatica abbastanza di nicchia e sopprattutto studiata verso gli ultimi anni di universita' nei corsi da 4 o 5 anni.

    Quindi, non crucciarti se non trovi aiuto: non lo trovi non perche' non ti si voglia aiutare, ma piu' banalmente perche' non ci sono le competenze per farlo

    Infine, ultima nota: per imparare a programmare ti consiglio di lasciar perder Excel, ed utilizzare VisualBasic.NET, cioe' utilizzare un vero ambiente di sviluppo, ed il solo linguaggio di programmazione (e relative librerie).

    http://www.visualstudio.com/en-us/downloads#d-2010-express

    (c'e' la versione 2013, ma per ora la versione 2010 e' piu' che sufficiente per le tue attuali necessita')

    Questo ti mette nelle condizioni di non avere strane limitazioni/dipendenze che invece quasi sicuramente sono presenti nella versione di VB embedded con Microsoft Excel.

    Se vuoi fare il salto di qualita', con un piccolo sforzo, ma con significativi ritorni in termini di flessibilita' e potenza espressiva del linguaggio, passa a C#: fondamentalmente ritroverai gli stessi concetti di VB.NET, ma con una sintassi diversa (ovviamente c'e' di piu', ma per ora puo' bastare).
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Ciao migliorabile Ti Ringrazio sin da Ora per il tuo Grandissimo e graditissimo messaggio .
    Io di certo non Volevo e non vorrei offendere nessuno con aver scritto il mio primo messaggio , lo capisco da me , che Certamente sono cose che normalmente non si dovrebbero neppure chiedere , in quanto fanno parte di un bagaglio personale di ognuno di noi .
    Però sai la voglia di Imparare per mè e sempre Tanta anche sè : Sinceramente parlando non me la sento più di Cimentarmi in nuovi linguaggi ecc...!
    In quanto sono troppo Vecchio per riprendere da capo , pur mantenendo lo stesso impegno Seguendo altri linguaggi eccc..!
    Io anni fà avevo comperato la Suite completa di VB.Net , ma lo dovuta lascire perdere , primo perchè era un casino tutte le volte che volevo salvare la mia Applicazione , in quanto il Giorno dopo non la ritrovavo più dove ero sicuro d'averla messa il giorno prima .
    E visto che io arrivavo già dagli studi del Visual basic 6.0 dove li era molto più facile fare e copiare il tutto ; Capisci da te che per mè era già un pretesto per Mollare il tutto .
    Poi solo nel 2003 sono passato ad Excel , ma semplicemte perchè : lo trovo più Variegato sia dal profilo della Grafica che del suo Linguaggio ; Tanto e vero che dopo aver fatto già tanti Hanni fa un Orologio a Sette Secmenti , con Visual Basic 6.0 , ora lo Ripropongo anche in excel .
    Comunque torno a ripetere Grazie infinite ancora di Tutto e della tua molteplice pazzienza Sinceri saluti da A.Maurizio
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Ad esempio:

    http://gamedev.stackexchange.com/questions/16135/how-to-implement-a-i-for-checkers-draughts

    L'algoritmo minimax e' uno di quelli che si studiano in AI.

    Domandona: con Excel intendi Microsoft Excel, oppure un linguaggio di programnazione che si chiama Excel e che non ha nulla a che fare con Microsoft?


    Altra nota : il linguaggio perfetto per questo tipo di problemi e' il Prolog.
  • Re: Come Poter Realizzare il Gioco Della Dama in Excel

    Intende il VBA di Excel (MS Office)
Devi accedere o registrarti per scrivere nel forum
19 risposte