線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1527
推到 Plurk!
推到 Facebook!

改寫Delphi猜數字~~

 
jkyn
一般會員


發表:3
回覆:2
積分:1
註冊:2006-11-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-11 20:08:14 IP:220.131.xxx.xxx 訂閱
這是一題猜數字的程式…猜幾A幾B的游戲, 
程式執行時電腦產生四位數的亂數讓人猜…
請問大大…我要修改用虛線部分所寫的程式…自己寫成用*圍成的程式…可是不行耶…那裡錯了??
1.使用一Label元件用於輸出電腦所回應的AB數目
2.使用一Edit元件用於輸入使用者所猜測數字
程式碼如下:
var
i,j,r:integer;
flag:boolean;
begin
flag:=true;
Randomize;
-----------------------------------------------------------------
//for i:=0 to 9 do
//begin
//a[i]:=i;
//end;
//for i:=0 to 9 do
//begin
//r:=random(10);
//j:=a[i];
//a[i]:=a[r];
//a[r]:=j;
//end;
//form1.Caption:=Inttostr(a[0]) inttostr(a[1]) inttostr(a[2]) inttostr(a[3]);
//end;
-------------------------------------------------------------------------------------------------
*************************************************************
while flag do
begin
sum:=0;
for i:=0 to 3 do
begin r:=random(10);
a[i]:=r;
end;
fro i=0 to 3 do
begin
for j:=i 1 to 3 do
begin
if a[i] =a[j] then
sum:=sum 1;
end;
if sum=0 then
begin
flag=false;
end;
end;
******************************************************************
var
temp:string;
i,j:integer;
b:array[0..3] of integer;
an,bn:integer;
begin
if Edit1.text='' then
begin
showmessage('請輸入數字');
exit;
end;

for i:=0 to 3 do
begin
temp:=edit1.text;
b[i]:=strtoint(copy(temp,i 1,1));
end;
an:=0;
bn:=0;
for i:=0 to 3 do
begin
if a[i]=b[j] then
bn:=bn 1;
end;
if a[i]=b[i] then
an:=an 1;
end;
bn:=bn-an;
label1.caption:=inttostr(an) 'A' inttostr(bn) 'B';
if an=4 then
showmessage('恭喜您答對了');
end;
附加檔案:4555bd2e0b5af_E7-a.rar
hsk6138
初階會員


發表:12
回覆:59
積分:49
註冊:2003-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-16 11:56:32 IP:61.230.xxx.xxx 未訂閱
我測了一下,BUG太多
虛線部分所寫的程式用意是0-9數值不重複
而你自己寫成用*圍成的程式用意不詳
flag sum 是捨

===================引 用 文 章===================

這是一題猜數字的程式…猜幾A幾B的游戲,
程式執行時電腦產生四位數的亂數讓人猜…
請問大大…我要修改用虛線部分所寫的程式…自己寫成用*圍成的程式…可是不行耶…那裡錯了??
1.使用一Label元件用於輸出電腦所回應的AB數目
2.使用一Edit元件用於輸入使用者所猜測數字
程式碼如下:
var
i,j,r:integer;
flag:boolean;
begin
flag:=true;
Randomize;
-----------------------------------------------------------------
//for i:=0 to 9 do
//begin
//a[i]:=i;
//end;
//for i:=0 to 9 do
//begin
//r:=random(10);
//j:=a[i];
//a[i]:=a[r];
//a[r]:=j;
//end;
//form1.Caption:=Inttostr(a[0]) inttostr(a[1]) inttostr(a[2]) inttostr(a[3]);
//end;
-------------------------------------------------------------------------------------------------
*************************************************************
while flag do
begin
sum:=0;
for i:=0 to 3 do
begin r:=random(10);
a[i]:=r;
end;
fro i=0 to 3 do
begin
for j:=i 1 to 3 do
begin
if a[i] =a[j] then
sum:=sum 1;
end;
if sum=0 then
begin
flag=false;
end;
end;
******************************************************************
var
temp:string;
i,j:integer;
b:array[0..3] of integer;
an,bn:integer;
begin
if Edit1.text='' then
begin
showmessage('請輸入數字');
exit;
end;

for i:=0 to 3 do
begin
temp:=edit1.text;
b[i]:=strtoint(copy(temp,i 1,1));
end;
an:=0;
bn:=0;
for i:=0 to 3 do
begin
if a[i]=b[j] then
bn:=bn 1;
end;
if a[i]=b[i] then
an:=an 1;
end;
bn:=bn-an;
label1.caption:=inttostr(an) 'A' inttostr(bn) 'B';
if an=4 then
showmessage('恭喜您答對了');
end;
jkyn
一般會員


發表:3
回覆:2
積分:1
註冊:2006-11-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-16 17:52:17 IP:218.162.xxx.xxx 訂閱
這個另寫出來的程式…是上課看了老師改寫的意思,小抄一下,自己又寫了一下…就…,那請問這一題有沒有別的方式寫法呢?? 

系統時間:2024-07-04 23:54:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!