Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - [Risolto] Snake
Forum - Pascal - [Risolto] Snake

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Sorgente adesso funzionante.

Posto di seguito il codice:
Codice sorgente - presumibilmente Delphi

  1. {Da fare: sistema la formattazione dei migliori punteggi e sistema configurabilità}
  2.  
  3. program snake;
  4.  
  5. uses crt;
  6.  
  7. type
  8.         registro=record
  9.         valutazione:integer;
  10.         nome:string[15];
  11.         punteggio:integer;
  12.         tempo:integer;
  13.         {data:string[10];}
  14. end;
  15.  
  16. var
  17.         contenitore:array[1..1920] of integer;
  18.         coda:array[1..20] of integer;
  19.         a,m,k,n,x,y,unita,contatore_premio,punteggio,x_premio,y_premio,codificato,contatore_menu:integer;
  20.         sconfitta,vittoria,goal,fine_gioco,flag,move:boolean;
  21.         pulsante:char;
  22.         mappa:string[15];
  23.         player:string[10];
  24.         tempo:real;
  25.         f:textfile;
  26.         t:file of registro;
  27.         archivio:array[1..5] of registro;
  28.         buffer:registro;
  29.         difficolta,frequenza_premio:integer;
  30.  
  31. {Per esportare i punteggi alla fine del gioco}
  32. procedure esporta_punteggi;
  33. var
  34.         t:integer;
  35.         f:file of registro;
  36. begin
  37. assign(f,'records.ger');
  38. rewrite(f);
  39. t:=0;
  40. for T:=1 to k do
  41. write(f,archivio[t]);
  42. close(f);
  43. end;
  44.  
  45. {Per visualizzare i migliori punteggi da menu}
  46. procedure visualizza_punteggi;
  47. var
  48.         v:integer;
  49.         tastus:char;
  50.         esci:boolean;
  51. begin
  52. esci:=false;
  53. repeat
  54. if keypressed then
  55. begin
  56. tastus:=readkey;
  57. if tastus=#27 then esci:=true;
  58. end;
  59. clrscr;
  60. writeln('Valutazione        Giocatore        Punteggio        Tempo        Data');
  61. textbackground(2); textcolor(4);
  62. v:=0;
  63.  
  64.  
  65. for v:=1 to 5 do {Da sistemare la formattazione}
  66. begin
  67.         write(archivio[v].valutazione);
  68.         write('              ');
  69.         write(archivio[v].nome);
  70.         write('              ');
  71.         write(archivio[v].punteggio);
  72.         write('              ');
  73.         write(archivio[v].tempo);
  74.         writeln('              ');
  75. end;
  76. delay(400);
  77. until esci;
  78. end;
  79.  
  80. {Se non esiste il registro dei migliori punteggi}
  81. procedure non_esiste;
  82. var
  83.         f:file of registro;
  84.         i:integer;
  85. begin
  86. assign(f,'records.ger');
  87. rewrite(f);
  88. i:=0;
  89. buffer.tempo:=0;
  90. buffer.nome:='Nessuno';
  91. buffer.punteggio:=0;
  92. buffer.valutazione:=0;
  93. for i:=1 to 5 do write(f,buffer);
  94. close(f);
  95. end;
  96.  
  97.  
  98. {Inserire un nuovo punteggio massimo}
  99. procedure inserisci_valore(nuovo_valore:registro);
  100. var
  101.         i:integer;
  102.         fine:boolean;
  103. begin
  104. fine:=false;
  105. i:=0;
  106. for i:=1 to k do
  107. begin
  108.         if (nuovo_valore.valutazione>archivio[i].valutazione) and (fine=false) then
  109.         begin
  110.         archivio[i]:=nuovo_valore;
  111.         fine:=true;
  112.         end;
  113. end;
  114. end;
  115.  
  116. {Importatore dei punteggi}
  117. procedure importa_punteggi;
  118. var f:file of registro;
  119. begin
  120. assign(f,'records.ger');
  121. reset(f);
  122. k:=0;
  123. while not eof(f) do
  124. begin
  125. k:=k+1;
  126. read(f,archivio[k]);
  127. end;
  128. close(f);
  129. end;
  130.  
  131.  
  132.  
  133. {Procedura per importare la mappa}
  134. procedure importa_mappa(mappa_da_importare:string);
  135. var
  136.         f:textfile;
  137.         {percorso:string[25];}
  138. begin
  139. a:=0;
  140. assign(f,mappa_da_importare);
  141. reset(f);
  142. while not eof(f) do
  143. begin
  144. a:=a+1;
  145. read(f,contenitore[a]);
  146. end;
  147. close(f);
  148. end;
  149.  
  150. {Procedura che disegna la mappa}
  151. procedure disegna_mappa;
  152. var
  153.         i,x_muro,y_muro:integer;
  154. begin
  155. textbackground(6);
  156. textcolor(0);
  157.         for i:=1 to a-1 do
  158.         begin
  159.                 x_muro:=contenitore[i] mod 100;
  160.                 y_muro:=(contenitore[i] - x_muro) div 100;
  161.                 gotoxy(x_muro,y_muro);
  162.                 write('#');
  163.         end;
  164. end;
  165.  
  166. {Funzione che verifica la posizione del serpente}
  167. function verifica(x_serpe,y_serpe:integer):boolean;
  168. var cont,serpentino:integer;
  169. begin
  170. verifica:=false;
  171. serpentino:=y_serpe*100+x_serpe;
  172. for cont:=1 to a-1 do
  173.         begin
  174.         if serpentino=contenitore[cont] then verifica:=true;
  175.         end;
  176. cont:=0;
  177.  
  178. if unita>4 then
  179. begin
  180. for cont:=2 to unita do
  181.         begin
  182.         if serpentino=coda[cont] then verifica:=true;
  183.         end;
  184. end;
  185.  
  186. end;
  187.  
  188. {Procedura che disegna il serpente}
  189. procedure disegna_serpe;
  190. var
  191.         x_coda,y_coda,w:integer;
  192.         tasto:char;
  193. begin
  194. w:=0;
  195.  
  196. if x=81 then x:=0;
  197. if x=-1 then x:=80;
  198. if y=23 then y:=0;
  199. if y=-1 then y:=22;
  200. if keypressed then
  201. begin
  202. tasto:=readkey;
  203. if tasto=#72 then
  204.         begin
  205.         n:=-1;
  206.         m:=0;
  207.         end;
  208. if tasto=#80 then
  209.         begin
  210.         n:=1;
  211.         m:=0;
  212.         end;
  213. if tasto=#77 then
  214.         begin
  215.         m:=1;
  216.         n:=0;
  217.         end;
  218. if tasto=#75 then
  219.         begin
  220.         n:=0;
  221.         m:=-1;
  222.         end;
  223. if tasto=#27 then fine_gioco:=true;
  224. end;
  225. gotoxy(x,y);
  226. x:=x+m;
  227. y:=y+n;
  228. gotoxy(x,y);
  229. textcolor(2);
  230.  
  231. if sqrt(sqr(x-x_premio)+sqr(y-y_premio))<3 then write('@') else write ('0');
  232.  
  233. if unita>=1 then
  234. begin
  235. for w:=1 to unita do
  236. begin
  237.         x_coda:=coda[w] mod 100;
  238.         y_coda:=(coda[w] - x_coda) div 100;
  239.         gotoxy(x_coda,y_coda);
  240.         write('o');
  241. end;
  242. w:=0;
  243. for w:=unita downto 2 do coda[w]:=coda[w-1];
  244. end;
  245.  
  246. coda[1]:=y*100+x;
  247. sconfitta:=verifica(x,y);
  248. end;
  249.  
  250. {Editor}
  251. procedure editor;
  252. var
  253.         d,a,b:integer;
  254.         tasto:char;
  255.         f:textfile;
  256.         exit:boolean;
  257.         punti:array[1..1000] of integer;
  258.         salvataggio:string[15];
  259. begin
  260. clrscr;
  261. exit:=false;
  262. a:=0;
  263. b:=0;
  264. d:=0;
  265. gotoxy(1,1);
  266. write('Nome mappa: '); readln(salvataggio);
  267. clrscr;
  268. repeat
  269. if a=81 then a:=80;
  270. if a=-1 then a:=1;
  271. if b=23 then b:=22;
  272. if b=-1 then b:=1;
  273. gotoxy(a,b);
  274. tasto:=readkey;
  275. if tasto=char(0) then tasto:=readkey;
  276. if tasto=char(77) then a:=a+1;
  277. if tasto=char(75) then a:=a-1;
  278. if tasto=char(72) then b:=b-1;
  279. if tasto=char(80) then b:=b+1;
  280. if tasto=char(13) then
  281.         begin
  282.         d:=d+1;
  283.         punti[d]:=b*100+a;
  284.         write('#');
  285.         end;
  286. if tasto=char(27) then exit:=true;
  287. until exit;
  288. a:=0;
  289. assign(f,salvataggio);
  290. rewrite(f);
  291. for a:=1 to d do
  292. begin
  293. write(f,punti[a]);
  294. write(f,' ');
  295. end;
  296. close(f);
  297. end;
  298.  
  299.  
  300. {Generatore premi}
  301. procedure genera_premio;
  302. var
  303.         cont:integer;
  304.         differente:boolean;
  305. begin
  306. if (contatore_premio mod frequenza_premio = 1) or goal then
  307. begin
  308.         repeat
  309.         begin
  310.                 delay(125);
  311.                 tempo:=tempo+0.125;
  312.                 randomize;
  313.                 differente:=true;
  314.                 x_premio:=trunc((random()*80)+1);
  315.                 y_premio:=trunc((random()*22)+1);
  316.                 codificato:=y_premio*100+x_premio;
  317.         for cont:=1 to a-1 do
  318.                 begin
  319.                 if (codificato=contenitore[cont]) or (codificato=y*100+x) then differente:=false;
  320.                 end;
  321.         end;
  322.         until differente;
  323. if goal then unita:=unita+1;
  324. end;
  325. textcolor(14);
  326. gotoxy(x_premio,y_premio);
  327. write('X');
  328. end;
  329.  
  330. {main del gioco}
  331. procedure gioca;
  332.  
  333. var
  334.         diverso:boolean;
  335.         cont:integer;
  336.         mod_player:string;
  337.         indice_modifica:integer;
  338.  
  339. begin
  340. importa_mappa(mappa);
  341. sconfitta:=false;
  342. vittoria:=false;
  343. punteggio:=0;
  344. unita:=0;
  345. tempo:=0;
  346. cont:=0;
  347. m:=1;
  348. n:=0;
  349. repeat
  350.         begin
  351.                 delay(125);
  352.                 tempo:=tempo+0.125;
  353.                 randomize;
  354.                 diverso:=true;
  355.                 x:=trunc((random()*80)+1);
  356.                 y:=trunc((random()*22)+1);
  357.                 codificato:=y*100+x;
  358.         for cont:=1 to a-1 do
  359.                 begin
  360.                 if codificato=contenitore[cont] then diverso:=false;
  361.                 end;
  362.         end;
  363. until diverso;
  364.  
  365. contatore_premio:=frequenza_premio;
  366. while (sconfitta=false) and (vittoria=false) and (fine_gioco=false) do
  367. begin
  368.         if punteggio=20000 then vittoria:=true;
  369.         clrscr;
  370.         contatore_premio:=contatore_premio+1;
  371.         genera_premio;
  372.         disegna_mappa;
  373.         goal:=false;
  374.         if codificato=y*100+x then goal:=true;
  375.         if goal then punteggio:=punteggio+100;
  376.         disegna_serpe;
  377.         gotoxy(2,24);
  378.         textcolor(0);
  379.         write('Player: ',player);
  380.         textcolor(4);
  381.         write('   ');
  382.         write('Punteggio: ',punteggio);
  383.         write('   ');
  384.         tempo:=tempo+0.0625;
  385.         textcolor(1);
  386.         write('Tempo (in sec): ',trunc(tempo));
  387.         write('   ');
  388.         textcolor(7);
  389.         write('Valutazione: ',trunc(punteggio/tempo));
  390.         gotoxy(x,y);
  391.         delay(difficolta);      {questo diventera il grado di difficolta}
  392. end;
  393. delay(800);
  394. clrscr;
  395. textbackground(0);
  396. textcolor(red);
  397. gotoxy(35,10);
  398. write('Hai perso! :( :(');
  399. delay(600);
  400.  
  401. mod_player:=player;
  402.  
  403. for indice_modifica := length(player) to 10 do
  404. mod_player:=mod_player+' ';
  405.  
  406. buffer.tempo:=trunc(tempo);
  407. buffer.nome:=mod_player;
  408. buffer.punteggio:=punteggio;
  409. buffer.valutazione:=trunc(punteggio/tempo);
  410. inserisci_valore(buffer);
  411. gotoxy(35,12);
  412. write('Punteggio salvato ;)');
  413. delay(600);
  414. textcolor(white);
  415. end;
  416.  
  417. procedure configura;
  418. var
  419.         todo:integer;
  420.         scelto:string[10];
  421.  
  422. begin
  423. clrscr;
  424. gotoxy(1,1);
  425. writeln('Cosa vuoi configurare?');
  426. writeln(' ');
  427. writeln('1- Difficoltà');
  428. writeln('2- Frequenza comparsa premi');
  429. writeln('3- Colori gioco');
  430. writeln('4- Audio');
  431. writeln(' ');
  432. writeln('Scelta: '); readln(todo);
  433.  
  434. case todo of
  435. 1:      begin
  436.         clrscr;
  437.         write('Difficoltà (facile/media/difficile): '); readln(scelto);
  438.         if scelto='facile' then difficolta:=250 else if scelto='difficile' then difficolta:=63 else difficolta:=125;
  439.         clrscr;
  440.         end;
  441.  
  442. 2:      begin
  443.         clrscr;
  444.         write('Ogni quanto deve cambiare posizione il premio? (raramente/normalmente/frequentemente)'); readln(scelto);
  445.         if scelto='raramente' then frequenza_premio:=160 else if scelto='frequentemente' then frequenza_premio:=40 else frequenza_premio:=80;
  446.         clrscr;
  447.         end;
  448.  
  449. {3:}
  450.  
  451. {4:}
  452.  
  453. {5:}
  454.  
  455. end;
  456. end;
  457.  
  458.  
  459.  
  460. {Menu}
  461. begin
  462. {$I-}
  463. assign(t,'records.ger');
  464. reset(t);
  465. {$I+}  { ripristino il blocco degli errori}
  466. if IOresult=0 then
  467. begin
  468. close(t);
  469. importa_punteggi;
  470. end
  471. else
  472. begin
  473. non_esiste;
  474. importa_punteggi;
  475. end;
  476.  
  477. {$I-}
  478. assign(f,'default');
  479. reset(f);
  480. {$I+}
  481. if IOresult<>0 then begin rewrite(f); close(f) end;
  482.  
  483.  
  484.  
  485. clrscr;
  486. write('Come ti chiami? '); read(player);
  487. {inizializzo le impostazioni}
  488. difficolta:=125;
  489. frequenza_premio:=80;
  490. {fine inizializzazione}
  491. contatore_menu:=0;
  492. flag:=false;
  493. move:=false;
  494. mappa:='default';
  495.  
  496.         textcolor(red);
  497.         textbackground(0);
  498.         gotoxy(1,1); writeln('Ciao ',player,', cosa vuoi fare?');      
  499.         textcolor(white);
  500.         gotoxy(30,5); writeln('Giocare');
  501.         textcolor(white);
  502.         gotoxy(30,7); writeln('Visualizzare i migliori punteggi');
  503.         gotoxy(30,9); writeln('Creare una mappa personalizzata');
  504.         gotoxy(30,11); writeln('Modificare le impostazioni');
  505.         gotoxy(30,13); writeln('Uscire');
  506.  
  507. repeat
  508. if move=false then
  509. begin
  510.         repeat
  511.                 pulsante:=readkey;
  512.         until (pulsante=#80) or (pulsante=#72) or (pulsante=#27);
  513.  
  514.         if (pulsante=#80) then contatore_menu:=contatore_menu+1;
  515.         if (pulsante=#72) then contatore_menu:=contatore_menu-1;
  516.         if (pulsante=#27) then flag:=true;
  517. end;
  518. move:=false;
  519.  
  520. if contatore_menu=6 then contatore_menu:=1;
  521. if contatore_menu=0 then contatore_menu:=6;
  522.  
  523.  
  524. case contatore_menu of
  525.  
  526. 1:      begin
  527.         clrscr;
  528.         textcolor(white);      
  529.         textbackground(0);
  530.         gotoxy(1,1); writeln('Ciao ',player,', cosa vuoi fare?');      
  531.         textcolor(red);
  532.         gotoxy(30,5); writeln('Giocare');
  533.         textcolor(white);
  534.         gotoxy(30,7); writeln('Visualizzare i migliori punteggi');
  535.         gotoxy(30,9); writeln('Creare una mappa personalizzata');
  536.         gotoxy(30,11); writeln('Modificare le impostazioni');
  537.         gotoxy(30,13); writeln('Uscire');
  538.         repeat
  539.         begin
  540.         pulsante:=readkey;
  541.         if (pulsante=#13) or (pulsante=#77) then
  542.                         begin
  543.                         sconfitta:=false;
  544.                         vittoria:=false;
  545.                         move:=true;
  546.                         gioca;
  547.                         end;
  548.         if pulsante=#80 then begin contatore_menu:=contatore_menu+1; move:=true end;
  549.         if pulsante=#72 then begin contatore_menu:=contatore_menu-1; move:=true end;
  550.         if pulsante=#27 then flag:=true;
  551.         end;
  552.         until (pulsante=#13) or (pulsante=#80) or (pulsante=#72) or (pulsante=#27) or (pulsante=#77);
  553.  
  554.         end;
  555.  
  556. 2:      begin
  557.         clrscr;
  558.         textcolor(white);      
  559.         textbackground(0);
  560.         gotoxy(1,1); writeln('Ciao ',player,', cosa vuoi fare?');      
  561.         gotoxy(30,5); writeln('Giocare');
  562.         textcolor(red);
  563.         gotoxy(30,7); writeln('Visualizzare i migliori punteggi');
  564.         textcolor(white);
  565.         gotoxy(30,9); writeln('Creare una mappa personalizzata');
  566.         gotoxy(30,11); writeln('Modificare le impostazioni');
  567.         gotoxy(30,13); writeln('Uscire');
  568.         repeat
  569.         begin
  570.         pulsante:=readkey;
  571.         if (pulsante=#13) or (pulsante=#77) then begin visualizza_punteggi; delay(1000); textcolor(white); textbackground(0); move:=true end;
  572.         if pulsante=#80 then begin contatore_menu:=contatore_menu+1; move:=true end;
  573.         if pulsante=#72 then begin contatore_menu:=contatore_menu-1; move:=true end;
  574.         if pulsante=#27 then flag:=true;
  575.         end;
  576.         until (pulsante=#13) or (pulsante=#80) or (pulsante=#72) or (pulsante=#27) or (pulsante=#77);
  577.         end;
  578.  
  579. 3:      begin
  580.         clrscr;
  581.         textcolor(white);      
  582.         textbackground(0);
  583.         gotoxy(1,1); writeln('Ciao ',player,', cosa vuoi fare?');      
  584.         gotoxy(30,5); writeln('Giocare');
  585.         gotoxy(30,7); writeln('Visualizzare i migliori punteggi');
  586.         textcolor(red);
  587.         gotoxy(30,9); writeln('Creare una mappa personalizzata');
  588.         textcolor(white);
  589.         gotoxy(30,11); writeln('Modificare le impostazioni');
  590.         gotoxy(30,13); writeln('Uscire');
  591.         repeat
  592.         begin
  593.                 pulsante:=readkey;
  594.                 if (pulsante=#13) or (pulsante=#77) then
  595.                         begin
  596.                         editor;
  597.                         move:=true;
  598.                         end;
  599.                 if pulsante=#80 then begin contatore_menu:=contatore_menu+1; move:=true end;
  600.                 if pulsante=#72 then begin contatore_menu:=contatore_menu-1; move:=true end;
  601.                 if pulsante=#27 then flag:=true;
  602.         end;
  603.         until (pulsante=#13) or (pulsante=#80) or (pulsante=#72) or (pulsante=#27) or (pulsante=#77);
  604.         end;
  605.  
  606. 4:      begin
  607.         clrscr;
  608.         textcolor(white);      
  609.         textbackground(0);
  610.         gotoxy(1,1); writeln('Ciao ',player,', cosa vuoi fare?');      
  611.         gotoxy(30,5); writeln('Giocare');
  612.         gotoxy(30,7); writeln('Visualizzare i migliori punteggi');
  613.         gotoxy(30,9); writeln('Creare una mappa personalizzata');
  614.         textcolor(red);
  615.         gotoxy(30,11); writeln('Modificare le impostazioni');
  616.         textcolor(white);
  617.         gotoxy(30,13); writeln('Uscire');
  618.         repeat
  619.         begin
  620.                 pulsante:=readkey;
  621.                 if (pulsante=#13) or (pulsante=#77) then
  622.                         begin
  623.                         configura;
  624.                         move:=true;
  625.                         end;
  626.                 if pulsante=#80 then begin contatore_menu:=contatore_menu+1; move:=true end;
  627.                 if pulsante=#72 then begin contatore_menu:=contatore_menu-1; move:=true end;
  628.                 if pulsante=#27 then flag:=true;
  629.         end;
  630.         until (pulsante=#13) or (pulsante=#80) or (pulsante=#72) or (pulsante=#27) or (pulsante=#77);
  631.         end;
  632.  
  633. 5:      begin
  634.         clrscr;
  635.         textcolor(white);      
  636.         textbackground(0);
  637.         gotoxy(1,1); writeln('Ciao ',player,', cosa vuoi fare?');      
  638.         gotoxy(30,5); writeln('Giocare');
  639.         gotoxy(30,7); writeln('Visualizzare i migliori punteggi');
  640.         gotoxy(30,9); writeln('Creare una mappa personalizzata');
  641.         gotoxy(30,11); writeln('Modificare le impostazioni');
  642.         textcolor(red);
  643.         gotoxy(30,13); writeln('Uscire');      
  644.         repeat
  645.         begin
  646.                 pulsante:=readkey;
  647.                 if (pulsante=#13) or (pulsante=#77) then flag:=true;
  648.                 if pulsante=#80 then begin contatore_menu:=contatore_menu+1; move:=true end;
  649.                 if pulsante=#72 then begin contatore_menu:=contatore_menu-1; move:=true end;
  650.                 if pulsante=#27 then flag:=true;
  651.         end;
  652.         until (pulsante=#13) or (pulsante=#77) or (pulsante=#80) or (pulsante=#72) or (pulsante=#27);
  653.         end;
  654. end;
  655.  
  656. until flag;
  657. textcolor(white);
  658. clrscr;
  659. gotoxy(25,9);
  660. writeln('Snake 1.0');
  661. writeln(' ');
  662. writeln(' ');
  663. writeln('Gioco realizzato da Francesco Marrone (alias Giarados).');
  664. writeln('Questo software viene distribuito in quanto shareware.');
  665. writeln('Nella speranza sia stato di vostro gradimento');
  666. writeln('vi porgo i miei ringraziamenti per aver giocato.');
  667. delay(4000);
  668. clrscr;
  669. esporta_punteggi;
  670. end.



Se qualcuno ha qualche idea/critica per migliorare il sorgente sono qui proprio per imparare quindi qualsiasi cosa è ben accetta.

Ultima modifica effettuata da il 22/03/2010 alle 22:30
PM Quote
Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 16:13
Domenica, 21/03/2010
ho trovato un errore nella procedura scambia

Codice sorgente - presumibilmente Pascal

  1. procedure scambia(valore1,valore2:registro);
  2. begin
  3.  buffer:=valore1;
  4.  valore1:=valore2;
  5.  valore2:=buffer;
  6. end;



La prima istruzzione della procedura tu hai scritto "valore1:=buffer" cosi facendo nn ti effetua lo scambio

Ultima modifica effettuata da djleo il 21/03/2010 alle 16:15
PM Quote
Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 16:41
Domenica, 21/03/2010
Mi da un errore di runtime non trova un file e nn riesco a capire quale

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:42
Domenica, 21/03/2010
devi creare nella cartella dove sta l'eseguibile un file chiamato snake.conf e all'interno scrivi 0..

PM Quote
Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 16:53
Domenica, 21/03/2010
Fatto ma da sempre lo stesso errore

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:56
Domenica, 21/03/2010
Non so proprio che potrebbe essere..il problema sta o nella procedura di scrittura dei migliori punteggi o in quella di lettura da file..sto impazzendo..

PM Quote
Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 17:21
Domenica, 21/03/2010
la mappa defalut dov'è

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:24
Domenica, 21/03/2010
Dovresti crearla con l'editor..ma dovrebbe funzionare anche senza la mappa se non ricordo male..

PM Quote
Avatar
djleo (Member)
Pro


Messaggi: 72
Iscritto: 07/03/2010

Segnala al moderatore
Postato alle 17:32
Domenica, 21/03/2010
Ho modificato la procedura editor
si usano i trasti w s a d


Codice sorgente - presumibilmente Delphi

  1. procedure editor;
  2. var d,a,b:integer;
  3.     tasto:char;
  4.     f:text;
  5.     exi:boolean;
  6.     punti:array[1..1000] of integer;
  7.     salvataggio:string[15];
  8. begin
  9.  clrscr;
  10.  exi:=false;
  11.  a:=0;
  12.  b:=0;
  13.  d:=0;
  14.  gotoxy(1,1);
  15.  write('Nome mappa: '); readln(salvataggio);
  16.  clrscr;
  17.  repeat
  18.   if a=81 then a:=80;
  19.   if a=-1 then a:=1;
  20.   if b=23 then b:=22;
  21.   if b=-1 then b:=1;
  22.   gotoxy(a,b);
  23.   tasto:=readkey;
  24.   if tasto='d' then a:=a+1;
  25.   if tasto='a' then a:=a-1;
  26.   if tasto='w' then b:=b-1;
  27.   if tasto='s' then b:=b+1;
  28.   if tasto=#13 then
  29.                      begin
  30.                       d:=d+1;
  31.                       punti[d]:=b*100+a;
  32.                       write('#');
  33.                    end;
  34.   if tasto=char(27) then exi:=true;
  35.  until exi;
  36.  a:=0;
  37.  assign(f,salvataggio);
  38.  rewrite(f);
  39.  for a:=1 to d do
  40.   begin
  41.    write(f,punti[a]);
  42.    write(f,' ');
  43.   end;
  44.  close(f);
  45. end;


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo