改寫Delphi猜數字~~ |
|
jkyn
一般會員 發表:3 回覆:2 積分:1 註冊:2006-11-11 發送簡訊給我 |
這是一題猜數字的程式…猜幾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; |
hsk6138
初階會員 發表:12 回覆:59 積分:49 註冊:2003-12-11 發送簡訊給我 |
我測了一下,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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |