Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Pogrammazione pascal

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Pogrammazione pascal

Messaggioda iNVIoLaBLe » ven apr 20, 2007 10:40 pm

Ciao a tutti!!!
Sono nuovo e volevo chiedere come si fa campo minato con pascal senza grafica avanzata e con le istruzioni if,while,array,for... [:)]
Grazie in anticipo a chi mi rispoderà... [^]
Avatar utente
iNVIoLaBLe
Neo Iscritto
Neo Iscritto
 
Messaggi: 3
Iscritto il: gio apr 19, 2007 8:12 pm
Località: Treviso

Re: Pogrammazione pascal

Messaggioda Silver Black » sab apr 21, 2007 2:40 pm

iNVIoLaBLe ha scritto:Ciao a tutti!!!
Sono nuovo e volevo chiedere come si fa campo minato con pascal senza grafica avanzata e con le istruzioni if,while,array,for... [:)]
Grazie in anticipo a chi mi rispoderà... [^]


Si fa così:

- studiando un algoritmo generale in linguaggio naturale
- suddividendo il problema in sotto-problemi sempre più piccoli, fino a che non è più possibile suddividerli
- trovando un algoritmo per risolvere i sotto-problemi in linguaggio naturale
- traducendo questi algoritmi nel linguaggio di programmazione

Prova pensare come dovrebbe comportarsi il programma, suddividere il problema in sotto-problemi e tradurre il tutto in un algoritmo.
Poi se hai problemi torna qui e chiedi, saremo felici di aiutarti. [std]
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia

Messaggioda iNVIoLaBLe » dom apr 22, 2007 10:59 am

Allora ho fatto come hai detto te...
E ho delle cose da chiederti:
Io ho creato una tabella 5x5 con i type record...Il problema e che non me la visualizza!Poi non riesco a capire come come si fa con le coordinate ...
Avatar utente
iNVIoLaBLe
Neo Iscritto
Neo Iscritto
 
Messaggi: 3
Iscritto il: gio apr 19, 2007 8:12 pm
Località: Treviso


Messaggioda Silver Black » dom apr 22, 2007 2:35 pm

iNVIoLaBLe ha scritto:Allora ho fatto come hai detto te...
E ho delle cose da chiederti:
Io ho creato una tabella 5x5 con i type record...Il problema e che non me la visualizza!Poi non riesco a capire come come si fa con le coordinate ...


Una tabella 5x5 è forse una matrice? Ossia un vettore a due dimensioni 5x5?
OK, come l'hai dichiarato? Un array non viene visualizzato, è una struttura dati in memoria, sei tu che devi dire al programma come vuoi che vengano visualizzati i tuoi dati.

Le coordinate sono una cosa automatica, dopo che hai l'array bidimensionale, es. puoi riferirti alla cella vetCampo[3,4] per indicare la cella riga 3 colonna 4 (è intuitivo).

Che compilatore stai usando? Turbo Pascal? E' un lavoro scolastico o per tuo diletto?
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia

Messaggioda iNVIoLaBLe » dom apr 22, 2007 7:58 pm

Uso dev-pascal 1.92 ed e per la scuola...
questo e il programma:
program campo_minato;
uses crt;
var
mx: array [1..10, 1..10] of integer;
my: array [1..10, 1..10] of integer;
i, x, y, a, b: integer;
begin
for i:= 1 to 10 do
begin
randomize;
x:=random(9)+1;
y:=random(9)+1;
mx[x,y]:=1;
readln;
end;
readln;
writeln('-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,1],' | ',mx[2,1],' | ',mx[3,1],' | ',mx[4,1],' | ',mx[5,1],' | ',mx[6,1],' | ',mx[7,1],' | ',mx[8,1],' | ',mx[9,1],' | ',mx[10,1],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,2],' | ',mx[2,2],' | ',mx[3,2],' | ',mx[4,2],' | ',mx[5,2],' | ',mx[6,2],' | ',mx[7,2],' | ',mx[8,2],' | ',mx[9,2],' | ',mx[10,2],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,3],' | ',mx[2,3],' | ',mx[3,3],' | ',mx[4,3],' | ',mx[5,3],' | ',mx[6,3],' | ',mx[7,3],' | ',mx[8,3],' | ',mx[9,3],' | ',mx[10,3],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,4],' | ',mx[2,4],' | ',mx[3,4],' | ',mx[4,4],' | ',mx[5,4],' | ',mx[6,4],' | ',mx[7,4],' | ',mx[8,4],' | ',mx[9,4],' | ',mx[10,4],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,5],' | ',mx[2,5],' | ',mx[3,5],' | ',mx[4,5],' | ',mx[5,5],' | ',mx[6,5],' | ',mx[7,5],' | ',mx[8,5],' | ',mx[9,5],' | ',mx[10,5],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,6],' | ',mx[2,6],' | ',mx[3,6],' | ',mx[4,6],' | ',mx[5,6],' | ',mx[6,6],' | ',mx[7,6],' | ',mx[8,6],' | ',mx[9,6],' | ',mx[10,6],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,7],' | ',mx[2,7],' | ',mx[3,7],' | ',mx[4,7],' | ',mx[5,7],' | ',mx[6,7],' | ',mx[7,7],' | ',mx[8,7],' | ',mx[9,7],' | ',mx[10,7],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,8],' | ',mx[2,8],' | ',mx[3,8],' | ',mx[4,8],' | ',mx[5,8],' | ',mx[6,8],' | ',mx[7,8],' | ',mx[8,8],' | ',mx[9,8],' | ',mx[10,8],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,9],' | ',mx[2,9],' | ',mx[3,9],' | ',mx[4,9],' | ',mx[5,9],' | ',mx[6,9],' | ',mx[7,9],' | ',mx[8,9],' | ',mx[9,9],' | ',mx[10,9],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
writeln( '| | | | | | | | | | |');
writeln( '| ',mx[1,10],' | ',mx[2,10],' | ',mx[3,10],' | ',mx[4,10],' | ',mx[5,10],' | ',mx[6,10],' | ',mx[7,10],' | ',mx[8,10],' | ',mx[9,10],' | ',mx[10,10],' |');
writeln( '| | | | | | | | | | |');
writeln( '-----------------------------------------');
readln;


if mx[a,b]=1 then
begin
write('hai perso!');
readln;
end
else
begin
repeat
writeln('Inserire colonna: ');
readln(a);
writeln('Inserire riga:');
readln(b);
until mx[a,b]=1;
readln;
end;
readln;
end.
Ho dei problemi :
il primo e che non riesco a chiedere le coordinate...
il secondo sull'until ho messo finche trovi una bomba...ma non e cosi il gioco e che non so cosa fare...
poi volevo chiederti come faccio a fare un campo meglio e come faccio a far si che quado non i sono mine vengano aperte anche le altre ... [uhm]
Ti sarei molto grato se mi risponderai in linguaggio pascal
Avatar utente
iNVIoLaBLe
Neo Iscritto
Neo Iscritto
 
Messaggi: 3
Iscritto il: gio apr 19, 2007 8:12 pm
Località: Treviso

Messaggioda Silver Black » lun apr 23, 2007 12:38 pm

iNVIoLaBLe ha scritto:il primo e che non riesco a chiedere le coordinate...


Già così lo fai:

Codice: Seleziona tutto
writeln('Inserire colonna: ');
readln(a);
writeln('Inserire riga:');
readln(b);



il secondo sull'until ho messo finche trovi una bomba...ma non e cosi il gioco e che non so cosa fare...


Come no? Il gioco continua finchè non trovi una bomba o non scopri tutte le caselle libere.


poi volevo chiederti come faccio a fare un campo meglio e come faccio a far si che quado non i sono mine vengano aperte anche le altre ... [uhm]


Controlli le altre caselline e se vedi che sono vuote le scopri. Devi inizializzare a l'array del campo da gioco inserendo casualmente 10 mine, inserendo i numeri che indicano il numero di mine adiacenti e un numero che indica casella vuota (puoi mettere -1 per casella vuota, 0 per mina e un numero > 0 per indicare il numero di mine adiacenti).


Ti sarei molto grato se mi risponderai in linguaggio pascal


No, non ti faccio il programma e non do codice sorgente di un programma completo per principio. [nonono]
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising