|
|
Nome del Prg. : Warnet.pas
Funzione : La unit presenta una classe principale TForm1 che ha al suo interno un menù che permette .
Dati in Input :
Dati in Output :
Ultima modifica :
Data:
unit Warnet;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Grids, ExtCtrls, Navi, griglia1, MPlayer;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
MenuGioco: TMenuItem;
MenuNuovo: TMenuItem;
MenuComputer: TMenuItem;
MenuRete: TMenuItem;
MenuRiprendi: TMenuItem;
MenuSalva: TMenuItem;
MenuSalvaconnome: TMenuItem;
N1: TMenuItem;
MenuEsci: TMenuItem;
MenuOpzioni: TMenuItem;
MenuLivello: TMenuItem;
MenuNavi: TMenuItem;
MenuSuono: TMenuItem;
MenuFacile: TMenuItem;
MenuMedio: TMenuItem;
MenuDifficile: TMenuItem;
MenuTerribile: TMenuItem;
MenuAiuto: TMenuItem;
MenuStatistico: TMenuItem;
MenuSuggerimento: TMenuItem;
MenuFinestre: TMenuItem;
MenuAvversarie: TMenuItem;
MenuPropria: TMenuItem;
MenuMessaggi: TMenuItem;
MenuInvia: TMenuItem;
MenuInformazioni: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Timer1: TTimer;
MediaPlayer1: TMediaPlayer;
N11: TMenuItem;
N22: TMenuItem;
N33: TMenuItem;
procedure Timer1Timer(Sender: TObject);
procedure MenuEsciClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MenuComputerClick(Sender: TObject);
procedure MenuFacileClick(Sender: TObject);
procedure MenuMedioClick(Sender: TObject);
procedure MenuDifficileClick(Sender: TObject);
procedure MenuTerribileClick(Sender: TObject);
procedure N11Click(Sender: TObject);
private
procedure ShowHint(Sender: TObject);
public
end;
var
Form1: TForm1;
implementation
procedure TForm1.ShowHint(Sender: TObject);
begin
panel3.caption:=Application.Hint;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
panel4.caption:=timetostr(time);
end;
procedure TForm1.MenuEsciClick(Sender: TObject);
begin
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.onHint:=ShowHint;
//MediaPlayer1.FileName:='c:\warnet\suoni\GameOver.wav';
//MediaPlayer1.Open;
//MediaPlayer1.Play;
end;
procedure TForm1.MenuComputerClick(Sender: TObject);
begin
TForm2.create(Application);
Tform3.create(Application);
MenuComputer.Enabled:=false;
MenuFinestre.Enabled:=false;
MenuAiuto.Enabled:=false;
end;
procedure TForm1.MenuFacileClick(Sender: TObject);
begin
MenuTerribile.Checked:=false;
MenuFacile.Checked:=true;
MenuMedio.Checked:=false;
MenuDifficile.Checked:=false;
end;
procedure TForm1.MenuMedioClick(Sender: TObject);
begin
MenuTerribile.Checked:=false;
MenuFacile.Checked:=false;
MenuMedio.Checked:=true;
MenuDifficile.Checked:=false;
end;
procedure TForm1.MenuDifficileClick(Sender: TObject);
begin
MenuTerribile.Checked:=false;
MenuFacile.Checked:=false;
MenuMedio.Checked:=false;
MenuDifficile.Checked:=true;
end;
procedure TForm1.MenuTerribileClick(Sender: TObject);
begin
MenuTerribile.Checked:=true;
MenuFacile.Checked:=false;
MenuMedio.Checked:=false;
MenuDifficile.Checked:=false;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
//MediaPlayer1.FileName:='c:\warnet\suoni\Water.wav';
//MediaPlayer1.Open;
//MediaPlayer1.Play;
end;
end.
Nome del Prg. : Navi.pas
Autore : Pellizzato Davide
Funzione : La unit presenta una classe principale TForm1 che ha al suo interno un menù che permette .
Dati in Input :
Dati in Output :
Ultima modifica :
Data:
unit Navi;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Brain;
type
TForm3 = class(TForm)
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
RadioButton8: TRadioButton;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
Button1: TButton;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton8Click(Sender: TObject);
procedure RadioButton9Click(Sender: TObject);
procedure RadioButton10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form3: TForm3;
Numero: integer;
Numero_Livello: shortint;
Numero_Navi: array [1..10] of integer;
Giocatore: integer;
implementation
uses Warnet;
procedure TForm3.RadioButton1Click(Sender: TObject);
begin
Numero:=RadioButton1.TabOrder;
end;
procedure TForm3.RadioButton2Click(Sender: TObject);
begin
Numero:=RadioButton2.TabOrder;
end;
procedure TForm3.RadioButton3Click(Sender: TObject);
begin
Numero:=RadioButton3.TabOrder;
end;
procedure TForm3.RadioButton4Click(Sender: TObject);
begin
Numero:=RadioButton4.TabOrder;
end;
procedure TForm3.RadioButton5Click(Sender: TObject);
begin
Numero:=RadioButton5.TabOrder;
end;
procedure TForm3.RadioButton6Click(Sender: TObject);
begin
Numero:=RadioButton7.TabOrder;
end;
procedure TForm3.RadioButton7Click(Sender: TObject);
begin
Numero:=RadioButton7.TabOrder;
end;
procedure TForm3.RadioButton8Click(Sender: TObject);
begin
Numero:=RadioButton8.TabOrder;
end;
procedure TForm3.RadioButton9Click(Sender: TObject);
begin
Numero:=RadioButton9.TabOrder;
end;
procedure TForm3.RadioButton10Click(Sender: TObject);
begin
Numero:=RadioButton10.TabOrder;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
RadioButton1.Checked:=true;
Numero:=1;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
Mente: Tcomputer;
begin
Giocatore:=1;
Form1.MenuAiuto.Enabled:=true;
if Form1.MenuFacile.checked=true then Numero_Livello:=1
else Form1.MenuFacile.Enabled:=false;
if Form1.MenuMedio.checked=true then Numero_Livello:=2
else Form1.MenuMedio.Enabled:=false;
if Form1.MenuDifficile.checked=true then Numero_Livello:=3
else Form1.MenuDifficile.Enabled:=false;
if Form1.MenuTerribile.checked=true then Numero_Livello:=4
else Form1.MenuTerribile.Enabled:=false;
Mente.create_brain(Numero_Livello,'prova');
Mente.Disponi_Navi(Numero_Navi);
//:='Spara il primo colpo nel campo avversario';
end;
end.
Nome del Prg. : Griglia.pas
Autore : Pellizzato Davide
Funzione : La unit presenta una classe principale TForm1 che ha al suo interno un menù che permette .
Dati in Input :
Dati in Output :
Ultima modifica :
Data:
unit griglia1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, Menus, Navi, Brain;
type
TForm2 = class(TForm)
DrawGrid1: TDrawGrid;
DrawGrid2: TDrawGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ImageList1: TImageList;
Label5: TLabel;
Label6: TLabel;
PopupMenu1: TPopupMenu;
SU1: TMenuItem;
GIU1: TMenuItem;
Destra1: TMenuItem;
Sinistra1: TMenuItem;
procedure DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure DrawGrid2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Destra1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Sinistra1Click(Sender: TObject);
procedure SU1Click(Sender: TObject);
procedure DrawGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
procedure GIU1Click(Sender: TObject);
private
procedure Controllo_Fine_Gioco;
public
end;
var
Form2: TForm2;
xmouse,ymouse,fine_gioco: integer;
Campo: array [1..10,1..10] of char;
Campo_Navi: array [1..10,1..10] of integer;
implementation
uses Warnet;
procedure TForm2.DrawGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Errore,Colonna, Riga,i: Longint;
begin
xmouse:=X;
ymouse:=Y;
Drawgrid1.MouseToCell(X,Y,Colonna,Riga);
label1.caption:='Riga: ' + intToStr(Riga);
label2.caption:='Colonna: ' + intToStr(Colonna);
if(numero=1) then
begin
Errore:=0;
Drawgrid1.MouseToCell(xmouse,ymouse,Colonna,Riga);
if((colonna+numero)>10) then errore:=1;
for i:=colonna+1 to colonna+numero do
begin
if Campo[riga+1,i]='N' then errore:=1;
if riga>=1 then
begin
if Campo[riga,i]='N' then errore:=1;
end;
if riga+2<=10 then
begin
if campo[riga+2,i]='N' then errore:=1;
end;
end;
if colonna>=1 then
begin
if Campo[riga+1,colonna]='N' then errore:=1;
end;
if colonna+numero+1 <=10 then
begin
if Campo[riga+1,colonna+numero+1]='N' then errore:=1;
end;
if errore=0 then
begin
inc(Numero_Navi[numero]);
PopupMenu1.AutoPopup:=false;
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,1);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=1;
end;
end
else
PopupMenu1.AutoPopup:=true;
end;
procedure TForm2.DrawGrid2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Colonna, Riga: Longint;
begin
Drawgrid2.MouseToCell(X,Y,Colonna,Riga);
label3.caption:='Riga: ' + intToStr(Riga);
label4.caption:='Colonna: ' + intToStr(Colonna);
If Giocatore=1 then
begin
if mat_pos[riga,colonna]='N' then
begin
mat_pos[riga,colonna]:='C';
ImageList1.Draw(drawgrid2.Canvas,colonna*17,riga*17,8);
end
else ImageList1.Draw(drawgrid2.Canvas,colonna*17,riga*17,0);
end;
end;
procedure TForm2.Destra1Click(Sender: TObject);
var
Errore,Colonna,Riga,i: integer;
begin
Errore:=0;
Drawgrid1.MouseToCell(xmouse,ymouse,Colonna,Riga);
if((colonna+numero)>10) then errore:=1;
for i:=colonna+1 to colonna+numero do
begin
if Campo[riga+1,i]='N' then errore:=1;
if riga>=1 then
begin
if Campo[riga,i]='N' then errore:=1;
end;
if riga+2<=10 then
begin
if campo[riga+2,i]='N' then errore:=1;
end;
end;
if colonna>=1 then
begin
if Campo[riga+1,colonna]='N' then errore:=1;
end;
if colonna+numero+1 <=10 then
begin
if Campo[riga+1,colonna+numero+1]='N' then errore:=1;
end;
if errore=0 then
begin
inc(Numero_Navi[numero]);
DrawGrid1.Hint:='Posiziona la nave';
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,9);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=9;
end
else
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,2);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=2;
end;
for i:=colonna+1 to colonna+numero-2 do
begin
ImageList1.Draw(drawgrid1.Canvas,i*17,riga*17,3);
Campo[riga+1,i+1]:='N';
Campo_Navi[riga+1,i+1]:=3;
end;
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,(colonna+numero-1)*17,riga*17,10);
Campo[riga+1,colonna+numero]:='N';
Campo_Navi[riga+1,colonna+numero]:=10;
end
else
begin
ImageList1.Draw(drawgrid1.Canvas,(colonna+numero-1)*17,riga*17,4);
Campo[riga+1,colonna+numero]:='N';
Campo_Navi[riga+1,colonna+numero]:=4;
end;
end
else
begin
DrawGrid1.hint:='Posizione inaccettabile';
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
i,k: integer;
begin
for i:=1 to 10 do
begin
for k:=1 to 10 do Campo[i,k]:='A';
end;
for i:=1 to 10 do
begin
for k:=1 to 10 do Campo_Navi[i,k]:=-1;
end;
end;
procedure TForm2.Sinistra1Click(Sender: TObject);
var
errore,colonna,riga,i:integer;
begin
Errore:=0;
Drawgrid1.MouseToCell(xmouse,ymouse,Colonna,Riga);
if((colonna+1-(numero-1))<1) then errore:=1;
for i:=colonna+1 downto colonna+1-(numero-1) do
begin
if Campo[riga+1,i]='N' then errore:=1;
if riga>=1 then
begin
if Campo[riga,i]='N' then errore:=1;
end;
if riga+2<=10 then
begin
if campo[riga+2,i]='N' then errore:=1;
end;
end;
if colonna<9 then
begin
if Campo[riga+1,colonna+2]='N' then errore:=1;
end;
if colonna+1-numero > 0 then
begin
if Campo[riga+1,colonna-numero+1]='N' then errore:=1;
end;
if errore=0 then
begin
inc(Numero_Navi[numero]);
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,10);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=10;
end
else
begin
DrawGrid1.Hint:='Posiziona la nave';
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,4);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=4;
end;
for i:=colonna-(numero-2) to colonna-1 do
begin
ImageList1.Draw(drawgrid1.Canvas,i*17,riga*17,3);
Campo[riga+1,i+1]:='N';
Campo_Navi[riga+1,i+1]:=3;
end;
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,(colonna-(numero-1))*17,riga*17,9);
Campo[riga+1,colonna-(numero-2)]:='N';
Campo_Navi[riga+1,colonna-(numero-2)]:=9;
end
else
begin
ImageList1.Draw(drawgrid1.Canvas,(colonna-(numero-1))*17,riga*17,2);
Campo[riga+1,colonna-(numero-2)]:='N';
Campo_Navi[riga+1,colonna-(numero-2)]:=2;
end;
end
else
begin
DrawGrid1.hint:='Posizione inaccettabile';
end;
end;
procedure TForm2.SU1Click(Sender: TObject);
var
errore,colonna,riga,i : integer;
begin
Errore:=0;
Drawgrid1.MouseToCell(xmouse,ymouse,Colonna,Riga);
if((riga+1-(numero-1))<1) then errore:=1;
for i:=riga+1 downto riga+1-(numero-1) do
begin
if Campo[i,colonna+1]='N' then errore:=1;
if colonna>=1 then
begin
if Campo[i,colonna]='N' then errore:=1;
end;
if colonna+2<=10 then
begin
if campo[i,colonna+2]='N' then errore:=1;
end;
end;
if colonna<9 then
begin
if Campo[riga+2,colonna+1]='N' then errore:=1;
end;
if riga+1-(numero-1) > 1 then
begin
if Campo[riga+1-(numero),colonna+1]='N' then errore:=1;
end;
if errore=0 then
begin
inc(Numero_Navi[numero]);
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,7);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=7;
end
else
begin
DrawGrid1.Hint:='Posiziona la nave';
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,7);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=7
end;
for i:=riga-(numero-2) to riga-1 do
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,i*17,6);
Campo[i+1,colonna+1]:='N';
Campo_Navi[i+1,colonna+1]:=6;
end;
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,(riga-(numero-1))*17,5);
Campo[riga-(numero-2),colonna+1]:='N';
Campo_Navi[riga-(numero-2),colonna+1]:=5;
end
else
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,(riga-(numero-1))*17,5);
Campo[riga-(numero-2),colonna+1]:='N';
Campo_Navi[riga-(numero-2),colonna+1]:=5;
end;
end
else
begin
DrawGrid1.hint:='Posizione inaccettabile';
end;
end;
procedure TForm2.DrawGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
begin
ImageList1.Draw(drawgrid1.Canvas,col*17,row*17,Campo_Navi[row+1,col+1]);
end;
procedure TForm2.GIU1Click(Sender: TObject);
var
Errore,Colonna,Riga,i: integer;
begin
Errore:=0;
Drawgrid1.MouseToCell(xmouse,ymouse,Colonna,Riga);
if((riga+numero)>10) then errore:=1;
for i:=riga+1 to riga+numero do
begin
if Campo[i,colonna+1]='N' then errore:=1;
if colonna>=1 then
begin
if Campo[i,colonna]='N' then errore:=1;
end;
if colonna+2<=10 then
begin
if campo[i,colonna+2]='N' then errore:=1;
end;
end;
if riga>=1 then
begin
if Campo[riga+1,colonna]='N' then errore:=1;
end;
if riga+numero+1 <=10 then
begin
if Campo[riga+1,colonna+numero+1]='N' then errore:=1;
end;
if errore=0 then
begin
inc(Numero_Navi[numero]);
DrawGrid1.Hint:='Posiziona la nave';
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,5);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=5;
end
else
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,riga*17,5);
Campo[riga+1,colonna+1]:='N';
Campo_Navi[riga+1,colonna+1]:=5;
end;
for i:=riga+1 to riga+numero-2 do
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,i*17,6);
Campo[i+1,colonna+1]:='N';
Campo_Navi[i+1,colonna+1]:=6;
end;
if(numero=2) then
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,(riga+numero-1)*17,7);
Campo[riga+numero,colonna+1]:='N';
Campo_Navi[riga+numero,colonna+1]:=7;
end
else
begin
ImageList1.Draw(drawgrid1.Canvas,colonna*17,(riga+numero-1)*17,7);
Campo[riga+numero,colonna+1]:='N';
Campo_Navi[riga+numero,colonna+1]:=7;
end;
end
else
begin
DrawGrid1.hint:='Posizione inaccettabile';
end;
end;
procedure TForm2.Controllo_Fine_Gioco;
var
i,k,app : integer;
begin
app:=0;
for i:=1 to 10 do
begin
for k:=1 to 10 do
begin
if Campo[i,k]='N' then app:=1
end;
if app=0 then fine_gioco:=1; // Il gioco è finito.
end;
end;
end.
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2024