Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

MASTER MIND - Lab. Sistemi - Analisi problema

finanze




MASTER MIND

Lab. Sistemi




-Analisi problema

Il Master Mind è un gioco in cui bisogna indovinare una sequenza di 4 colori non superando un certo numero di tentativi.

In questo programma il gioco funziona un po' diversamente, al posto dei pallini colorati sono utilizzati dei numeri e il gioco finisce finché non viene indovinata la sequenza.

L' utente può scegliere da quante cifre può essere composta la sequenza da indovinare, da un minimo di 3 a un massimo di 7; oltre a questo può impostare il valore massimo assumibile da ogni cifra, da 0 a 9.

Il gioco è basato principalmente su due operazioni:

- la procedura in cui si assegna la sequenza da indovinare, la sequenza è memorizzata in un array di byte.

- la procedura in cui si confronta la sequenza inserita dall'utente e la sequenza realizzata dal computer (quella da indovinare).






Procedura Presentazione

Questa procedura presenta il programma, da chi è stato realizzato e di cosa si tratta in poche parole. La procedura stampa in u 242h71c n determinato punto dello schermo 'De Salvia e Piccini.'

dopo un certo tempo lo schermo viene cancellato e la procedura stampa ' Presentano.' e viene visualizzato 'MASTER MIND'.


Procedura Inizio

Questa procedura stampa la parola MASTER MIND in alto nello schermo; ogni lettera di questa parola è scritta con colori diversi.

Stampa il menù principale in cui sono presenti 3 opzioni:

-Gioca

-Leggere le istruzioni

-Uscire


Procedura Istruzioni

Questa procedura stampa delle informazioni riguardanti il gioco del master mind lo scopo principale e cioè quello di indovinare una certa sequenza di cifre scelta dal computer.

Il gioco non finisce finché l'utente non indovina la combinazione.


Procedura Menù

Stampa il menù che è presente alla fine di ogni partita e cioè uscire o giocare ancora;la risposta data dall'utente attraverso un numero viene memorizzata nella variabile R.

Procedura Menù2

Esegue la stessa funzione della procedura menù solo che questo è presente in fondo allo schermo quando viene richiamata la procedura delle istruzioni.


Procedura Assegna

Questa procedura è quella principale del programma perché il computer sceglie la sequenza delle cifre da indovinare.

Inoltre qui l'utente può inserire le varie difficoltà del gioco e cioè di quante cifre vuole che sia composta la sequenza (viene memorizzata nella variabile X) e quale valore massimo può assumere ogni cifra (viene memorizzata nella variabile Y).

Fatto questo il computer compone la sequenza che viene memorizzata nell'array S.


Procedura Confronta

Questa procedura è dove l'utente cerca di indovinare la sequenza facendo dei tentativi,la sequenza di prova viene memorizzata nell'array T; dopo di che i numeri presenti nell'array T vengono confrontati con quelli presenti in S.

Il computer guarda quante cifre sono giuste al posto giusto e quante sono giuste ma al posto sbagliato e stampa questi due valori.

La procedura si ripete finché non viene indovinata la sequenza dell'array S.


Procedura Fine

Questa procedura cancella lo schermo e stampa due scritte temporizzate 'Fine del Gioco ' e 'Arrivederci '.











- Nelle pagine seguenti è presente il flow chart di alcune delle procedure -









I

 


Procedure Confronta


Procedure Gioca




Procedure G_Instruzioni




BEGIN


PRESENTAZIONE

 

INIZIO

 

FINE


 


Programma Pascal


Program Master_mind;

Uses crt;

Const

del=300;

del1=1000;

Var

i,

k,

j,

x,

y,

a,

r,

gpg,

gps

:byte;


uguali:boolean;


s:array[1..20] of byte;

t:array[1..20] of byte;



Procedure presentazione;

Begin

clrscr;

textcolor(5);

gotoxy(31,20);

write('DE SALVIA e PICCINI...');

delay(del1);

delay(del1);

clrscr;

textcolor(4);

gotoxy(33,20);

write('presentano...');

delay(del1);

clrscr;

textcolor(2);

gotoxy(33,20);

write('MASTER');

textcolor(7);

gotoxy(40,20);

write('MIND');

delay(del1);

End;



Procedure inizio;

Begin

clrscr;

textcolor(1);

write('M');

textcolor(2);

write('A');

textcolor(3);

write('S');

textcolor(4);

write('T');

textcolor(5);

write('E');

textcolor(6);

write('R');

write(' ');

textcolor(7);

write('M');

textcolor(8);

write('I');

textcolor(9);

write('N');

textcolor(10);

write('D');

delay(del);

writeln;

writeln;

textcolor(11);

writeln('Premi: 1 --> per giocare');

writeln(' 2 --> per leggere le istruzioni del gioco');

writeln(' 3 --> per uscire');

read(k);

End;


Procedure istruzioni;

Begin

clrscr;

textcolor(9);

writeln('Il gioco consiste nell''indovinare una sequenza di numeri dopo aver dato');

writeln('il numero di cifre che compongono la sequenza e il massimo valore assumibile');

writeln('da ogni cifra.');

writeln;

writeln('Per avere pi- spazio sullo schermo per visualizzare i tentativi puoi');

writeln('separare le cifre immesse con la barra spaziatrice e arrivati al');

writeln('numero di cifre scelto premere invio per confermare il tentativo.');

End;


Procedure menu;

Begin

writeln;

textcolor(7);

writeln('Premi: 1 --> per uscire');

writeln(' 2 --> per giocare ancora');

read(r);

End;


Procedure menu2;

Begin

writeln;

textcolor(7);

writeln('Premi: 1 per uscire');

writeln(' 2 per giocare');

read(r);

End;


Procedure assegna;

Begin

clrscr;

repeat

repeat

repeat

textcolor(10);

writeln('Di quante cifre vuoi che sia composta la sequenza? (Da 3 a 7) ');

readln(x);

if x>7 then

begin

textcolor(4);

writeln('Hai superato il valore massimo di numeri per la sequenza');

end;

if x<3 then

begin

textcolor(6);

writeln('Non puoi inserire numeri minori di 3');

end;

until x<=7;

until x>2;

repeat

repeat

textcolor(10);

writeln('Quanti valori vuoi che possa assumere ogni cifra? (tra 0 e 9)');

readln(y);

y:=y+1;

if y>10 then

begin

textcolor(4);

writeln('Hai superato il valore massimo');

end;

if y<=0 then

begin

textcolor(6);

writeln('Non puoi inserire valori negativi o uguali a zero');

end;

until y<=10;

until y>0;

if x>y then

begin

textcolor(5);

writeln('non puoi inserire pi- cifre per la sequenza che valori assumibili');

end;

until x<=y;

i:=0;

repeat

i:=i+1;

repeat

a:=0;

randomize;

s[i]:=random(y);

if i>1 then

begin

k:=0;

repeat

k:=k+1;

if s[k]=s[i] then a:=a+1;

until k=i-1;

end;

until a=0;

until i=x;

End;


Procedure confronta;

Begin

textcolor(9);

writeln('Ricorda che ci sono ',x,' cifre per la sequenza con massimo valore di ',y-1);

textcolor(4);

writeln('Digita una cifra per volta e premi invio');

repeat

i:=0;

gpg:=0;

gps:=0;

textcolor(7);

writeln('vai con il tuo tentativo');

for j:=1 to x do read(t[j]);

repeat

uguali:=false;

i:=i+1;

if s[i]=t[i] then gpg:=gpg+1

else begin

j:=0;

repeat

j:=j+1;

if t[j]=s[i] then uguali:=true;

if uguali=true then

begin

gps:=gps+1;

j:=x;

end;


until j=x;

end;

until i=x;

textcolor(2);

write(gpg,' valori giusti al posto giusto');

textcolor(5);

write(' -- ');

textcolor(11);

writeln(gps,' valori giusti al posto sbagliato');

until gpg=x;

textcolor(3);

writeln('Complimenti hai indovinato la sequenza di numeri');

End;


procedure fine;

begin

clrscr;

gotoxy(34,19);

textcolor(4);

write('FINE DEL GIOCO');

delay(del);

delay(del);

clrscr;

textcolor(13);

gotoxy(35,19);

write('ARRIVEDERCI');

delay(del);

delay(del);

normvideo;

end;


procedure gioca;

begin

repeat

assegna;

confronta;

menu;

until r=1;

if r=1 then fine;

end;


procedure g_istruzioni;

begin

istruzioni;

menu2;

if r=1 then fine

else

gioca;

end;




BEGIN

presentazione;

inizio;

case k of

1: gioca;

2: g_istruzioni;

3: fine;

end;

END.


Conclusioni

Il programma mi ha causato qualche problema per la formazione delle procedure, soprattutto la procedura per l'assegnazione della sequenza da indovinare, pochi problemi riguardanti la procedura del confronto, mentre per le altre non avuto nessuna complicazione perché sono solo presenti frasi da stampare e massimo una acquisizione di un numero corrispondente alla procedura che si vuole richiamare (gioca, istruzioni, fine).

Questo programma è una simulazione completa del gioco Master Mind usando al posto dei colori, delle cifre e l'utente ha anche la possibilità di impostare un livello di difficoltà scegliendo il numero delle cifre da cui è composta la sequenza e il valore massimo assumibile da esse.




Privacy




Articolo informazione


Hits: 2153
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024