Anda di halaman 1dari 17

GAME TEBAK KATA

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;

procedure TFrmHangman.FormActivate(Sender: TObject);


begin
btna.Enabled := False;
btnb.Enabled := False;
btnc.Enabled := False;
btnd.Enabled := False;
btne.Enabled := False;
btnf.Enabled := False;
btng.Enabled := False;
btnh.Enabled := False;
btni.Enabled := False;
btnj.Enabled := False;
btnk.Enabled := False;
btnl.Enabled := False;
btnm.Enabled := False;
btnn.Enabled := False;
btno.Enabled := False;
btnp.Enabled := False;
btnq.Enabled := False;
btnr.Enabled := False;
btns.Enabled := False;
btnt.Enabled := False;
btnu.Enabled := False;
btnv.Enabled := False;
btnw.Enabled := False;
btnx.Enabled := False;
btny.Enabled := False;
btnz.Enabled := False;

lblket.visible := false;
image1.visible := false;
randomize;
end;

procedure TFrmHangman.mnugameplayClick(Sender: TObject);


var
k : byte;
begin
btna.Enabled := true; tekan[1] := false;
btnb.Enabled := true; tekan[2] := false;
btnc.Enabled := true; tekan[3] := false;
btnd.Enabled := true; tekan[4] := false;
btne.Enabled := true; tekan[5] := false;
btnf.Enabled := true; tekan[6] := false;
btng.Enabled := true; tekan[7] := false;
btnh.Enabled := true; tekan[8] := false;

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;

procedure TFrmHangman.FormKeyPress(Sender: TObject; var Key: Char);


begin
if not(upcase(key) in ['A'..'Z']) then
key := #0;

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;

procedure TFrmHangman.btnpClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'P' then
begin
tebak[i] := 'P';
lbltebak.caption := tebak;
end;

if lbltebak.Caption <> kata then


salah2 := salah2 + 1;

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;

if salah1 = length(kata) then


salah2 := salah2 + 1;

btnq.Enabled := false;
cek;
end;

procedure TFrmHangman.btnwClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'W' then
begin
tebak[i] := 'W';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnw.Enabled := false;
end;

procedure TFrmHangman.btneClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'E' then
begin
tebak[i] := 'E';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

8
cek;
btne.Enabled := false;
end;

procedure TFrmHangman.btnrClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'R' then
begin
tebak[i] := 'R';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnr.Enabled := false;
end;

procedure TFrmHangman.btntClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'T' then
begin
tebak[i] := 'T';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnt.Enabled := false;
end;

procedure TFrmHangman.btnyClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'Y' then
begin
tebak[i] := 'Y';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

9
if salah1 = length(kata) then
salah2 := salah2 + 1;

cek;
btny.Enabled := false;
end;

procedure TFrmHangman.btnuClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'U' then
begin
tebak[i] := 'U';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnu.Enabled := false;
end;

procedure TFrmHangman.btniClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'I' then
begin
tebak[i] := 'I';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btni.Enabled := false;
end;

procedure TFrmHangman.btnoClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'O' then
begin
tebak[i] := 'O';
lbltebak.caption := tebak;

10
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btno.Enabled := false;
end;

procedure TFrmHangman.btnaClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'A' then
begin
tebak[i] := 'A';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btna.Enabled := false;
end;

procedure TFrmHangman.btnsClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'S' then
begin
tebak[i] := 'S';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btns.Enabled := false;
end;

procedure TFrmHangman.btndClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do

11
if kata[i] = 'D' then
begin
tebak[i] := 'D';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnd.Enabled := false;
end;

procedure TFrmHangman.btnfClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'F' then
begin
tebak[i] := 'F';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnf.Enabled := false;
end;

procedure TFrmHangman.btngClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'G' then
begin
tebak[i] := 'G';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btng.Enabled := false;
end;

procedure TFrmHangman.btnhClick(Sender: TObject);


var i : byte;

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;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnh.Enabled := false;
end;

procedure TFrmHangman.btnjClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'J' then
begin
tebak[i] := 'J';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnj.Enabled := false;
end;

procedure TFrmHangman.btnkClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'K' then
begin
tebak[i] := 'K';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

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;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnl.Enabled := false;
end;

procedure TFrmHangman.btnzClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'Z' then
begin
tebak[i] := 'Z';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnz.Enabled := false;
end;

procedure TFrmHangman.btnxClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'X' then
begin
tebak[i] := 'X';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

14
cek;
btnx.Enabled := false;
end;

procedure TFrmHangman.btncClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'C' then
begin
tebak[i] := 'C';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnc.Enabled := false;
end;

procedure TFrmHangman.btnvClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'V' then
begin
tebak[i] := 'V';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnv.Enabled := false;
end;

procedure TFrmHangman.btnbClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'B' then
begin
tebak[i] := 'B';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

15
if salah1 = length(kata) then
salah2 := salah2 + 1;

cek;
btnb.Enabled := false;
end;

procedure TFrmHangman.btnnClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'N' then
begin
tebak[i] := 'N';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnn.Enabled := false;
end;

procedure TFrmHangman.btnmClick(Sender: TObject);


var i : byte;
begin
salah1 := 0;
for i := 1 to length(kata) do
if kata[i] = 'M' then
begin
tebak[i] := 'M';
lbltebak.caption := tebak;
end
else
salah1 := salah1 + 1;

if salah1 = length(kata) then


salah2 := salah2 + 1;

cek;
btnm.Enabled := false;
end;

procedure TFrmHangman.mnugameexitClick(Sender: TObject);


begin
Application.Terminate;
end;

procedure TFrmHangman.Timer1Timer(Sender: TObject);


begin
blink := not blink;
if blink then
image2.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'\hm1.bmp')

16
else
image2.Picture.loadfromfile(ExtractFilePath(application.ExeName)+'hm2.bmp');
end;

procedure TFrmHangman.mnuhelpaboutClick(Sender: TObject);


begin
frmabout.Show;
frmabout.BringToFront;
end;

end.

17

Anda mungkin juga menyukai