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
Tetris - tetris.pas

tetris.pas

Caricato da: Leodema98
Scarica il programma completo

  1. Program tetris;
  2. uses crt,dos;
  3.  
  4. var spazio:array[2..15,1..23] of byte;
  5.     x,y,cx,cy,c,pos,r,nr,nnr,vel,lev:byte;
  6.     score,bscore,pezzi:integer;
  7.     com,answer:char;
  8.     stop,gameover,drop:boolean;
  9.     percorso:string[30];
  10.     tscore:text;
  11.  
  12.  
  13. procedure I;
  14.  
  15. begin
  16.   textcolor(12);
  17.   if (spazio[7,3]<>0) or (spazio[8,3]<>0) or (spazio[9,3]<>0) or (spazio[10,3]<>0) then
  18.     gameover:=true
  19.                                                               else
  20.     begin
  21.     gotoxy(11,2);
  22.     repeat
  23.       stop:=false;
  24.       x:=wherex;
  25.       y:=wherey;
  26.       case pos of
  27.       1:if (spazio[x-4,y+1]=0) and (spazio[x-3,y+1]=0) and (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  28.           begin
  29.           gotoxy(x-4,y);
  30.           write('    ');
  31.           gotoxy(x-4,y+1);
  32.           write('ÛÛÛÛ')
  33.           end
  34.                                                                       else
  35.           stop:=true;
  36.       2:if (spazio[x-1,y+1]=0) then
  37.           begin
  38.           gotoxy(x-1,y-3);
  39.           write(' ');
  40.           gotoxy(x-1,y-2);
  41.           write(' ');
  42.           gotoxy(x-1,y-1);
  43.           write(' ');
  44.           gotoxy(x-1,y);
  45.           write(' ');
  46.           gotoxy(x-1,y-2);
  47.           write('Û');
  48.           gotoxy(x-1,y-1);
  49.           write('Û');
  50.           gotoxy(x-1,y);
  51.           write('Û');
  52.           gotoxy(x-1,y+1);
  53.           write('Û')
  54.           end
  55.                                                                       else
  56.           stop:=true;
  57.       end;
  58.       for c:=1 to 10 do
  59.         begin
  60.         if drop=false then
  61.           if stop=false then
  62.             delay(vel)
  63.                         else
  64.             delay(30);
  65.         if keypressed then
  66.           begin
  67.           com:=readkey;
  68.           x:=wherex;
  69.           y:=wherey;
  70.           case com of
  71.           #0:begin
  72.              com:=readkey;
  73.              if 'K'=com then com:='a';
  74.              if 'M'=com then com:='d';
  75.              if 'H'=com then com:='w';
  76.              if 'P'=com then com:='s'
  77.              end
  78.           end;
  79.           case pos of
  80.           1:begin
  81.             if com='a' then
  82.               if (spazio[x-5,y]=0) then
  83.                 begin
  84.                 stop:=false;
  85.                 gotoxy(x-4,y);
  86.                 write('    ');
  87.                 gotoxy(x-5,y);
  88.                 write('ÛÛÛÛ')
  89.                 end;
  90.             if com='d' then
  91.               if (spazio[x,y]=0) then
  92.                 begin
  93.                 stop:=false;
  94.                 gotoxy(x-4,y);
  95.                 write('    ');
  96.                 gotoxy(x-3,y);
  97.                 write('ÛÛÛÛ')
  98.                 end;
  99.             if com='w' then
  100.               if (spazio[x-3,y-2]=0) and (spazio[x-3,y-1]=0) and (spazio[x-3,y+1]=0) then
  101.                 begin
  102.                 stop:=false;
  103.                 pos:=2;
  104.                 gotoxy(x-4,y);
  105.                 write('    ');
  106.                 gotoxy(x-3,y-2);
  107.                 write('Û');
  108.                 gotoxy(x-3,y-1);
  109.                 write('Û');
  110.                 gotoxy(x-3,y);
  111.                 write('Û');
  112.                 gotoxy(x-3,y+1);
  113.                 write('Û');
  114.                 gotoxy(x-2,y+1)
  115.                 end;
  116.             if com='s' then
  117.               break;
  118.             if com=' ' then
  119.               drop:=true;
  120.             if com=chr(27) then
  121.               begin
  122.               x:=wherex;
  123.               y:=wherey;
  124.               textcolor(7);
  125.               gotoxy(50,9);
  126.               write('PAUSA');
  127.               gotoxy(41,11);
  128.               write('premi invio per continuare');
  129.               readln;
  130.               gotoxy(50,9);
  131.               clreol;
  132.               gotoxy(41,11);
  133.               clreol;
  134.               textcolor(12);
  135.               gotoxy(x,y)
  136.               end
  137.             end;
  138.  
  139.           2:begin
  140.             if com='a' then
  141.               if (spazio[x-2,y-3]=0) and (spazio[x-2,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x-2,y]=0) then
  142.                 begin
  143.                 stop:=false;
  144.                 gotoxy(x-1,y-3);
  145.                 write(' ');
  146.                 gotoxy(x-1,y-2);
  147.                 write(' ');
  148.                 gotoxy(x-1,y-1);
  149.                 write(' ');
  150.                 gotoxy(x-1,y);
  151.                 write(' ');
  152.                 gotoxy(x-2,y-3);
  153.                 write('Û');
  154.                 gotoxy(x-2,y-2);
  155.                 write('Û');
  156.                 gotoxy(x-2,y-1);
  157.                 write('Û');
  158.                 gotoxy(x-2,y);
  159.                 write('Û')
  160.                 end;
  161.             if com='d' then
  162.               if (spazio[x,y-3]=0) and (spazio[x,y-2]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  163.                 begin
  164.                 stop:=false;
  165.                 gotoxy(x-1,y-3);
  166.                 write(' ');
  167.                 gotoxy(x-1,y-2);
  168.                 write(' ');
  169.                 gotoxy(x-1,y-1);
  170.                 write(' ');
  171.                 gotoxy(x-1,y);
  172.                 write(' ');
  173.                 gotoxy(x,y-3);
  174.                 write('Û');
  175.                 gotoxy(x,y-2);
  176.                 write('Û');
  177.                 gotoxy(x,y-1);
  178.                 write('Û');
  179.                 gotoxy(x,y);
  180.                 write('Û')
  181.                 end;
  182.             if com='w' then
  183.               if (spazio[x-2,y-1]=0) and (spazio[x,y-1]=0) and (spazio[x+1,y-1]=0) then
  184.                 begin
  185.                 stop:=false;
  186.                 pos:=1;
  187.                 gotoxy(x-1,y-3);
  188.                 write(' ');
  189.                 gotoxy(x-1,y-2);
  190.                 write(' ');
  191.                 gotoxy(x-1,y-1);
  192.                 write(' ');
  193.                 gotoxy(x-1,y);
  194.                 write(' ');
  195.                 gotoxy(x-2,y-1);
  196.                 write('ÛÛÛÛ');
  197.                 gotoxy(x+2,y-1)
  198.                 end;
  199.             if com='s' then
  200.               break;
  201.             if com=' ' then
  202.               drop:=true;
  203.             if com=chr(27) then
  204.               begin
  205.               x:=wherex;
  206.               y:=wherey;
  207.               textcolor(7);
  208.               gotoxy(50,9);
  209.               write('PAUSA');
  210.               gotoxy(41,11);
  211.               write('premi invio per continuare');
  212.               readln;
  213.               gotoxy(50,9);
  214.               clreol;
  215.               gotoxy(41,11);
  216.               clreol;
  217.               textcolor(12);
  218.               gotoxy(x,y)
  219.               end
  220.             end
  221.             end
  222.           end
  223.         end
  224.     until stop;
  225.     if drop then
  226.       delay(vel);
  227.     x:=wherex;
  228.     y:=wherey;
  229.     case pos of
  230.     1:begin
  231.       spazio[x-4,y]:=12;
  232.       spazio[x-3,y]:=12;
  233.       spazio[x-2,y]:=12;
  234.       spazio[x-1,y]:=12
  235.       end;
  236.     2:begin
  237.       spazio[x-1,y-3]:=12;
  238.       spazio[x-1,y-2]:=12;
  239.       spazio[x-1,y-1]:=12;
  240.       spazio[x-1,y]:=12
  241.       end
  242.     end
  243.     end
  244. end;
  245.  
  246. procedure J;
  247.  
  248. begin
  249.   textcolor(15);
  250.   if (spazio[7,3]<>0) or (spazio[8,3]<>0) or (spazio[9,3]<>0) then
  251.     gameover:=true
  252.                                                               else
  253.     begin
  254.     gotoxy(10,2);
  255.     repeat
  256.       stop:=false;
  257.       x:=wherex;
  258.       y:=wherey;
  259.       case pos of
  260.       1:if (spazio[x-3,y+1]=0) and (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  261.           begin
  262.           gotoxy(x-3,y-1);
  263.           write(' ');
  264.           gotoxy(x-3,y);
  265.           write('   ');
  266.           gotoxy(x-3,y);
  267.           write('Û');
  268.           gotoxy(x-3,y+1);
  269.           write('ÛÛÛ')
  270.           end
  271.                                                                       else
  272.           stop:=true;
  273.       2:if (spazio[x,y-1]=0) and (spazio[x-1,y+1]=0) then
  274.           begin
  275.           gotoxy(x-1,y-2);
  276.           write('  ');
  277.           gotoxy(x-1,y-1);
  278.           write(' ');
  279.           gotoxy(x-1,y);
  280.           write(' ');
  281.           gotoxy(x-1,y-1);
  282.           write('ÛÛ');
  283.           gotoxy(x-1,y);
  284.           write('Û');
  285.           gotoxy(x-1,y+1);
  286.           write('Û')
  287.           end
  288.                                                                       else
  289.           stop:=true;
  290.       3:if (spazio[x-1,y+1]=0) and (spazio[x-3,y]=0) and (spazio[x-2,y]=0) then
  291.           begin
  292.           gotoxy(x-3,y-1);
  293.           write('   ');
  294.           gotoxy(x-1,y);
  295.           write(' ');
  296.           gotoxy(x-3,y);
  297.           write('ÛÛÛ');
  298.           gotoxy(x-1,y+1);
  299.           write('Û')
  300.           end
  301.                                                                       else
  302.           stop:=true;
  303.       4:if (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  304.           begin
  305.           gotoxy(x-1,y-2);
  306.           write(' ');
  307.           gotoxy(x-1,y-1);
  308.           write(' ');
  309.           gotoxy(x-2,y);
  310.           write('  ');
  311.           gotoxy(x-1,y-1);
  312.           write('Û');
  313.           gotoxy(x-1,y);
  314.           write('Û');
  315.           gotoxy(x-2,y+1);
  316.           write('ÛÛ')
  317.           end
  318.                                                                       else
  319.           stop:=true;
  320.       end;
  321.       for c:=1 to 10 do
  322.         begin
  323.         if drop=false then
  324.           if stop=false then
  325.             delay(vel)
  326.                         else
  327.             delay(30);
  328.         if keypressed then
  329.           begin
  330.           com:=readkey;
  331.           x:=wherex;
  332.           y:=wherey;
  333.           case com of
  334.           #0:begin
  335.              com:=readkey;
  336.              if 'K'=com then com:='a';
  337.              if 'M'=com then com:='d';
  338.              if 'H'=com then com:='w';
  339.              if 'P'=com then com:='s'
  340.              end
  341.           end;
  342.           case pos of
  343.           1:begin
  344.             if com='a' then
  345.               if (spazio[x-4,y-1]=0) and (spazio[x-4,y]=0) then
  346.                 begin
  347.                 stop:=false;
  348.                 gotoxy(x-3,y-1);
  349.                 write(' ');
  350.                 gotoxy(x-3,y);
  351.                 write('   ');
  352.                 gotoxy(x-4,y-1);
  353.                 write('Û');
  354.                 gotoxy(x-4,y);
  355.                 write('ÛÛÛ')
  356.                 end;
  357.             if com='d' then
  358.               if (spazio[x-2,y-1]=0) and (spazio[x,y]=0) then
  359.                 begin
  360.                 stop:=false;
  361.                 gotoxy(x-3,y-1);
  362.                 write(' ');
  363.                 gotoxy(x-3,y);
  364.                 write('   ');
  365.                 gotoxy(x-2,y-1);
  366.                 write('Û');
  367.                 gotoxy(x-2,y);
  368.                 write('ÛÛÛ')
  369.                 end;
  370.             if com='w' then
  371.               if (spazio[x-2,y-1]=0) and (spazio[x-1,y-1]=0) and (spazio[x-2,y+1]=0) then
  372.                 begin
  373.                 stop:=false;
  374.                 pos:=2;
  375.                 gotoxy(x-3,y-1);
  376.                 write(' ');
  377.                 gotoxy(x-3,y);
  378.                 write('   ');
  379.                 gotoxy(x-2,y-1);
  380.                 write('ÛÛ');
  381.                 gotoxy(x-2,y);
  382.                 write('Û');
  383.                 gotoxy(x-2,y+1);
  384.                 write('Û');
  385.                 gotoxy(x-1,y+1)
  386.                 end;
  387.             if com='s' then
  388.               break;
  389.             if com=' ' then
  390.               drop:=true;
  391.             if com=chr(27) then
  392.               begin
  393.               x:=wherex;
  394.               y:=wherey;
  395.               textcolor(7);
  396.               gotoxy(50,9);
  397.               write('PAUSA');
  398.               gotoxy(41,11);
  399.               write('premi invio per continuare');
  400.               readln;
  401.               gotoxy(50,9);
  402.               clreol;
  403.               gotoxy(41,11);
  404.               clreol;
  405.               textcolor(15);
  406.               gotoxy(x,y)
  407.               end
  408.             end;
  409.  
  410.           2:begin
  411.             if com='a' then
  412.               if (spazio[x-2,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x-2,y]=0) then
  413.                 begin
  414.                 stop:=false;
  415.                 gotoxy(x-1,y-2);
  416.                 write('  ');
  417.                 gotoxy(x-1,y-1);
  418.                 write(' ');
  419.                 gotoxy(x-1,y);
  420.                 write(' ');
  421.                 gotoxy(x-2,y-2);
  422.                 write('ÛÛ');
  423.                 gotoxy(x-2,y-1);
  424.                 write('Û');
  425.                 gotoxy(x-2,y);
  426.                 write('Û')
  427.                 end;
  428.             if com='d' then
  429.               if (spazio[x+1,y-2]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  430.                 begin
  431.                 stop:=false;
  432.                 gotoxy(x-1,y-2);
  433.                 write('  ');
  434.                 gotoxy(x-1,y-1);
  435.                 write(' ');
  436.                 gotoxy(x-1,y);
  437.                 write(' ');
  438.                 gotoxy(x,y-2);
  439.                 write('ÛÛ');
  440.                 gotoxy(x,y-1);
  441.                 write('Û');
  442.                 gotoxy(x,y);
  443.                 write('Û')
  444.                 end;
  445.             if com='w' then
  446.               if (spazio[x-2,y-1]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  447.                 begin
  448.                 stop:=false;
  449.                 pos:=3;
  450.                 gotoxy(x-1,y-2);
  451.                 write('  ');
  452.                 gotoxy(x-1,y-1);
  453.                 write(' ');
  454.                 gotoxy(x-1,y);
  455.                 write(' ');
  456.                 gotoxy(x-2,y-1);
  457.                 write('ÛÛÛ');
  458.                 gotoxy(x,y);
  459.                 write('Û');
  460.                 gotoxy(x+1,y)
  461.                 end;
  462.             if com='s' then
  463.               break;
  464.             if com=' ' then
  465.               drop:=true;
  466.             if com=chr(27) then
  467.               begin
  468.               x:=wherex;
  469.               y:=wherey;
  470.               textcolor(7);
  471.               gotoxy(50,9);
  472.               write('PAUSA');
  473.               gotoxy(41,11);
  474.               write('premi invio per continuare');
  475.               readln;
  476.               gotoxy(50,9);
  477.               clreol;
  478.               gotoxy(41,11);
  479.               clreol;
  480.               textcolor(15);
  481.               gotoxy(x,y)
  482.               end
  483.             end;
  484.  
  485.           3:begin
  486.             if com='a' then
  487.               if (spazio[x-4,y-1]=0) and (spazio[x-2,y]=0) then
  488.                 begin
  489.                 stop:=false;
  490.                 gotoxy(x-3,y-1);
  491.                 write('   ');
  492.                 gotoxy(x-1,y);
  493.                 write(' ');
  494.                 gotoxy(x-4,y-1);
  495.                 write('ÛÛÛ');
  496.                 gotoxy(x-2,y);
  497.                 write('Û')
  498.                 end;
  499.             if com='d' then
  500.               if (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  501.                 begin
  502.                 gotoxy(x-3,y-1);
  503.                 write('   ');
  504.                 gotoxy(x-1,y);
  505.                 write(' ');
  506.                 gotoxy(x-2,y-1);
  507.                 write('ÛÛÛ');
  508.                 gotoxy(x,y);
  509.                 write('Û')
  510.                 end;
  511.             if com='w' then
  512.               if (spazio[x-2,y-2]=0) and (spazio[x-3,y]=0) and (spazio[x-2,y]=0) then
  513.                 begin
  514.                 stop:=false;
  515.                 pos:=4;
  516.                 gotoxy(x-3,y-1);
  517.                 write('   ');
  518.                 gotoxy(x-1,y);
  519.                 write(' ');
  520.                 gotoxy(x-2,y-2);
  521.                 write('Û');
  522.                 gotoxy(x-2,y-1);
  523.                 write('Û');
  524.                 gotoxy(x-3,y);
  525.                 write('ÛÛ');
  526.                 gotoxy(x-1,y)
  527.                 end;
  528.             if com='s' then
  529.               break;
  530.             if com=' ' then
  531.               drop:=true;
  532.             if com=chr(27) then
  533.               begin
  534.               x:=wherex;
  535.               y:=wherey;
  536.               textcolor(7);
  537.               gotoxy(50,9);
  538.               write('PAUSA');
  539.               gotoxy(41,11);
  540.               write('premi invio per continuare');
  541.               readln;
  542.               gotoxy(50,9);
  543.               clreol;
  544.               gotoxy(41,11);
  545.               clreol;
  546.               textcolor(15);
  547.               gotoxy(x,y)
  548.               end
  549.             end;
  550.  
  551.           4:begin
  552.             if com='a' then
  553.               if (spazio[x-2,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x-3,y]=0) then
  554.                 begin
  555.                 stop:=false;
  556.                 gotoxy(x-1,y-2);
  557.                 write(' ');
  558.                 gotoxy(x-1,y-1);
  559.                 write(' ');
  560.                 gotoxy(x-2,y);
  561.                 write('  ');
  562.                 gotoxy(x-2,y-2);
  563.                 write('Û');
  564.                 gotoxy(x-2,y-1);
  565.                 write('Û');
  566.                 gotoxy(x-3,y);
  567.                 write('ÛÛ')
  568.                 end;
  569.             if com='d' then
  570.               if (spazio[x,y-2]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  571.                 begin
  572.                 stop:=false;
  573.                 gotoxy(x-1,y-2);
  574.                 write(' ');
  575.                 gotoxy(x-1,y-1);
  576.                 write(' ');
  577.                 gotoxy(x-2,y);
  578.                 write('  ');
  579.                 gotoxy(x,y-2);
  580.                 write('Û');
  581.                 gotoxy(x,y-1);
  582.                 write('Û');
  583.                 gotoxy(x-1,y);
  584.                 write('ÛÛ')
  585.                 end;
  586.             if com='w' then
  587.               if (spazio[x-2,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x,y-1]=0) then
  588.                 begin
  589.                 stop:=false;
  590.                 pos:=1;
  591.                 gotoxy(x-1,y-2);
  592.                 write(' ');
  593.                 gotoxy(x-1,y-1);
  594.                 write(' ');
  595.                 gotoxy(x-2,y);
  596.                 write('  ');
  597.                 gotoxy(x-2,y-2);
  598.                 write('Û');
  599.                 gotoxy(x-2,y-1);
  600.                 write('ÛÛÛ');
  601.                 gotoxy(x+1,y-1)
  602.                 end;
  603.             if com='s' then
  604.               break;
  605.             if com=' ' then
  606.               drop:=true;
  607.             if com=chr(27) then
  608.               begin
  609.               x:=wherex;
  610.               y:=wherey;
  611.               textcolor(7);
  612.               gotoxy(50,9);
  613.               write('PAUSA');
  614.               gotoxy(41,11);
  615.               write('premi invio per continuare');
  616.               readln;
  617.               gotoxy(50,9);
  618.               clreol;
  619.               gotoxy(41,11);
  620.               clreol;
  621.               textcolor(15);
  622.               gotoxy(x,y)
  623.               end
  624.             end
  625.             end
  626.           end
  627.         end
  628.     until stop;
  629.     if drop then
  630.       delay(vel);
  631.     x:=wherex;
  632.     y:=wherey;
  633.     case pos of
  634.     1:begin
  635.       spazio[x-3,y-1]:=15;
  636.       spazio[x-3,y]:=15;
  637.       spazio[x-2,y]:=15;
  638.       spazio[x-1,y]:=15
  639.       end;
  640.     2:begin
  641.       spazio[x-1,y-2]:=15;
  642.       spazio[x,y-2]:=15;
  643.       spazio[x-1,y-1]:=15;
  644.       spazio[x-1,y]:=15
  645.       end;
  646.     3:begin
  647.       spazio[x-3,y-1]:=15;
  648.       spazio[x-2,y-1]:=15;
  649.       spazio[x-1,y-1]:=15;
  650.       spazio[x-1,y]:=15
  651.       end;
  652.     4:begin
  653.       spazio[x-1,y-2]:=15;
  654.       spazio[x-1,y-1]:=15;
  655.       spazio[x-2,y]:=15;
  656.       spazio[x-1,y]:=15
  657.       end
  658.     end
  659.     end
  660. end;
  661.  
  662. procedure L;
  663.  
  664. begin
  665.   textcolor(13);
  666.   if (spazio[7,3]<>0) or (spazio[8,3]<>0) or (spazio[9,3]<>0) then
  667.     gameover:=true
  668.                                                               else
  669.     begin
  670.     gotoxy(10,2);
  671.     repeat
  672.       stop:=false;
  673.       x:=wherex;
  674.       y:=wherey;
  675.       case pos of
  676.       1:if (spazio[x-3,y+1]=0) and (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  677.           begin
  678.           gotoxy(x-1,y-1);
  679.           write(' ');
  680.           gotoxy(x-3,y);
  681.           write('   ');
  682.           gotoxy(x-1,y);
  683.           write('Û');
  684.           gotoxy(x-3,y+1);
  685.           write('ÛÛÛ')
  686.           end
  687.                                                                       else
  688.           stop:=true;
  689.       2:if (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  690.           begin
  691.           gotoxy(x-2,y-2);
  692.           write(' ');
  693.           gotoxy(x-2,y-1);
  694.           write(' ');
  695.           gotoxy(x-2,y);
  696.           write('  ');
  697.           gotoxy(x-2,y-1);
  698.           write('Û');
  699.           gotoxy(x-2,y);
  700.           write('Û');
  701.           gotoxy(x-2,y+1);
  702.           write('ÛÛ')
  703.           end
  704.                                                                       else
  705.           stop:=true;
  706.       3:if (spazio[x-1,y+1]=0) and (spazio[x,y]=0) and (spazio[x+1,y]=0) then
  707.           begin
  708.           gotoxy(x-1,y-1);
  709.           write('   ');
  710.           gotoxy(x-1,y);
  711.           write(' ');
  712.           gotoxy(x-1,y);
  713.           write('ÛÛÛ');
  714.           gotoxy(x-1,y+1);
  715.           write('Û')
  716.           end
  717.                                                                       else
  718.           stop:=true;
  719.       4:if (spazio[x-2,y-1]=0) and (spazio[x-1,y+1]=0) then
  720.           begin
  721.           gotoxy(x-2,y-2);
  722.           write('  ');
  723.           gotoxy(x-1,y-1);
  724.           write(' ');
  725.           gotoxy(x-1,y);
  726.           write(' ');
  727.           gotoxy(x-2,y-1);
  728.           write('ÛÛ');
  729.           gotoxy(x-1,y);
  730.           write('Û');
  731.           gotoxy(x-1,y+1);
  732.           write('Û')
  733.           end
  734.                                                                       else
  735.           stop:=true;
  736.       end;
  737.       for c:=1 to 10 do
  738.         begin
  739.         if drop=false then
  740.           if stop=false then
  741.             delay(vel)
  742.                         else
  743.             delay(30);
  744.         if keypressed then
  745.           begin
  746.           com:=readkey;
  747.           x:=wherex;
  748.           y:=wherey;
  749.           case com of
  750.           #0:begin
  751.              com:=readkey;
  752.              if 'K'=com then com:='a';
  753.              if 'M'=com then com:='d';
  754.              if 'H'=com then com:='w';
  755.              if 'P'=com then com:='s'
  756.              end
  757.           end;
  758.           case pos of
  759.           1:begin
  760.             if com='a' then
  761.               if (spazio[x-2,y-1]=0) and (spazio[x-4,y]=0) then
  762.                 begin
  763.                 stop:=false;
  764.                 gotoxy(x-1,y-1);
  765.                 write(' ');
  766.                 gotoxy(x-3,y);
  767.                 write('   ');
  768.                 gotoxy(x-2,y-1);
  769.                 write('Û');
  770.                 gotoxy(x-4,y);
  771.                 write('ÛÛÛ')
  772.                 end;
  773.             if com='d' then
  774.               if (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  775.                 begin
  776.                 stop:=false;
  777.                 gotoxy(x-1,y-1);
  778.                 write(' ');
  779.                 gotoxy(x-3,y);
  780.                 write('   ');
  781.                 gotoxy(x,y-1);
  782.                 write('Û');
  783.                 gotoxy(x-2,y);
  784.                 write('ÛÛÛ')
  785.                 end;
  786.             if com='w' then
  787.               if (spazio[x-2,y-1]=0) and (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  788.                 begin
  789.                 stop:=false;
  790.                 pos:=2;
  791.                 gotoxy(x-1,y-1);
  792.                 write(' ');
  793.                 gotoxy(x-3,y);
  794.                 write('   ');
  795.                 gotoxy(x-2,y-1);
  796.                 write('Û');
  797.                 gotoxy(x-2,y);
  798.                 write('Û');
  799.                 gotoxy(x-2,y+1);
  800.                 write('ÛÛ');
  801.                 gotoxy(x,y+1)
  802.                 end;
  803.             if com='s' then
  804.               break;
  805.             if com=' ' then
  806.               drop:=true;
  807.             if com=chr(27) then
  808.               begin
  809.               x:=wherex;
  810.               y:=wherey;
  811.               textcolor(7);
  812.               gotoxy(50,9);
  813.               write('PAUSA');
  814.               gotoxy(41,11);
  815.               write('premi invio per continuare');
  816.               readln;
  817.               gotoxy(50,9);
  818.               clreol;
  819.               gotoxy(41,11);
  820.               clreol;
  821.               textcolor(13);
  822.               gotoxy(x,y)
  823.               end
  824.             end;
  825.  
  826.           2:begin
  827.             if com='a' then
  828.               if (spazio[x-3,y-2]=0) and (spazio[x-3,y-1]=0) and (spazio[x-3,y]=0) then
  829.                 begin
  830.                 stop:=false;
  831.                 gotoxy(x-2,y-2);
  832.                 write(' ');
  833.                 gotoxy(x-2,y-1);
  834.                 write(' ');
  835.                 gotoxy(x-2,y);
  836.                 write('  ');
  837.                 gotoxy(x-3,y-2);
  838.                 write('Û');
  839.                 gotoxy(x-3,y-1);
  840.                 write('Û');
  841.                 gotoxy(x-3,y);
  842.                 write('ÛÛ')
  843.                 end;
  844.             if com='d' then
  845.               if (spazio[x-1,y-2]=0) and (spazio[x-1,y-1]=0) and (spazio[x,y]=0) then
  846.                 begin
  847.                 stop:=false;
  848.                 gotoxy(x-2,y-2);
  849.                 write(' ');
  850.                 gotoxy(x-2,y-1);
  851.                 write(' ');
  852.                 gotoxy(x-2,y);
  853.                 write('  ');
  854.                 gotoxy(x-1,y-2);
  855.                 write('Û');
  856.                 gotoxy(x-1,y-1);
  857.                 write('Û');
  858.                 gotoxy(x-1,y);
  859.                 write('ÛÛ')
  860.                 end;
  861.             if com='w' then
  862.               if (spazio[x-3,y-1]=0) and (spazio[x-1,y-1]=0) and (spazio[x-3,y]=0) then
  863.                 begin
  864.                 stop:=false;
  865.                 pos:=3;
  866.                 gotoxy(x-2,y-2);
  867.                 write(' ');
  868.                 gotoxy(x-2,y-1);
  869.                 write(' ');
  870.                 gotoxy(x-2,y);
  871.                 write('  ');
  872.                 gotoxy(x-3,y-1);
  873.                 write('ÛÛÛ');
  874.                 gotoxy(x-3,y);
  875.                 write('Û');
  876.                 gotoxy(x-2,y)
  877.                 end;
  878.             if com='s' then
  879.               break;
  880.             if com=' ' then
  881.               drop:=true;
  882.             if com=chr(27) then
  883.               begin
  884.               x:=wherex;
  885.               y:=wherey;
  886.               textcolor(7);
  887.               gotoxy(50,9);
  888.               write('PAUSA');
  889.               gotoxy(41,11);
  890.               write('premi invio per continuare');
  891.               readln;
  892.               gotoxy(50,9);
  893.               clreol;
  894.               gotoxy(41,11);
  895.               clreol;
  896.               textcolor(13);
  897.               gotoxy(x,y)
  898.               end
  899.             end;
  900.  
  901.           3:begin
  902.             if com='a' then
  903.               if (spazio[x-2,y-1]=0) and (spazio[x-2,y]=0) then
  904.                 begin
  905.                 stop:=false;
  906.                 gotoxy(x-1,y-1);
  907.                 write('   ');
  908.                 gotoxy(x-1,y);
  909.                 write(' ');
  910.                 gotoxy(x-2,y-1);
  911.                 write('ÛÛÛ');
  912.                 gotoxy(x-2,y);
  913.                 write('Û')
  914.                 end;
  915.             if com='d' then
  916.               if (spazio[x+2,y-1]=0) and (spazio[x,y]=0) then
  917.                 begin
  918.                 gotoxy(x-1,y-1);
  919.                 write('   ');
  920.                 gotoxy(x-1,y);
  921.                 write(' ');
  922.                 gotoxy(x,y-1);
  923.                 write('ÛÛÛ');
  924.                 gotoxy(x,y);
  925.                 write('Û')
  926.                 end;
  927.             if com='w' then
  928.               if (spazio[x-1,y-2]=0) and (spazio[x,y-2]=0) and (spazio[x,y]=0) then
  929.                 begin
  930.                 stop:=false;
  931.                 pos:=4;
  932.                 gotoxy(x-1,y-1);
  933.                 write('   ');
  934.                 gotoxy(x-1,y);
  935.                 write(' ');
  936.                 gotoxy(x-1,y-2);
  937.                 write('ÛÛ');
  938.                 gotoxy(x,y-1);
  939.                 write('Û');
  940.                 gotoxy(x,y);
  941.                 write('Û');
  942.                 gotoxy(x+1,y)
  943.                 end;
  944.             if com='s' then
  945.               break;
  946.             if com=' ' then
  947.               drop:=true;
  948.             if com=chr(27) then
  949.               begin
  950.               x:=wherex;
  951.               y:=wherey;
  952.               textcolor(7);
  953.               gotoxy(50,9);
  954.               write('PAUSA');
  955.               gotoxy(41,11);
  956.               write('premi invio per continuare');
  957.               readln;
  958.               gotoxy(50,9);
  959.               clreol;
  960.               gotoxy(41,11);
  961.               clreol;
  962.               textcolor(13);
  963.               gotoxy(x,y)
  964.               end
  965.             end;
  966.  
  967.           4:begin
  968.             if com='a' then
  969.               if (spazio[x-3,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x-2,y]=0) then
  970.                 begin
  971.                 stop:=false;
  972.                 gotoxy(x-2,y-2);
  973.                 write('  ');
  974.                 gotoxy(x-1,y-1);
  975.                 write(' ');
  976.                 gotoxy(x-1,y);
  977.                 write(' ');
  978.                 gotoxy(x-3,y-2);
  979.                 write('ÛÛ');
  980.                 gotoxy(x-2,y-1);
  981.                 write('Û');
  982.                 gotoxy(x-2,y);
  983.                 write('Û')
  984.                 end;
  985.             if com='d' then
  986.               if (spazio[x,y-2]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  987.                 begin
  988.                 stop:=false;
  989.                 gotoxy(x-2,y-2);
  990.                 write('  ');
  991.                 gotoxy(x-1,y-1);
  992.                 write(' ');
  993.                 gotoxy(x-1,y);
  994.                 write(' ');
  995.                 gotoxy(x-1,y-2);
  996.                 write('ÛÛ');
  997.                 gotoxy(x,y-1);
  998.                 write('Û');
  999.                 gotoxy(x,y);
  1000.                 write('Û')
  1001.                 end;
  1002.             if com='w' then
  1003.               if (spazio[x,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x,y-1]=0) then
  1004.                 begin
  1005.                 stop:=false;
  1006.                 pos:=1;
  1007.                 gotoxy(x-2,y-2);
  1008.                 write('  ');
  1009.                 gotoxy(x-1,y-1);
  1010.                 write(' ');
  1011.                 gotoxy(x-1,y);
  1012.                 write(' ');
  1013.                 gotoxy(x,y-2);
  1014.                 write('Û');
  1015.                 gotoxy(x-2,y-1);
  1016.                 write('ÛÛÛ');
  1017.                 gotoxy(x+1,y-1)
  1018.                 end;
  1019.             if com='s' then
  1020.               break;
  1021.             if com=' ' then
  1022.               drop:=true;
  1023.             if com=chr(27) then
  1024.               begin
  1025.               x:=wherex;
  1026.               y:=wherey;
  1027.               textcolor(7);
  1028.               gotoxy(50,9);
  1029.               write('PAUSA');
  1030.               gotoxy(41,11);
  1031.               write('premi invio per continuare');
  1032.               readln;
  1033.               gotoxy(50,9);
  1034.               clreol;
  1035.               gotoxy(41,11);
  1036.               clreol;
  1037.               textcolor(13);
  1038.               gotoxy(x,y)
  1039.               end
  1040.             end
  1041.             end
  1042.           end
  1043.         end
  1044.     until stop;
  1045.     if drop then
  1046.       delay(vel);
  1047.     x:=wherex;
  1048.     y:=wherey;
  1049.     case pos of
  1050.     1:begin
  1051.       spazio[x-1,y-1]:=13;
  1052.       spazio[x-3,y]:=13;
  1053.       spazio[x-2,y]:=13;
  1054.       spazio[x-1,y]:=13
  1055.       end;
  1056.     2:begin
  1057.       spazio[x-2,y-2]:=13;
  1058.       spazio[x-2,y-1]:=13;
  1059.       spazio[x-2,y]:=13;
  1060.       spazio[x-1,y]:=13
  1061.       end;
  1062.     3:begin
  1063.       spazio[x-1,y-1]:=13;
  1064.       spazio[x,y-1]:=13;
  1065.       spazio[x+1,y-1]:=13;
  1066.       spazio[x-1,y]:=13
  1067.       end;
  1068.     4:begin
  1069.       spazio[x-2,y-2]:=13;
  1070.       spazio[x-1,y-2]:=13;
  1071.       spazio[x-1,y-1]:=13;
  1072.       spazio[x-1,y]:=13
  1073.       end
  1074.     end
  1075.     end
  1076. end;
  1077.  
  1078. procedure O;
  1079.  
  1080. begin
  1081.   textcolor(9);
  1082.   if (spazio[8,3]<>0) or (spazio[9,3]<>0) then
  1083.     gameover:=true
  1084.                                           else
  1085.     begin
  1086.     gotoxy(10,2);
  1087.     repeat
  1088.       stop:=false;
  1089.       x:=wherex;
  1090.       y:=wherey;
  1091.       if (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  1092.         begin
  1093.         gotoxy(x-2,y-1);
  1094.         write('  ');
  1095.         gotoxy(x-2,y);
  1096.         write('  ');
  1097.         gotoxy(x-2,y);
  1098.         write('ÛÛ');
  1099.         gotoxy(x-2,y+1);
  1100.         write('ÛÛ')
  1101.         end
  1102.                                                      else
  1103.         stop:=true;
  1104.       for c:=1 to 10 do
  1105.         begin
  1106.         if drop=false then
  1107.           if stop=false then
  1108.             delay(vel)
  1109.                         else
  1110.             delay(30);
  1111.         if keypressed then
  1112.           begin
  1113.           com:=readkey;
  1114.           x:=wherex;
  1115.           y:=wherey;
  1116.           case com of
  1117.           #0:begin
  1118.              com:=readkey;
  1119.              if 'K'=com then com:='a';
  1120.              if 'M'=com then com:='d';
  1121.              if 'H'=com then com:='w';
  1122.              if 'P'=com then com:='s'
  1123.              end
  1124.           end;
  1125.            if com='a' then
  1126.             if (spazio[x-3,y-1]=0) and (spazio[x-3,y]=0) then
  1127.               begin
  1128.               stop:=false;
  1129.               gotoxy(x-2,y-1);
  1130.               write('  ');
  1131.               gotoxy(x-2,y);
  1132.               write('  ');
  1133.               gotoxy(x-3,y-1);
  1134.               write('ÛÛ');
  1135.               gotoxy(x-3,y);
  1136.               write('ÛÛ')
  1137.               end;
  1138.           if com='d' then
  1139.             if (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  1140.               begin
  1141.               stop:=false;
  1142.               gotoxy(x-2,y-1);
  1143.               write('  ');
  1144.               gotoxy(x-2,y);
  1145.               write('  ');
  1146.               gotoxy(x-1,y-1);
  1147.               write('ÛÛ');
  1148.               gotoxy(x-1,y);
  1149.               write('ÛÛ')
  1150.               end;
  1151.           if com='w' then
  1152.             stop:=false;
  1153.           if com='s' then
  1154.             break;
  1155.           if com=' ' then
  1156.             drop:=true;
  1157.           if com=chr(27) then
  1158.             begin
  1159.             x:=wherex;
  1160.             y:=wherey;
  1161.             textcolor(7);
  1162.             gotoxy(50,9);
  1163.             write('PAUSA');
  1164.             gotoxy(41,11);
  1165.             write('premi invio per continuare');
  1166.             readln;
  1167.             gotoxy(50,9);
  1168.             clreol;
  1169.             gotoxy(41,11);
  1170.             clreol;
  1171.             textcolor(9);
  1172.             gotoxy(x,y)
  1173.             end
  1174.           end
  1175.           end
  1176.     until stop;
  1177.     if drop then
  1178.       delay(vel);
  1179.     x:=wherex;
  1180.     y:=wherey;
  1181.     spazio[x-2,y-1]:=9;
  1182.     spazio[x-2,y]:=9;
  1183.     spazio[x-1,y-1]:=9;
  1184.     spazio[x-1,y]:=9
  1185.     end
  1186. end;
  1187.  
  1188.  
  1189. procedure S;
  1190.  
  1191. begin
  1192.   textcolor(10);
  1193.   if(spazio[8,3]<>0) or (spazio[9,3]<>0) then
  1194.     gameover:=true
  1195.                                                               else
  1196.     begin
  1197.     gotoxy(10,2);
  1198.     repeat
  1199.       stop:=false;
  1200.       x:=wherex;
  1201.       y:=wherey;
  1202.       case pos of
  1203.       1:if (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) and (spazio[x,y]=0) then
  1204.           begin
  1205.           gotoxy(x-1,y-1);
  1206.           write('  ');
  1207.           gotoxy(x-2,y);
  1208.           write('  ');
  1209.           gotoxy(x-1,y);
  1210.           write('ÛÛ');
  1211.           gotoxy(x-2,y+1);
  1212.           write('ÛÛ')
  1213.           end
  1214.                                                                       else
  1215.           stop:=true;
  1216.       2:if (spazio[x-1,y+1]=0) and (spazio[x-2,y]=0) then
  1217.           begin
  1218.           gotoxy(x-2,y-2);
  1219.           write(' ');
  1220.           gotoxy(x-2,y-1);
  1221.           write('  ');
  1222.           gotoxy(x-1,y);
  1223.           write(' ');
  1224.           gotoxy(x-2,y-1);
  1225.           write('Û');
  1226.           gotoxy(x-2,y);
  1227.           write('ÛÛ');
  1228.           gotoxy(x-1,y+1);
  1229.           write('Û')
  1230.           end
  1231.                                                                       else
  1232.           stop:=true;
  1233.       end;
  1234.       for c:=1 to 10 do
  1235.         begin
  1236.         if drop=false then
  1237.           if stop=false then
  1238.             delay(vel)
  1239.                         else
  1240.             delay(30);
  1241.         if keypressed then
  1242.           begin
  1243.           com:=readkey;
  1244.           x:=wherex;
  1245.           y:=wherey;
  1246.           case com of
  1247.           #0:begin
  1248.              com:=readkey;
  1249.              if 'K'=com then com:='a';
  1250.              if 'M'=com then com:='d';
  1251.              if 'H'=com then com:='w';
  1252.              if 'P'=com then com:='s'
  1253.              end
  1254.           end;
  1255.           case pos of
  1256.           1:begin
  1257.             if com='a' then
  1258.               if (spazio[x-2,y-1]=0) and (spazio[x-3,y]=0) then
  1259.                 begin
  1260.                 stop:=false;
  1261.                 gotoxy(x-1,y-1);
  1262.                 write('  ');
  1263.                 gotoxy(x-2,y);
  1264.                 write('  ');
  1265.                 gotoxy(x-2,y-1);
  1266.                 write('ÛÛ');
  1267.                 gotoxy(x-3,y);
  1268.                 write('ÛÛ')
  1269.                 end;
  1270.             if com='d' then
  1271.               if (spazio[x+1,y-1]=0) and (spazio[x,y]=0) then
  1272.                 begin
  1273.                 stop:=false;
  1274.                 gotoxy(x-1,y-1);
  1275.                 write('  ');
  1276.                 gotoxy(x-2,y);
  1277.                 write('  ');
  1278.                 gotoxy(x,y-1);
  1279.                 write('ÛÛ');
  1280.                 gotoxy(x-1,y);
  1281.                 write('ÛÛ')
  1282.                 end;
  1283.             if com='w' then
  1284.               if (spazio[x,y]=0) and (spazio[x,y+1]=0) then
  1285.                 begin
  1286.                 stop:=false;
  1287.                 pos:=2;
  1288.                 gotoxy(x-1,y-1);
  1289.                 write('  ');
  1290.                 gotoxy(x-2,y);
  1291.                 write('  ');
  1292.                 gotoxy(x-1,y-1);
  1293.                 write('Û');
  1294.                 gotoxy(x-1,y);
  1295.                 write('ÛÛ');
  1296.                 gotoxy(x,y+1);
  1297.                 write('Û');
  1298.                 gotoxy(x+1,y+1)
  1299.                 end;
  1300.             if com='s' then
  1301.               break;
  1302.             if com=' ' then
  1303.               drop:=true;
  1304.             if com=chr(27) then
  1305.               begin
  1306.               x:=wherex;
  1307.               y:=wherey;
  1308.               textcolor(7);
  1309.               gotoxy(50,9);
  1310.               write('PAUSA');
  1311.               gotoxy(41,11);
  1312.               write('premi invio per continuare');
  1313.               readln;
  1314.               gotoxy(50,9);
  1315.               clreol;
  1316.               gotoxy(41,11);
  1317.               clreol;
  1318.               textcolor(10);
  1319.               gotoxy(x,y)
  1320.               end
  1321.             end;
  1322.  
  1323.           2:begin
  1324.             if com='a' then
  1325.               if (spazio[x-3,y-2]=0) and (spazio[x-3,y-1]=0) and (spazio[x-2,y]=0) then
  1326.                 begin
  1327.                 stop:=false;
  1328.                 gotoxy(x-2,y-2);
  1329.                 write(' ');
  1330.                 gotoxy(x-2,y-1);
  1331.                 write('  ');
  1332.                 gotoxy(x-1,y);
  1333.                 write(' ');
  1334.                 gotoxy(x-3,y-2);
  1335.                 write('Û');
  1336.                 gotoxy(x-3,y-1);
  1337.                 write('ÛÛ');
  1338.                 gotoxy(x-2,y);
  1339.                 write('Û')
  1340.                 end;
  1341.             if com='d' then
  1342.               if (spazio[x-1,y-2]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  1343.                 begin
  1344.                 stop:=false;
  1345.                 gotoxy(x-2,y-2);
  1346.                 write(' ');
  1347.                 gotoxy(x-2,y-1);
  1348.                 write('  ');
  1349.                 gotoxy(x-1,y);
  1350.                 write(' ');
  1351.                 gotoxy(x-1,y-2);
  1352.                 write('Û');
  1353.                 gotoxy(x-1,y-1);
  1354.                 write('ÛÛ');
  1355.                 gotoxy(x,y);
  1356.                 write('Û')
  1357.                 end;
  1358.             if com='w' then
  1359.               if (spazio[x-1,y-2]=0) and (spazio[x-3,y-1]=0) then
  1360.                 begin
  1361.                 stop:=false;
  1362.                 pos:=1;
  1363.                 gotoxy(x-2,y-2);
  1364.                 write(' ');
  1365.                 gotoxy(x-2,y-1);
  1366.                 write('  ');
  1367.                 gotoxy(x-1,y);
  1368.                 write(' ');
  1369.                 gotoxy(x-2,y-2);
  1370.                 write('ÛÛ');
  1371.                 gotoxy(x-3,y-1);
  1372.                 write('ÛÛ');
  1373.                 gotoxy(x-1,y-1)
  1374.                 end;
  1375.             if com='s' then
  1376.               break;
  1377.             if com=' ' then
  1378.               drop:=true;
  1379.             if com=chr(27) then
  1380.               begin
  1381.               x:=wherex;
  1382.               y:=wherey;
  1383.               textcolor(7);
  1384.               gotoxy(50,9);
  1385.               write('PAUSA');
  1386.               gotoxy(41,11);
  1387.               write('premi invio per continuare');
  1388.               readln;
  1389.               gotoxy(50,9);
  1390.               clreol;
  1391.               gotoxy(41,11);
  1392.               clreol;
  1393.               textcolor(10);
  1394.               gotoxy(x,y)
  1395.               end
  1396.             end
  1397.             end
  1398.           end
  1399.         end
  1400.     until stop;
  1401.     if drop then
  1402.       delay(vel);
  1403.     x:=wherex;
  1404.     y:=wherey;
  1405.     case pos of
  1406.     1:begin
  1407.       spazio[x-1,y-1]:=10;
  1408.       spazio[x,y-1]:=10;
  1409.       spazio[x-2,y]:=10;
  1410.       spazio[x-1,y]:=10
  1411.       end;
  1412.     2:begin
  1413.       spazio[x-2,y-2]:=10;
  1414.       spazio[x-2,y-1]:=10;
  1415.       spazio[x-1,y-1]:=10;
  1416.       spazio[x-1,y]:=10
  1417.       end
  1418.     end
  1419.     end
  1420. end;
  1421.  
  1422. procedure T;
  1423.  
  1424. begin
  1425.   textcolor(14);
  1426.   if (spazio[7,3]<>0) or (spazio[8,3]<>0) or (spazio[9,3]<>0) then
  1427.     gameover:=true
  1428.                                                               else
  1429.     begin
  1430.     gotoxy(10,2);
  1431.     repeat
  1432.       stop:=false;
  1433.       x:=wherex;
  1434.       y:=wherey;
  1435.       case pos of
  1436.       1:if (spazio[x-3,y+1]=0) and (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) then
  1437.           begin
  1438.           gotoxy(x-2,y-1);
  1439.           write(' ');
  1440.           gotoxy(x-3,y);
  1441.           write('   ');
  1442.           gotoxy(x-2,y);
  1443.           write('Û');
  1444.           gotoxy(x-3,y+1);
  1445.           write('ÛÛÛ')
  1446.           end
  1447.                                                                       else
  1448.           stop:=true;
  1449.       2:if (spazio[x-1,y+1]=0) and (spazio[x,y]=0) then
  1450.           begin
  1451.           gotoxy(x-1,y-2);
  1452.           write(' ');
  1453.           gotoxy(x-1,y-1);
  1454.           write('  ');
  1455.           gotoxy(x-1,y);
  1456.           write(' ');
  1457.           gotoxy(x-1,y-1);
  1458.           write('Û');
  1459.           gotoxy(x-1,y);
  1460.           write('ÛÛ');
  1461.           gotoxy(x-1,y+1);
  1462.           write('Û')
  1463.           end
  1464.                                                                       else
  1465.           stop:=true;
  1466.       3:if (spazio[x-2,y]=0) and (spazio[x-1,y+1]=0) and (spazio[x,y]=0) then
  1467.           begin
  1468.           gotoxy(x-2,y-1);
  1469.           write('   ');
  1470.           gotoxy(x-1,y);
  1471.           write(' ');
  1472.           gotoxy(x-2,y);
  1473.           write('ÛÛÛ');
  1474.           gotoxy(x-1,y+1);
  1475.           write('Û')
  1476.           end
  1477.                                                                       else
  1478.           stop:=true;
  1479.       4:if (spazio[x-2,y]=0) and (spazio[x-1,y+1]=0) then
  1480.           begin
  1481.           gotoxy(x-1,y-2);
  1482.           write(' ');
  1483.           gotoxy(x-2,y-1);
  1484.           write('  ');
  1485.           gotoxy(x-1,y);
  1486.           write(' ');
  1487.           gotoxy(x-1,y-1);
  1488.           write('Û');
  1489.           gotoxy(x-2,y);
  1490.           write('ÛÛ');
  1491.           gotoxy(x-1,y+1);
  1492.           write('Û')
  1493.           end
  1494.                                                                       else
  1495.           stop:=true;
  1496.       end;
  1497.       for c:=1 to 10 do
  1498.         begin
  1499.         if drop=false then
  1500.           if stop=false then
  1501.             delay(vel)
  1502.                         else
  1503.             delay(30);
  1504.         if keypressed then
  1505.           begin
  1506.           com:=readkey;
  1507.           x:=wherex;
  1508.           y:=wherey;
  1509.           case com of
  1510.           #0:begin
  1511.              com:=readkey;
  1512.              if 'K'=com then com:='a';
  1513.              if 'M'=com then com:='d';
  1514.              if 'H'=com then com:='w';
  1515.              if 'P'=com then com:='s'
  1516.              end
  1517.           end;
  1518.           case pos of
  1519.           1:begin
  1520.             if com='a' then
  1521.               if (spazio[x-3,y-1]=0) and (spazio[x-4,y]=0) then
  1522.                 begin
  1523.                 stop:=false;
  1524.                 gotoxy(x-2,y-1);
  1525.                 write(' ');
  1526.                 gotoxy(x-3,y);
  1527.                 write('   ');
  1528.                 gotoxy(x-3,y-1);
  1529.                 write('Û');
  1530.                 gotoxy(x-4,y);
  1531.                 write('ÛÛÛ')
  1532.                 end;
  1533.             if com='d' then
  1534.               if (spazio[x-1,y-1]=0) and (spazio[x,y]=0) then
  1535.                 begin
  1536.                 stop:=false;
  1537.                 gotoxy(x-2,y-1);
  1538.                 write(' ');
  1539.                 gotoxy(x-3,y);
  1540.                 write('   ');
  1541.                 gotoxy(x-1,y-1);
  1542.                 write('Û');
  1543.                 gotoxy(x-2,y);
  1544.                 write('ÛÛÛ')
  1545.                 end;
  1546.             if com='w' then
  1547.               if spazio[x-2,y+1]=0 then
  1548.                 begin
  1549.                 stop:=false;
  1550.                 pos:=2;
  1551.                 gotoxy(x-3,y);
  1552.                 write(' ');
  1553.                 gotoxy(x-2,y+1);
  1554.                 write('Û');
  1555.                 gotoxy(x-1,y+1)
  1556.                 end;
  1557.             if com='s' then
  1558.               break;
  1559.             if com=' ' then
  1560.               drop:=true;
  1561.             if com=chr(27) then
  1562.               begin
  1563.               x:=wherex;
  1564.               y:=wherey;
  1565.               textcolor(7);
  1566.               gotoxy(50,9);
  1567.               write('PAUSA');
  1568.               gotoxy(41,11);
  1569.               write('premi invio per continuare');
  1570.               readln;
  1571.               gotoxy(50,9);
  1572.               clreol;
  1573.               gotoxy(41,11);
  1574.               clreol;
  1575.               textcolor(14);
  1576.               gotoxy(x,y)
  1577.               end
  1578.             end;
  1579.  
  1580.           2:begin
  1581.             if com='a' then
  1582.               if (spazio[x-2,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x-2,y]=0) then
  1583.                 begin
  1584.                 stop:=false;
  1585.                 gotoxy(x-1,y-2);
  1586.                 write(' ');
  1587.                 gotoxy(x-1,y-1);
  1588.                 write('  ');
  1589.                 gotoxy(x-1,y);
  1590.                 write(' ');
  1591.                 gotoxy(x-2,y-2);
  1592.                 write('Û');
  1593.                 gotoxy(x-2,y-1);
  1594.                 write('ÛÛ');
  1595.                 gotoxy(x-2,y);
  1596.                 write('Û')
  1597.                 end;
  1598.             if com='d' then
  1599.               if (spazio[x,y-2]=0) and (spazio[x+1,y-1]=0) and (spazio[x,y]=0) then
  1600.                 begin
  1601.                 stop:=false;
  1602.                 gotoxy(x-1,y-2);
  1603.                 write(' ');
  1604.                 gotoxy(x-1,y-1);
  1605.                 write('  ');
  1606.                 gotoxy(x-1,y);
  1607.                 write(' ');
  1608.                 gotoxy(x,y-2);
  1609.                 write('Û');
  1610.                 gotoxy(x,y-1);
  1611.                 write('ÛÛ');
  1612.                 gotoxy(x,y);
  1613.                 write('Û')
  1614.                 end;
  1615.             if com='w' then
  1616.               if spazio[x-2,y-1]=0 then
  1617.                 begin
  1618.                 stop:=false;
  1619.                 pos:=3;
  1620.                 gotoxy(x-1,y-2);
  1621.                 write(' ');
  1622.                 gotoxy(x-2,y-1);
  1623.                 write('Û');
  1624.                 gotoxy(x,y)
  1625.                 end;
  1626.             if com='s' then
  1627.               break;
  1628.             if com=' ' then
  1629.               drop:=true;
  1630.             if com=chr(27) then
  1631.               begin
  1632.               x:=wherex;
  1633.               y:=wherey;
  1634.               textcolor(7);
  1635.               gotoxy(50,9);
  1636.               write('PAUSA');
  1637.               gotoxy(41,11);
  1638.               write('premi invio per continuare');
  1639.               readln;
  1640.               gotoxy(50,9);
  1641.               clreol;
  1642.               gotoxy(41,11);
  1643.               clreol;
  1644.               textcolor(14);
  1645.               gotoxy(x,y)
  1646.               end
  1647.             end;
  1648.  
  1649.           3:begin
  1650.             if com='a' then
  1651.               if (spazio[x-3,y-1]=0) and (spazio[x-2,y]=0) then
  1652.                 begin
  1653.                 stop:=false;
  1654.                 gotoxy(x-2,y-1);
  1655.                 write('   ');
  1656.                 gotoxy(x-1,y);
  1657.                 write(' ');
  1658.                 gotoxy(x-3,y-1);
  1659.                 write('ÛÛÛ');
  1660.                 gotoxy(x-2,y);
  1661.                 write('Û')
  1662.                 end;
  1663.             if com='d' then
  1664.               if (spazio[x+1,y-1]=0) and (spazio[x,y]=0) then
  1665.                 begin
  1666.                 gotoxy(x-2,y-1);
  1667.                 write('   ');
  1668.                 gotoxy(x-1,y);
  1669.                 write(' ');
  1670.                 gotoxy(x-1,y-1);
  1671.                 write('ÛÛÛ');
  1672.                 gotoxy(x,y);
  1673.                 write('Û')
  1674.                 end;
  1675.             if com='w' then
  1676.               if spazio[x-1,y-2]=0 then
  1677.                 begin
  1678.                 stop:=false;
  1679.                 pos:=4;
  1680.                 gotoxy(x,y-1);
  1681.                 write(' ');
  1682.                 gotoxy(x-1,y-2);
  1683.                 write('Û');
  1684.                 gotoxy(x,y);
  1685.                 end;
  1686.             if com='s' then
  1687.               break;
  1688.             if com=' ' then
  1689.               drop:=true;
  1690.             if com=chr(27) then
  1691.               begin
  1692.               x:=wherex;
  1693.               y:=wherey;
  1694.               textcolor(7);
  1695.               gotoxy(50,9);
  1696.               write('PAUSA');
  1697.               gotoxy(41,11);
  1698.               write('premi invio per continuare');
  1699.               readln;
  1700.               gotoxy(50,9);
  1701.               clreol;
  1702.               gotoxy(41,11);
  1703.               clreol;
  1704.               textcolor(14);
  1705.               gotoxy(x,y)
  1706.               end
  1707.             end;
  1708.  
  1709.           4:begin
  1710.             if com='a' then
  1711.               if (spazio[x-2,y-2]=0) and (spazio[x-3,y-1]=0) and (spazio[x-2,y]=0) then
  1712.                 begin
  1713.                 stop:=false;
  1714.                 gotoxy(x-1,y-2);
  1715.                 write(' ');
  1716.                 gotoxy(x-2,y-1);
  1717.                 write('  ');
  1718.                 gotoxy(x-1,y);
  1719.                 write(' ');
  1720.                 gotoxy(x-2,y-2);
  1721.                 write('Û');
  1722.                 gotoxy(x-3,y-1);
  1723.                 write('ÛÛ');
  1724.                 gotoxy(x-2,y);
  1725.                 write('Û')
  1726.                 end;
  1727.             if com='d' then
  1728.               if (spazio[x,y-2]=0) and (spazio[x,y-1]=0) and (spazio[x,y]=0) then
  1729.                 begin
  1730.                 stop:=false;
  1731.                 gotoxy(x-1,y-2);
  1732.                 write(' ');
  1733.                 gotoxy(x-2,y-1);
  1734.                 write('  ');
  1735.                 gotoxy(x-1,y);
  1736.                 write(' ');
  1737.                 gotoxy(x,y-2);
  1738.                 write('Û');
  1739.                 gotoxy(x-1,y-1);
  1740.                 write('ÛÛ');
  1741.                 gotoxy(x,y);
  1742.                 write('Û')
  1743.                 end;
  1744.             if com='w' then
  1745.               if spazio[x,y-1]=0 then
  1746.                 begin
  1747.                 stop:=false;
  1748.                 pos:=1;
  1749.                 gotoxy(x-1,y);
  1750.                 write(' ');
  1751.                 gotoxy(x,y-1);
  1752.                 write('Û');
  1753.                 gotoxy(x+1,y-1)
  1754.                 end;
  1755.             if com='s' then
  1756.               break;
  1757.             if com=' ' then
  1758.               drop:=true;
  1759.             if com=chr(27) then
  1760.               begin
  1761.               x:=wherex;
  1762.               y:=wherey;
  1763.               textcolor(7);
  1764.               gotoxy(50,9);
  1765.               write('PAUSA');
  1766.               gotoxy(41,11);
  1767.               write('premi invio per continuare');
  1768.               readln;
  1769.               gotoxy(50,9);
  1770.               clreol;
  1771.               gotoxy(41,11);
  1772.               clreol;
  1773.               textcolor(14);
  1774.               gotoxy(x,y)
  1775.               end
  1776.             end
  1777.             end
  1778.           end
  1779.         end
  1780.     until stop;
  1781.     if drop then
  1782.       delay(vel);
  1783.     x:=wherex;
  1784.     y:=wherey;
  1785.     case pos of
  1786.     1:begin
  1787.       spazio[x-2,y-1]:=14;
  1788.       spazio[x-3,y]:=14;
  1789.       spazio[x-2,y]:=14;
  1790.       spazio[x-1,y]:=14
  1791.       end;
  1792.     2:begin
  1793.       spazio[x-1,y-2]:=14;
  1794.       spazio[x-1,y-1]:=14;
  1795.       spazio[x,y-1]:=14;
  1796.       spazio[x-1,y]:=14
  1797.       end;
  1798.     3:begin
  1799.       spazio[x-2,y-1]:=14;
  1800.       spazio[x-1,y-1]:=14;
  1801.       spazio[x,y-1]:=14;
  1802.       spazio[x-1,y]:=14
  1803.       end;
  1804.     4:begin
  1805.       spazio[x-1,y-2]:=14;
  1806.       spazio[x-2,y-1]:=14;
  1807.       spazio[x-1,y-1]:=14;
  1808.       spazio[x-1,y]:=14
  1809.       end
  1810.     end
  1811.     end
  1812. end;
  1813.  
  1814.  
  1815. procedure Z;
  1816.  
  1817. begin
  1818.   textcolor(11);
  1819.   if(spazio[8,3]<>0) or (spazio[9,3]<>0) then
  1820.     gameover:=true
  1821.                                                               else
  1822.     begin
  1823.     gotoxy(10,2);
  1824.     repeat
  1825.       stop:=false;
  1826.       x:=wherex;
  1827.       y:=wherey;
  1828.       case pos of
  1829.       1:if (spazio[x-2,y+1]=0) and (spazio[x-1,y+1]=0) and (spazio[x-3,y]=0) then
  1830.           begin
  1831.           gotoxy(x-3,y-1);
  1832.           write('  ');
  1833.           gotoxy(x-2,y);
  1834.           write('  ');
  1835.           gotoxy(x-3,y);
  1836.           write('ÛÛ');
  1837.           gotoxy(x-2,y+1);
  1838.           write('ÛÛ')
  1839.           end
  1840.                                                                       else
  1841.           stop:=true;
  1842.       2:if (spazio[x-1,y+1]=0) and (spazio[x,y]=0) then
  1843.           begin
  1844.           gotoxy(x,y-2);
  1845.           write(' ');
  1846.           gotoxy(x-1,y-1);
  1847.           write('  ');
  1848.           gotoxy(x-1,y);
  1849.           write(' ');
  1850.           gotoxy(x,y-1);
  1851.           write('Û');
  1852.           gotoxy(x-1,y);
  1853.           write('ÛÛ');
  1854.           gotoxy(x-1,y+1);
  1855.           write('Û')
  1856.           end
  1857.                                                                       else
  1858.           stop:=true;
  1859.       end;
  1860.       for c:=1 to 10 do
  1861.         begin
  1862.         if drop=false then
  1863.           if stop=false then
  1864.             delay(vel)
  1865.                         else
  1866.             delay(30);
  1867.         if keypressed then
  1868.           begin
  1869.           com:=readkey;
  1870.           x:=wherex;
  1871.           y:=wherey;
  1872.           case com of
  1873.           #0:begin
  1874.              com:=readkey;
  1875.              if 'K'=com then com:='a';
  1876.              if 'M'=com then com:='d';
  1877.              if 'H'=com then com:='w';
  1878.              if 'P'=com then com:='s'
  1879.              end
  1880.           end;
  1881.           case pos of
  1882.           1:begin
  1883.             if com='a' then
  1884.               if (spazio[x-4,y-1]=0) and (spazio[x-3,y]=0) then
  1885.                 begin
  1886.                 stop:=false;
  1887.                 gotoxy(x-3,y-1);
  1888.                 write('  ');
  1889.                 gotoxy(x-2,y);
  1890.                 write('  ');
  1891.                 gotoxy(x-4,y-1);
  1892.                 write('ÛÛ');
  1893.                 gotoxy(x-3,y);
  1894.                 write('ÛÛ')
  1895.                 end;
  1896.             if com='d' then
  1897.               if (spazio[x-1,y-1]=0) and (spazio[x,y]=0) then
  1898.                 begin
  1899.                 stop:=false;
  1900.                 gotoxy(x-3,y-1);
  1901.                 write('  ');
  1902.                 gotoxy(x-2,y);
  1903.                 write('  ');
  1904.                 gotoxy(x-2,y-1);
  1905.                 write('ÛÛ');
  1906.                 gotoxy(x-1,y);
  1907.                 write('ÛÛ')
  1908.                 end;
  1909.             if com='w' then
  1910.               if (spazio[x-3,y]=0) and (spazio[x-3,y+1]=0) then
  1911.                 begin
  1912.                 stop:=false;
  1913.                 pos:=2;
  1914.                 gotoxy(x-3,y-1);
  1915.                 write('  ');
  1916.                 gotoxy(x-2,y);
  1917.                 write('  ');
  1918.                 gotoxy(x-2,y-1);
  1919.                 write('Û');
  1920.                 gotoxy(x-3,y);
  1921.                 write('ÛÛ');
  1922.                 gotoxy(x-3,y+1);
  1923.                 write('Û');
  1924.                 gotoxy(x-2,y+1)
  1925.                 end;
  1926.             if com='s' then
  1927.               break;
  1928.             if com=' ' then
  1929.               drop:=true;
  1930.             if com=chr(27) then
  1931.               begin
  1932.               x:=wherex;
  1933.               y:=wherey;
  1934.               textcolor(7);
  1935.               gotoxy(50,9);
  1936.               write('PAUSA');
  1937.               gotoxy(41,11);
  1938.               write('premi invio per continuare');
  1939.               readln;
  1940.               gotoxy(50,9);
  1941.               clreol;
  1942.               gotoxy(41,11);
  1943.               clreol;
  1944.               textcolor(11);
  1945.               gotoxy(x,y)
  1946.               end
  1947.             end;
  1948.  
  1949.           2:begin
  1950.             if com='a' then
  1951.               if (spazio[x-1,y-2]=0) and (spazio[x-2,y-1]=0) and (spazio[x-2,y]=0) then
  1952.                 begin
  1953.                 stop:=false;
  1954.                 gotoxy(x,y-2);
  1955.                 write(' ');
  1956.                 gotoxy(x-1,y-1);
  1957.                 write('  ');
  1958.                 gotoxy(x-1,y);
  1959.                 write(' ');
  1960.                 gotoxy(x-1,y-2);
  1961.                 write('Û');
  1962.                 gotoxy(x-2,y-1);
  1963.                 write('ÛÛ');
  1964.                 gotoxy(x-2,y);
  1965.                 write('Û')
  1966.                 end;
  1967.             if com='d' then
  1968.               if (spazio[x+1,y-2]=0) and (spazio[x+1,y-1]=0) and (spazio[x,y]=0) then
  1969.                 begin
  1970.                 stop:=false;
  1971.                 gotoxy(x,y-2);
  1972.                 write(' ');
  1973.                 gotoxy(x-1,y-1);
  1974.                 write('  ');
  1975.                 gotoxy(x-1,y);
  1976.                 write(' ');
  1977.                 gotoxy(x+1,y-2);
  1978.                 write('Û');
  1979.                 gotoxy(x,y-1);
  1980.                 write('ÛÛ');
  1981.                 gotoxy(x,y);
  1982.                 write('Û')
  1983.                 end;
  1984.             if com='w' then
  1985.               if (spazio[x-1,y-2]=0) and (spazio[x+1,y-1]=0) then
  1986.                 begin
  1987.                 stop:=false;
  1988.                 pos:=1;
  1989.                 gotoxy(x,y-2);
  1990.                 write(' ');
  1991.                 gotoxy(x-1,y-1);
  1992.                 write('  ');
  1993.                 gotoxy(x-1,y);
  1994.                 write(' ');
  1995.                 gotoxy(x-1,y-2);
  1996.                 write('ÛÛ');
  1997.                 gotoxy(x,y-1);
  1998.                 write('ÛÛ');
  1999.                 gotoxy(x+2,y-1)
  2000.                 end;
  2001.             if com='s' then
  2002.               break;
  2003.             if com=' ' then
  2004.               drop:=true;
  2005.             if com=chr(27) then
  2006.               begin
  2007.               x:=wherex;
  2008.               y:=wherey;
  2009.               textcolor(7);
  2010.               gotoxy(50,9);
  2011.               write('PAUSA');
  2012.               gotoxy(41,11);
  2013.               write('premi invio per continuare');
  2014.               readln;
  2015.               gotoxy(50,9);
  2016.               clreol;
  2017.               gotoxy(41,11);
  2018.               clreol;
  2019.               textcolor(11);
  2020.               gotoxy(x,y)
  2021.               end
  2022.             end
  2023.             end
  2024.           end
  2025.         end
  2026.     until stop;
  2027.     if drop then
  2028.       delay(vel);
  2029.     x:=wherex;
  2030.     y:=wherey;
  2031.     case pos of
  2032.     1:begin
  2033.       spazio[x-3,y-1]:=11;
  2034.       spazio[x-2,y-1]:=11;
  2035.       spazio[x-2,y]:=11;
  2036.       spazio[x-1,y]:=11
  2037.       end;
  2038.     2:begin
  2039.       spazio[x,y-2]:=11;
  2040.       spazio[x-1,y-1]:=11;
  2041.       spazio[x,y-1]:=11;
  2042.       spazio[x-1,y]:=11
  2043.       end
  2044.     end
  2045.     end
  2046. end;
  2047.  
  2048.  
  2049.  
  2050.  
  2051. begin
  2052.   repeat
  2053.     clrscr;
  2054.     randomize;
  2055.     for cx:=4 to 13 do
  2056.       for cy:=2 to 22 do
  2057.        spazio[cx,cy]:=0;
  2058.     for cx:=4 to 13 do
  2059.       begin
  2060.       spazio[cx,23]:=1;
  2061.       spazio[cx,1]:=1
  2062.       end;
  2063.     for cy:=2 to 22 do
  2064.       begin
  2065.       spazio[2,cy]:=1;
  2066.       spazio[3,cy]:=1;
  2067.       spazio[14,cy]:=1;
  2068.       spazio[15,cy]:=1
  2069.       end;
  2070.     pezzi:=0;
  2071.     score:=0;
  2072.     assign(tscore,'tscore.txt');
  2073.     percorso:=fsearch('tscore.txt',getenv(percorso));
  2074.     if percorso='' then
  2075.       begin
  2076.       rewrite(tscore);
  2077.       write(tscore,score);
  2078.       close(tscore)
  2079.       end;
  2080.     reset(tscore);
  2081.     read(tscore,bscore);
  2082.     close(tscore);
  2083.     gameover:=false;
  2084.     cursoroff;
  2085.     writeln;
  2086.     writeln;
  2087.     writeln('  ±          ±  prossimo:            ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ  Û  ÛÛÛÛ ');
  2088.     writeln('  ±          ±                         Û   Û      Û   Û  Û  Û  Û    ');
  2089.     writeln('  ±          ±                         Û   ÛÛÛ    Û   ÛÛÛÛ  Û  ÛÛÛÛ ');
  2090.     writeln('  ±          ±                         Û   Û      Û   Û Û   Û     Û ');
  2091.     writeln('  ±          ±                         Û   ÛÛÛÛ   Û   Û  Û  Û  ÛÛÛÛ ');
  2092.     writeln('  ±          ±                                                      ');
  2093.     writeln('  ±          ±  comandi:                                            ');
  2094.     writeln('  ±          ±                                                      ');
  2095.     writeln('  ±          ±  =sinistra                                          ');
  2096.     writeln('  ±          ±  =destra                                            ');
  2097.     writeln('  ±          ±  =ruota                                             ');
  2098.     writeln('  ±          ±  =aumenta velocita''                                ');
  2099.     writeln('  ±          ±  SPACE=lascia cadere                                 ');
  2100.     writeln('  ±          ±  ESC=pausa                                           ');
  2101.     writeln('  ±          ±                                                      ');
  2102.     writeln('  ±          ±                                                      ');
  2103.     writeln('  ±          ±  livello:                                            ');
  2104.     writeln('  ±          ±  pezzi:                                              ');
  2105.     writeln('  ±          ±  punteggio:                                          ');
  2106.     writeln('  ±          ±  miglior punteggio:                                  ');
  2107.     writeln('  ±±±±±±±±±±±±                                                      ');
  2108.     gotoxy(42,9);
  2109.     write('premi invio per giocare ');
  2110.     readln;
  2111.     gotoxy(42,9);
  2112.     clreol;
  2113.     nnr:=random(7);
  2114.     nr:=random(7);
  2115.     repeat
  2116.       for cx:=4 to 13 do
  2117.         for cy:=3 to 22 do
  2118.           begin
  2119.           gotoxy(cx,cy);
  2120.           if spazio[cx,cy]=0 then
  2121.             begin
  2122.             textcolor(16);
  2123.             write('Û')
  2124.             end
  2125.                              else
  2126.             begin
  2127.             textcolor(spazio[cx,cy]);
  2128.             write('Û')
  2129.             end
  2130.           end;
  2131.       textcolor(7);
  2132.       gotoxy(1,2);
  2133.       clreol;
  2134.       pos:=1;
  2135.       drop:=false;
  2136.       case score of
  2137.       0..9:lev:=1;
  2138.       10..19:lev:=2;
  2139.       20..29:lev:=3;
  2140.       30..39:lev:=4;
  2141.       40..49:lev:=5;
  2142.       50..59:lev:=6;
  2143.       60..69:lev:=7;
  2144.       70..79:lev:=8;
  2145.       80..89:lev:=9;
  2146.       90..99:lev:=10;
  2147.       100..109:lev:=11;
  2148.       110..119:lev:=12;
  2149.       120..129:lev:=13;
  2150.       130..139:lev:=14;
  2151.       else lev:=15
  2152.       end;
  2153.       case lev of
  2154.       1:vel:=50;
  2155.       2:vel:=45;
  2156.       3:vel:=40;
  2157.       4:vel:=35;
  2158.       5:vel:=30;
  2159.       6:vel:=25;
  2160.       7:vel:=20;
  2161.       8:vel:=15;
  2162.       9:vel:=10;
  2163.       10:vel:=5;
  2164.       11:vel:=4;
  2165.       12:vel:=3;
  2166.       13:vel:=2;
  2167.       14:vel:=1;
  2168.       15:vel:=0
  2169.       end;
  2170.       gotoxy(25,19);
  2171.       write(lev);
  2172.       gotoxy(23,20);
  2173.       write(pezzi);
  2174.       gotoxy(27,21);
  2175.       write(score);
  2176.       if score=bscore then
  2177.         write(' NUOVO RECORD!');
  2178.       gotoxy(35,22);
  2179.       write(bscore);
  2180.       r:=nr;
  2181.       nr:=nnr;
  2182.       repeat
  2183.         nnr:=random(7);
  2184.       until (nnr<>r) and (nnr<>nr);
  2185.       gotoxy(19,5);
  2186.       write('    ');
  2187.       gotoxy(19,6);
  2188.       write('    ');
  2189.       case nr of
  2190.       0:begin
  2191.         textcolor(12);
  2192.         gotoxy(19,6);
  2193.         write('ÛÛÛÛ')
  2194.         end;
  2195.       1:begin
  2196.         textcolor(15);
  2197.         gotoxy(19,5);
  2198.         write('Û');
  2199.         gotoxy(19,6);
  2200.         write('ÛÛÛ')
  2201.         end;
  2202.       2:begin
  2203.         textcolor(13);
  2204.         gotoxy(21,5);
  2205.         write('Û');
  2206.         gotoxy(19,6);
  2207.         write('ÛÛÛ')
  2208.         end;
  2209.       3:begin
  2210.         textcolor(9);
  2211.         gotoxy(20,5);
  2212.         write('ÛÛ');
  2213.         gotoxy(20,6);
  2214.         write('ÛÛ')
  2215.         end;
  2216.       4:begin
  2217.         textcolor(10);
  2218.         gotoxy(21,5);
  2219.         write('ÛÛ');
  2220.         gotoxy(20,6);
  2221.         write('ÛÛ')
  2222.         end;
  2223.       5:begin
  2224.         textcolor(14);
  2225.         gotoxy(20,5);
  2226.         write('Û');
  2227.         gotoxy(19,6);
  2228.         write('ÛÛÛ')
  2229.         end;
  2230.       6:begin
  2231.         textcolor(11);
  2232.         gotoxy(19,5);
  2233.         write('ÛÛ');
  2234.         gotoxy(20,6);
  2235.         write('ÛÛ')
  2236.         end
  2237.       end;
  2238.       case r of
  2239.       0:I;
  2240.       1:J;
  2241.       2:L;
  2242.       3:O;
  2243.       4:S;
  2244.       5:T;
  2245.       6:Z
  2246.       end;
  2247.       pezzi:=pezzi+1;
  2248.       if lev>9 then
  2249.         delay(300);
  2250.       c:=23;
  2251.       repeat
  2252.         c:=c-1;
  2253.         if (spazio[4,c]<>0) and
  2254.            (spazio[5,c]<>0) and
  2255.            (spazio[6,c]<>0) and
  2256.            (spazio[7,c]<>0) and
  2257.            (spazio[8,c]<>0) and
  2258.            (spazio[9,c]<>0) and
  2259.            (spazio[10,c]<>0) and
  2260.            (spazio[11,c]<>0) and
  2261.            (spazio[12,c]<>0) and
  2262.            (spazio[13,c]<>0) then
  2263.           begin
  2264.           for cy:=c downto 3 do
  2265.             for cx:=4 to 13 do
  2266.               begin
  2267.               spazio[cx,cy]:=spazio[cx,cy-1];
  2268.               gotoxy(cx,cy);
  2269.               if spazio[cx,cy]=0 then
  2270.                 write(' ')
  2271.                                  else
  2272.                 begin
  2273.                 textcolor(spazio[cx,cy]);
  2274.                 write('Û')
  2275.                 end
  2276.               end;
  2277.           score:=score+1;
  2278.           c:=c+1
  2279.           end
  2280.       until c=3;
  2281.       if score>bscore then
  2282.         bscore:=score;
  2283.       textcolor(7);
  2284.     until gameover;
  2285.     rewrite(tscore);
  2286.     write(tscore,bscore);
  2287.     close(tscore);
  2288.     gotoxy(49,9);
  2289.     write('GAME OVER');
  2290.     gotoxy(41,11);
  2291.     write('vuoi giocare ancora(s/n)? ');
  2292.     read(answer);
  2293.   until (answer='n') or (answer='N')
  2294. end.