Beruflich Dokumente
Kultur Dokumente
unit untmain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, StdCtrls, Menus, WinSkinData;
type
TFrmHangman = class(TForm)
MainMenu1: TMainMenu;
mnugame: TMenuItem;
mnugameplay: TMenuItem;
mnugameexit: TMenuItem;
mnuhelp: TMenuItem;
mnuhelpabout: TMenuItem;
lblket: TLabel;
Image1: TImage;
dsgame: TDataSource;
1
tbgame: TTable;
lbltebak: TLabel;
btna: TButton;
btnq: TButton;
btnw: TButton;
btns: TButton;
btnz: TButton;
btnx: TButton;
btne: TButton;
btnd: TButton;
btnc: TButton;
btnr: TButton;
btnf: TButton;
btnv: TButton;
btnt: TButton;
btng: TButton;
btnb: TButton;
btny: TButton;
btnh: TButton;
btnn: TButton;
btnu: TButton;
btnj: TButton;
btni: TButton;
btno: TButton;
btnp: TButton;
btnl: TButton;
btnk: TButton;
btnm: TButton;
Timer1: TTimer;
Image2: TImage;
Shape1: TShape;
SkinData1: TSkinData;
procedure FormActivate(Sender: TObject);
procedure mnugameplayClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure btnpClick(Sender: TObject);
procedure btnqClick(Sender: TObject);
procedure btnwClick(Sender: TObject);
procedure btneClick(Sender: TObject);
procedure btnrClick(Sender: TObject);
procedure btntClick(Sender: TObject);
procedure btnyClick(Sender: TObject);
procedure btnuClick(Sender: TObject);
procedure btniClick(Sender: TObject);
procedure btnoClick(Sender: TObject);
procedure btnaClick(Sender: TObject);
procedure btnsClick(Sender: TObject);
procedure btndClick(Sender: TObject);
procedure btnfClick(Sender: TObject);
procedure btngClick(Sender: TObject);
procedure btnhClick(Sender: TObject);
procedure btnjClick(Sender: TObject);
procedure btnkClick(Sender: TObject);
procedure btnlClick(Sender: TObject);
procedure btnzClick(Sender: TObject);
procedure btnxClick(Sender: TObject);
procedure btncClick(Sender: TObject);
2
procedure btnvClick(Sender: TObject);
procedure btnbClick(Sender: TObject);
procedure btnnClick(Sender: TObject);
procedure btnmClick(Sender: TObject);
procedure mnugameexitClick(Sender: TObject);
procedure cek;
procedure Timer1Timer(Sender: TObject);
procedure mnuhelpaboutClick(Sender: TObject);
private
{ Private declarations }
public
kata , tebak : string;
salah1, salah2 : integer;
blink : boolean;
{ Public declarations }
end;
var
FrmHangman: TFrmHangman;
tekan: array[1..26] of boolean;
implementation
uses untabout;
{$R *.dfm}
procedure TFrmHangman.cek;
var tanya : integer;
begin
if FrmHangman.lbltebak.caption = kata then
begin
tanya :=Application.MessageBox('YOU WIN' + chr(10) + 'Wanna Try Again ?','Eng Ing
Eng', mb_yesno + mb_iconquestion);
if tanya = 6 then
FrmHangman.mnugameplay.Click
else
Application.Terminate;
end
else
case salah2 of
1 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\1.bmp');
2 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\2.bmp');
3 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\3.bmp');
4 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\4.bmp');
5 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\5.bmp');
6 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\6.bmp');
7 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\7.bmp');
8 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\8.bmp');
9 : image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\9.bmp');
10 :
begin
image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\10.bmp');
tanya :=Application.MessageBox('YOU LOSE' + chr(10) + 'Wanna Try Again ?','Eng Ing
Eng', mb_yesno + mb_iconquestion);
3
if tanya = 6 then
begin
self.Activate;
FrmHangman.mnugameplay.Click;
end
else
Application.Terminate;
end;
end;
end;
lblket.visible := false;
image1.visible := false;
randomize;
end;
4
btni.Enabled := true; tekan[9] := false;
btnj.Enabled := true; tekan[10] := false;
btnk.Enabled := true; tekan[11] := false;
btnl.Enabled := true; tekan[12] := false;
btnm.Enabled := true; tekan[13] := false;
btnn.Enabled := true; tekan[14] := false;
btno.Enabled := true; tekan[15] := false;
btnp.Enabled := true; tekan[16] := false;
btnq.Enabled := true; tekan[17] := false;
btnr.Enabled := true; tekan[18] := false;
btns.Enabled := true; tekan[19] := false;
btnt.Enabled := true; tekan[20] := false;
btnu.Enabled := true; tekan[21] := false;
btnv.Enabled := true; tekan[22] := false;
btnw.Enabled := true; tekan[23] := false;
btnx.Enabled := true; tekan[24] := false;
btny.Enabled := true; tekan[25] := false;
btnz.Enabled := true; tekan[26] := false;
lblket.visible := true;
image1.visible := true;
salah2 := 0;
tebak := '';
tbgame.First;
tbgame.MoveBy(Random(Tbgame.RecordCount));
kata := tbgame['Jawab'];
lblket.caption := tbgame['Keterangan'];
for k := 1 to length(kata) do
if kata[k] = ' ' then
tebak := tebak + ' '
else
tebak := tebak + '*';
image1.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\gambar\0.bmp');
lbltebak.caption := tebak;
end;
case upcase(key) of
'A' : begin
if not tekan[1] then btna.Click else key := #0;
tekan[1] := true;
end;
'B' : begin
if not tekan[2] then btnb.Click else key := #0;
tekan[2] := true;
end;
'C' : begin
if not tekan[3] then btnc.Click else key := #0;
5
tekan[3] := true;
end;
'D' : begin
if not tekan[4] then btnd.Click else key := #0;
tekan[4] := true;
end;
'E' : begin
if not tekan[5] then btne.Click else key := #0;
tekan[5] := true;
end;
'F' : begin
if not tekan[6] then btnf.Click else key := #0;
tekan[6] := true;
end;
'G' : begin
if not tekan[7] then btng.Click else key := #0;
tekan[7] := true;
end;
'H' : begin
if not tekan[8] then btnh.Click else key := #0;
tekan[8] := true;
end;
'I' : begin
if not tekan[9] then btni.Click else key := #0;
tekan[9] := true;
end;
'J' : begin
if not tekan[10] then btnj.Click else key := #0;
tekan[10] := true;
end;
'K' : begin
if not tekan[11] then btnk.Click else key := #0;
tekan[11] := true;
end;
'L' : begin
if not tekan[12] then btnl.Click else key := #0;
tekan[12] := true;
end;
'M' : begin
if not tekan[13] then btnm.Click else key := #0;
tekan[13] := true;
end;
'N' : begin
if not tekan[14] then btnn.Click else key := #0;
tekan[14] := true;
end;
'O' : begin
if not tekan[15] then btno.Click else key := #0;
tekan[15] := true;
end;
'P' : begin
if not tekan[16] then btnp.Click else key := #0;
tekan[16] := true;
end;
'Q' : begin
if not tekan[17] then btnq.Click else key := #0;
tekan[17] := true;
6
end;
'R' : begin
if not tekan[18] then btnr.Click else key := #0;
tekan[18] := true;
end;
'S' : begin
if not tekan[19] then btns.Click else key := #0;
tekan[19] := true;
end;
'T' : begin
if not tekan[20] then btnt.Click else key := #0;
tekan[20] := true;
end;
'U' : begin
if not tekan[21] then btnu.Click else key := #0;
tekan[21] := true;
end;
'V' : begin
if not tekan[22] then btnv.Click else key := #0;
tekan[22] := true;
end;
'W' : begin
if not tekan[23] then btnw.Click else key := #0;
tekan[23] := true;
end;
'X' : begin
if not tekan[24] then btnx.Click else key := #0;
tekan[24] := true;
end;
'Y' : begin
if not tekan[25] then btny.Click else key := #0;
tekan[25] := true;
end;
'Z' : begin
if not tekan[26] then btnz.Click else key := #0;
tekan[26] := true;
end;
end;
end;
cek;
btnp.Enabled := false;
end;
7
procedure TFrmHangman.btnqClick(Sender: TObject);
var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'Q' then
begin
tebak[i] := 'Q';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;
btnq.Enabled := false;
cek;
end;
cek;
btnw.Enabled := false;
end;
8
cek;
btne.Enabled := false;
end;
cek;
btnr.Enabled := false;
end;
cek;
btnt.Enabled := false;
end;
9
if salah1 = length(kata) then
salah2 := salah2 + 1;
cek;
btny.Enabled := false;
end;
cek;
btnu.Enabled := false;
end;
cek;
btni.Enabled := false;
end;
10
end
else
salah1 := salah1 + 1;
cek;
btno.Enabled := false;
end;
cek;
btna.Enabled := false;
end;
cek;
btns.Enabled := false;
end;
11
if kata[i] = 'D' then
begin
tebak[i] := 'D';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;
cek;
btnd.Enabled := false;
end;
cek;
btnf.Enabled := false;
end;
cek;
btng.Enabled := false;
end;
12
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'H' then
begin
tebak[i] := 'H';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;
cek;
btnh.Enabled := false;
end;
cek;
btnj.Enabled := false;
end;
cek;
btnk.Enabled := false;
end;
13
procedure TFrmHangman.btnlClick(Sender: TObject);
var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'L' then
begin
tebak[i] := 'L';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;
cek;
btnl.Enabled := false;
end;
cek;
btnz.Enabled := false;
end;
14
cek;
btnx.Enabled := false;
end;
cek;
btnc.Enabled := false;
end;
cek;
btnv.Enabled := false;
end;
15
if salah1 = length(kata) then
salah2 := salah2 + 1;
cek;
btnb.Enabled := false;
end;
cek;
btnn.Enabled := false;
end;
cek;
btnm.Enabled := false;
end;
16
else
image2.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'hm2.bmp');
end;
end.
17