ARRAY. ARRAY a 3 DIMENSIONI



Похожие документы
CARTE. Regolamento Belote. Regole del gioco: Determinazione del seme di briscola (Belote classico):

Manuale di gioco di Tenente Skat

Poker tradizionale a 5 carte

Probabilità discreta

Carte Laurea triennale in Comunicazione Digitale Laboratorio di Informatica Generale

BlackJack. regole del gioco

Scopa. Scopone. Il Torneo. Il Gioco

Esercizi di codifica binaria

Joker Poker - Regole di Gioco

Double Bonus Poker - Regole di Gioco

Bonus Poker Multi - Regole di Gioco

Hub-PA Versione Manuale utente

Esempi di algoritmi. Lezione III

Parliamo un po di più di bridge. La filosofia del gioco. Nico Andriola

STRATEGIA SHORTSTACK Guida

Pokerclub Texas Hold em modalità torneo

BLACK JACK. Come si gioca

Cosa dobbiamo già conoscere?

Esercizi di Probabilità e Statistica

Regolamento Casinò Poker Joker Poker

Esercizi di codifica binaria

di Frederic Moyersoen Giocatori: 3-10 Età: a partire dagli 8 anni Durata: circa 30 minuti

TICHU NANJING (per 4 giocatori)

CARIBBEAN POKER. Come si gioca

REGOLAMENTO INTERNO GIOCO DELLA BELOTTA BAR VECCHI RICORDI TRIORA Tutti i diritti sono riservati bar Vecchi Ricordi P.

In base alla formula di torneo adottata i tornei possono pertanto prevedere lo svolgimento di una o più partite.

In base alla formula di torneo adottata i tornei possono pertanto prevedere lo svolgimento di una o più partite.

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

DESCRIZIONE DEL GIOCO

Jack or Better - Regole di Gioco

Pinella Singolo ASC-CAAM 2013/14

Lezione 8. La macchina universale

BriscoParse. Un linguaggio per descrivere partite di Briscola a 4 giocatori. Linguaggi e Modelli Computazionali LS. Marco D Alessandro

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

Un Gioco di Bruno Faidutti & Bruno Cathala Da 3 a 5 giocatori.

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

[ Analisi della. concentrazione] di Luca Vanzulli. Pag. 1 di 1

Matematica in laboratorio

Basi di dati 9 febbraio 2010 Compito A

CowPoker. (Versione 1.0 Giugno 2006)

COMPITO n Siano X, Y due variabili aleatorie tali che il vettore (X, Y ) sia distribuito uniformemente

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Definizione di nuovi tipi

8. Qual è la probabilità di estrarre da un mazzo di 40 carte napoletane una figura?

4. SERIE NUMERICHE FIGURALI

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

BPIOL - Bollettino Report Gold. Manuale Utente

SPECIFICHE E LIMITI DI EXCEL

REGOLAMENTO HOLD EM SHOWDOWN

Definizione di nuovi tipi in C

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Istruzioni per l uso dei programmi MomCad, TraveCon, TraveFon

Regolamento di gioco di PokerClub

Il database management system Access

Corso di Informatica

Il calendario di Windows Vista

Come si gioca al Macchiavelli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

GUIDA AL SOCIAL CARE

Cosa è un foglio elettronico

Regolamento In italiano

Le variabili. Olga Scotti

ASSOWEB. Manuale Operatore

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

Introduzione al Foglio Elettronico

Gestione Centro Estetico

Informatica (Basi di Dati)

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

Distribuisce le carte Inizia una nuova mano Piazza la stessa puntata della mano precedente Annulla le puntate già presenti sul tavolo

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Regole di base Poker

Per poter affrontare il problema abbiamo bisogno di parlare di probabilità (almeno in maniera intuitiva). Analizziamo alcune situazioni concrete.

Stile carattere: permette di selezionare il carattere da usare per la riga fra quelli disponibili.

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

SPECTER OPS. L'obiettivo del giocatore agente è quello che il suo agente completi 3 su 4 missioni obiettivo qualsiasi

Aggiornamento Titoli

REGOLE DA TORNEO DI DUEL MASTERS Valide dal 6 agosto 2004

CORSO DI CALCOLO DELLE PROBABILITÀ E STATISTICA. Esercizi su eventi, previsioni e probabilità condizionate

Esercizio data base "Biblioteca"

Funzioni in C. Violetta Lonati

Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio giochirari@giochirari.

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Scoprire la DESTRA e la SINISTRA

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

SITO DI PUBBLICAZIONE ANNUNCI

Nuova procedura on-line di autocertificazione

G iochi con le carte 1

Colorare coi numeri La rappresentazione delle immagini

STATISTICA MEDICA Prof. Tarcisio Niglio oppure su Facebook Anno Accademico

UNIEMENS Manuale consultazione DM10 Virtuale e DM10VIG nel sito

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni

INFORMATICA - I puntatori Roberta Gerboni

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

VISUALFLEET Software Overview

Транскрипт:

Prof. Claudio Maccherani a.s. 2005 / 2006 ARRAY 1 TRESSETTE 2 BRISCOLA 4 POKER 6 ARRAY Una VARIABILE SEMPLICE è una scatola che può contenere un oggetto alla volta. La variabile è caratterizzata dal proprio nome (che la identifica univocamente), dal tipo di dato che può contenere e dalla lunghezza (numero di byte che occupa in memoria centrale). A 358 Un ARRAY è una VARIABILE STRUTTURATA caratterizzata dal proprio nome, dal tipo di dato di ogni suo elemento, dal numero di dimensioni (o indici), dal dominio di ogni indice. Ogni elemento dell array viene individuato specificando il nome dell array e, tra parentesi, le coordinate di ciascun indice. Il VETTORE è un array a una dimensione, la MATRICE è un array a due dimensioni. VETTORE MATRICE V M 1 2 3 1 345 1 ITA STO ITA 2 8200 2 MAT ING ITA 3 55 3 INF INF MAT 4 33 4 RAG INF RAG 5 120 5 TEC EDF TEC ARRAY a 3 DIMENSIONI V(2) individua l elemento di indice 2 il cui valore è 8200. M(4,2) individua l elemento di riga 4 e colonna 2 il cui valore è "INF". Se l array ha tre dimensioni si specifica prima la riga, poi la colonna ed infine la profondità. In generale, per array a n dimensioni, si specifica, nell ordine, la coordinata di ciascuna dimensione. Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 1

Esempio 1: TRESSETTE Per comprendere l utilità "informatica" degli array immaginiamo di voler realizzare un programma Visual Basic che giochi a TRESSETTE, limitandoci alla sola distribuzione delle carte e alla verifica dell eventuale accuso. Il tressette è un gioco di carte che si fa in quattro giocatori, suddivisi in due squadre contrapposte, utilizzando le 40 carte "napoletane" o "piacentine". Si distribuiscono 10 carte per ogni giocatore e, dopo aver verificato se i giocatori accusano, si inizia la mano. Le carte interessate all accuso sono gli Assi, i Due e i Tre. Si accu sa solo se si hanno tre o quattro Assi (rispettivamente tre e quattro punti), tre o quattro Due e tre o quattro Tre. Si accusano inoltre tre punti per ogni eventuale "napoletana", costituita da Asse, Due e Tre dello stesso seme. CARTA MAZZO 1 2 3 4 GC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Asse 1 0 1 1 0 1 1 0 0 1 0 0 0 2 Due 2 1 1 1 0 2 0 0 0 1 0 0 0 3 Tre 3 0 1 1 1 3 1 0 0 0 0 0 0 4 Quattro 4 0 1 1 1 4 1 0 0 0 0 0 0 5 Cinque 5 1 1 1 1 5 0 0 0 0 0 0 0 6 Sei 6 1 0 1 1 6 0 1 0 0 0 0 0 GIOCATORE 7 Sette 7 1 1 0 1 7 0 0 1 0 0 0 0 4 Anna 4 8 Fante 8 1 1 1 0 8 0 0 0 1 0 0 3 Claudio 3 9 Cavallo 9 0 1 1 1 9 1 0 0 0 0 2 Mario 2 10 Re 10 0 1 1 1 10 1 0 0 0 1 Vera 1 1 2 3 4 Bastoni Denari Coppe Spadi 1 2 3 4 SEME Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 2

Per simulare il mazzo si può utilizzare una matrice numerica MAZZO di 10 righe, tante quante sono le carte, da 1 (asse) a 10 (re), e 4 colonne, una per ciascuno dei quattro semi. Ogni elemento di questa matrice può assumere il valore 1 - carta presente - o il valore 0 - carta non più nel mazzo. Per i nomi delle carte e dei semi possiamo utilizzare il vettore stringa CARTA di 10 elementi (contenente i nomi delle carte) ed il vettore stringa SEME di 4 elementi (con i nomi dei semi). Per i giocatori si utilizza il vettore stringa GIOCATORE di 4 elementi, contenente i nomi dei giocatori. Per simulare le carte ricevute da ciascun giocatore possiamo utilizzare l array a tre dimensi oni CG (carte giocatori) di 10 righe, tante quante sono le carte, da 1 (asse) a 10 (re), 4 colonne, una per ciascuno dei quattro semi e 4 livelli di profondità, uno per ciascun giocatore. Ogni elemento di questo array può assumere il valore 1 - carta in possesso del giocatore - o il valore 0 - carta non in possesso del giocatore. Per la distribuzione casuale delle carte si utilizza l istruzione RANDOMIZE TIMER e la funzione RND, opportunamente "lavorata", per estrarre casualmente la carta (da 1 a 10) ed il seme (da 1 a 4). Per distribuire effettivamente la carta occorre verificare che sia ancora presente nel MAZZO, cioè che il relativo elemento valga 1. La distribuzione consisterà nel porre a 0 l elemento della matrice MAZZO associato alla carta e a 1 l e lemento dell array CG associato al giocatore. Per visualizzare le carte ricevute da ciascun giocatore si può utilizzare una cosiddetta "matrice" di controlli di tipo list box [lstg] di quattro elementi proprietà index da 1 a 4, una per ciascun giocatore. Tale list box sarà riempita in base alle carte del giocatore array CG "ricostruendo" opportunamente la dicitura completa con l ausilio dei vettori CARTA e SEME. Se si volessero utilizzare le carte "vere", queste potrebbero essere memorizzate in una matrice di controlli di tipo image [imgcarta], di 40 elementi, tanti quante le carte, utilizzando opportunamente la proprietà index (Spadi nei primi 10 elementi, poi Coppe, poi Denari ed infine Bastoni) e quindi assegnate ai giocatori al momento della distribuzione. Per questo occorre prevedere un altra matrice di controlli di tipo image [imggio], di 40 elementi, tanti quante le carte distribuite ai giocatori, utilizzando opportunamente la proprietà index (i primi 10 elementi rappresenteranno le carte del primo giocatore, da 11 al 20 elemento le carte del secondo giocatore, e così di seguito). Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 3

Esempio 2: BRISCOLA Restando in un ambito ludico-informatico" dell applicazione degli array, vediamo come si potrebbe realizzare un programma Visual Basic che giochi a BRISCOLA, una partita a due, tra un giocatore e il computer. La briscola è un gioco di carte che si fa in quattro giocatori, suddivisi in due squadre contrapposte, utilizzando le 40 carte "napoletane" o "piacentine", ma che si può giocare anche in due. Si distribuiscono 3 carte per ogni giocatore e, dopo aver scoperto la briscola, si inizia il gioco. Non è obbligatorio rispondere. Le carte che contano sono Assi (11 punti), Tre (10 punti), Re (4 punti), Cavallo (3 punti) e Fante (2 punti). CARTA MAZZO MAZZOC MAZZOG 1 2 3 4 1 2 3 4 1 2 3 4 1 Asse 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 2 Due 2 0 0 1 0 2 0 0 0 1 2 1 1 0 0 3 Tre 3 0 0 1 0 3 1 0 0 0 3 0 0 0 0 4 Quattro 4 0 1 0 1 4 1 0 0 0 4 0 0 0 0 5 Cinque 5 1 0 0 1 5 0 0 0 0 5 0 1 1 0 6 Sei 6 1 0 0 0 6 0 1 0 0 6 0 0 1 1 7 Sette 7 0 0 0 1 7 0 0 1 0 7 0 0 0 0 8 Fante 8 1 0 0 0 8 0 0 0 1 8 0 1 1 0 9 Cavallo 9 0 0 1 0 9 1 0 0 0 9 0 1 0 0 10 Re 10 0 1 0 0 10 1 0 0 0 10 0 0 1 1 1 3 2 1 3 4 2 4 3 2 7 2 3 7 1 3 9 4 1 2 1 2 1 2 3 4 CARTEC CARTEG SEME Spadi Coppe Denari Bastoni Per simulare il mazzo si può utilizzare una matrice numerica MAZZO di 10 righe, tante quante sono le carte, da 1 (asse) a 10 (re), e 4 colonne, una per ciascuno dei quattro semi. Ogni elemento di questa matrice può assumere il valore 1 - carta presente - o il valore 0 - carta non più nel mazzo. Per i nomi delle carte e dei semi possiamo utilizzare il vettore stringa CARTA di 10 elementi (contenente i nomi delle carte) ed il vettore stringa SEME di 4 elementi (con i nomi dei semi). Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 4

Per le carte acquisite giocando possiamo utilizzare le matrici MAZZOC e MAZZOG, rispettivamente per il computer e per il giocatore, strutture simili alla matrice MAZZO. Per le carte "in mano" al giocatore ed al computer usiamo le matrici CARTEC e CARTEG, di 3 righe - tante quante le tre carte in mano - e due colonne: la prima colonna individua la carta (numero da 1 a 10), la seconda colonna individua il seme (numero da 1 a 4). Nell esempio di cui sopra risulta che il computer ha Tre di Coppe, Quattro di Denari e Sette di Spadi, mentre il giocatore ha Tre di Bastoni, Sette di Coppe e Cavallo di Bastoni. Per la distribuzione casuale delle carte si utilizza l istruzione RANDOMIZE TIMER e la funzione RND, opportunamente "lavorata", per estrarre casualmente la carta (da 1 a 10) ed il seme (da 1 a 4). Per distribuire effettivamente la carta occorre verificare che sia ancora presente nel MAZZO, cioè che il relativo elemento valga 1. La distribuzione consisterà nel porre a 0 l elemento della matrice MAZZO associato alla carta e aggiornare opportunamente - con numero carta e numero seme - le matrici CARTEC e CARTEG nella distribuzione delle carte e quindi aggiornare opportunamente ad 1 le matrici MAZZOC e MAZZOG al momento della "presa". Per visualizzare le carte "vere" esse si memorizzano in una matrice di controlli di tipo image [imgcarta], di 40 elementi, tanti quante le carte, utilizzando opportunamente la proprietà index (Spadi nei primi 10 elementi, poi Coppe, poi Denari ed infine Bastoni) e quindi assegnarle ai giocatori al momento della distribuzione e delle "prese". Per questo occorre prevedere altre matrici di controlli di tipo image quali [imggio] e [imgcom], di 3 elementi, tanti quante le carte in mano a ciascun giocatore. Il programma prevede la possibilità di giocare "a carte coperte" o "a carte scoperte" - per verificare come gioca il programma - e in modo "automatico" - è il programma che sceglie quale carta far giocare al computer - o "manuale" - è il giocatore che sceglie anche per il computer. Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 5

Esempio 3: POKER Come ultimo esempio di applicazione degli array in applicazioni informatiche vediamo come potrebbe essere un programma Visual Basic che giochi a POKER, limitandoci alla distribuzione delle carte, al loro cambio e alla definizione del "punto" risultante. Il poker è un gioco che si fa in più giocatori, ciascuno dei quali punta, bluffa e rilancia in base alle carte e all ispi razione del momento. Inizialmente si prendono cinque carte, dopo di che se ne possono cambiare alcune, quindi si gioca. I "punti" sono, in ordine decrescente: Scala Reale (tutte le carte dello stesso seme in ordine crescente); Poker (quattro carte uguali); Colore (cinque carte dello stesso seme); Full (un tris ed una coppia), Scala (tutte le carte in ordine crescente), Tris (tre carte uguali), Doppia Coppia (due coppie), Coppia (due carte uguali). MAZZO GIOCO CARTA 1 2 3 4 1 2 3 4 vc vs 1 Sei 1 1 1 1 1 1 0 0 0 0 1 3 1 1 2 Sette 2 1 1 1 1 2 0 0 0 0 2 6 2 2 3 Otto 3 0 1 1 1 3 1 0 0 0 3 8 3 2 4 Nove 4 1 1 1 1 4 0 0 0 0 4 8 4 3 5 Dieci 5 1 1 1 1 5 0 0 0 0 5 9 5 4 6 Jack 6 1 0 1 1 6 0 1 0 0 7 Donna 7 1 1 1 1 7 0 0 0 0 8 Re 8 1 0 0 1 8 0 1 1 0 9 Asse 9 1 1 1 0 9 0 0 0 1 1 3 1 2 6 2 3 8 2 4 8 3 1 2 3 4 5 9 4 SEME 1 2 CARTEC Fiori Quadri Cuori Picche Per simulare il mazzo si può utilizzare una matrice numerica MAZZO di 9 righe, tante quante sono le carte, da 1 (sei) a 9 (asse), e 4 colonne, una per ciascuno dei quattro semi. Ogni elemento di questa matrice può assumere il valore 1 - carta presente - o il valore 0 - carta non più nel mazzo. Per i nomi delle carte e dei semi possiamo utilizzare il vettore stringa CARTA di 9 elementi (contenente i nomi delle carte) ed il vettore stringa SEME di 4 elementi (con i nomi dei semi). Per le carte acquisite dal giocatore possiamo usare la matrice GIOCO, simile a MAZZO. Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 6

Per le carte "in mano" al giocatore si usa la CARGIO, di 5 righe - tante quante le cinque carte in mano - e due colonne: la prima colonna individua la carta (numero da 1 a 9), la seconda colonna individua il seme (numero da 1 a 4). Nell esempio di cui sopra risulta che il giocatore ha in mano Otto di Fiori, Jack di Quadri, Re di Quadri, Re di Cuori e Asse di Picche. Per la distribuzione casuale delle carte si utilizza l istruzione RAND OMIZE TIMER e la funzione RND, opportunamente "lavorata", per estrarre casualmente la carta (da 1 a 9) ed il seme (da 1 a 4). Per distribuire effettivamente la carta occorre verificare che sia ancora presente nel MAZZO, cioè che il relativo elemento valga 1. La distribuzione consisterà nel porre a 0 l elemento della matrice MAZZO associato alla carta e aggiornare opportunamente - con numero carta e numero seme - la matrici CARGIO nella distribuzione delle carte e quindi aggiornare opportunamente ad 1 la matrice GIOCO al momento dell acquisizione delle carte. Per visualizzare le carte "vere" si usa la libreria di sistema CARDS32.DLL, la stessa dalla quale "pescano" le carte tutti i giochi di carte forniti con Windows (Heart, Solitario, Spider, etc.). Il programma prevede la possibilità di acquisire le prime cinque carte, verificare il "punto" realizzato, cambiare una o più carte, verificare il "punto" definitivo realizzato. Introduzione agli ARRAY Tressette, Briscola, Poker - Prof. Claudio Maccherani - Perugia - 2005 / 2006 Pag. 7