本人刚接触Delphi,我想用Delphi做个单词连线配对游戏软件,先把单词写在一个txt里,然后用程序读取txt里面的英语单词和中文,然后显示成5个一组的中英文配对连线游戏,随机打乱位置,将5个单词中英文连线配对,游戏时用鼠标点单词英文或中文都会显示灰色,若正确会出现一个箭头表示连对了,若不对就没反映,5个都连好后又换成新的另外5个单词,就象网上的CJC好玩背单词软件那样,怎样实现,能说说思路吗?要用到那些部件,利用什么原理,若能指点,万分感谢.
调试欢乐多
TStringList读word.txt文本。
文本格式为:
China=中国
Chinese=中国人
10个TButton显示单词,5个英文,5个中文。
TImage画连线。
如果正确相应的中英文button的visible属性为false或者Enabled为false。
都完成了在随机读取对应的5个英文,5个中文。button的visible属性为true或者Enabled为true。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
Str1,Str2 : string;
function comp: integer;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function TForm1.comp: integer;
begin
if (Str1 = '') or (Str2 = '') then exit; result := CompareStr(Str1, Str2);
Str1 := '';
Str2 := '';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
button2.OnClick := Button1.OnClick;
button3.OnClick := Button1.OnClick;
button4.OnClick := Button1.OnClick;
button5.OnClick := Button1.OnClick;
button6.OnClick := Button1.OnClick;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if str1 = '' then
str1 := TButton(sender).Caption
else if str2 = '' then
str2 := TButton(sender).Caption;
if comp = 0 then showmessage('True');end;end.
zairu,danci:stringlist;
i,a1,a2,suiji:integer;
begin
for i:=1 to 5 do begin
zairu.loadfromfile('world.txt');
suiji:=random(zairu.count);
danci.add(zairu.string[suiji]);
zairu.del(suiji);
end;
for i:0 to 4 do
begin
a:=pos('=',danci.string[i]);
label1.caption:=copy(danci.string[i],0,a);
label2.caption:=copy(danci.string[i],a,length(danci.string));其他也差不多了。。本人是菜鸟,谢谢指教
zairu,danci:stringlist;
i,a1,a2,suiji:integer;
begin
for i:=1 to 5 do begin
zairu.loadfromfile('world.txt');
suiji:=random(zairu.count);
danci.add(zairu.string[suiji]);
zairu.del(suiji);
end;
for i:0 to 4 do
begin
a:=pos('=',danci.string[i]);
label1.caption:=copy(danci.string[i],0,a);
label2.caption:=copy(danci.string[i],a,length(danci.string));其他也差不多了。。本人是菜鸟,谢谢指教
因为我用cbuilder不会写pascal,只能读懂。
我手工打的,有点错误。。var
zairu,danci:stringlist;
i,a1,a2,suiji:integer;
begin
zairu:=tstringlist.create;//
danci:=tstringlist.create;//加上这两句
for i:=1 to 5 do begin
zairu.loadfromfile('world.txt');
suiji:=random(zairu.count);
danci.add(zairu.string[suiji]);
zairu.del(suiji);
end;
suiji:=random(zairu.count); 随即选择一行
danci.add(zairu.string[suiji]); 添加加入到danci这个容器里
zairu.del(suiji); 删除这一行。已求不重复