bitbtn元件屬性 |
尚未結案
|
north
一般會員 發表:10 回覆:17 積分:5 註冊:2004-08-06 發送簡訊給我 |
我想寫一個井字遊戲
電腦與人對打
我使用bitbtn按鈕作為圈叉的顯示
□□□bitbtn1,2,3
□□□ 4,5,6
□□□ 7,8,9
請問如何在遊戲程式中定義bitbtn元件
目前進度:
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Game();
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); //結束按鈕
begin
Form1.Close;
end; procedure TForm1.Button1Click(Sender: TObject); //開始按鈕
begin Game();
end; procedure TForm1.Game; //遊戲程式內容
var i:integer;
begin
for i:=1 to 9 do //遊戲內容定義
begin //請問bitbtn要如何定義呢
if TBitbtn.Control[i] is Tbitbtn then //
//當使用者滑鼠按下時
//bitbtn的caption:='O'
bitbtn[i].caption:='O' //
end; }
end; end. 謝謝唷^^
這是我第一個程式說^^
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
north 你好:
首先是使用者按下開始遊戲的時候,要清除所有按鍵狀態
引言: procedure TForm1.Button1Click(Sender: TObject); //開始按鈕 var i:integer; begin for i:=0 to Form1.ControlCount-1 do if Form1.Controls[i] is TSpeedButton then begin TSpeedButton(Form1.Controls[i]).Down:=true; TSpeedButton(Form1.Controls[i]).Caption:=''; end; end;接下來是對bitbtn按鈕按下時做處理,狀況有4種 1.if 優先權 < 對手 and 對手 next=15 then 要先佔領 next 2.if 優先權 > 對手 and 我方 next=15 then 要先佔領 next 3.if 優先權 > 對手 and 對手 next<>15 then 要隨機選取一個未選取的bibtn 4.當 一方 bibtn的值加起來=15則結束比賽 由於這是你的第一個程式所以只給提示希望你會成功 p.s. 816 357 462
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
north
一般會員 發表:10 回覆:17 積分:5 註冊:2004-08-06 發送簡訊給我 |
KO大大你好:
想請問一下
「if 優先權 < 對手 and 對手+next=15 then 要先佔領 next」
優先權我覺的是代表人 就是我下面程式中的a
對手是指電腦 就是我下面程式中的b
next我想是指下一個BITBTN[i]之中i的值
可是為什麼要等於15呢
因為如果是bitbtn1,2,3 這加起來不等於15阿
而且8,6,1加起來等於15 可是卻不是一直線說 我的畫面是
開始 結束 2個button
_____ 虛線代表Panel
| 1 2 3 | 內有9個bitbtn
| 4 5 6 |
| 7 8 9 |
————-
下面是我依KO大大的城市去修改成我目前的進度
procedure TForm1.Button1Click(Sender: TObject); //開始按鈕
var i:integer;
begin
for i:=1 to Form1.ControlCount-1 do //KO大大的程式
if Form1.Controls[i] is TSpeedButton then //我套用進去
begin
TSpeedButton(Form1.Controls[i]).Down:=true;
TSpeedButton(Form1.Controls[i]).Caption:='';
end;
game(); //執行遊戲程序
end;
procedure TForm1.Game;
var i,a,b:integer;
begin
for a:=1 to 5 do // a代表人,最多畫5次
begin
for b:=1 to 5 do // b代表電腦
begin
for i:=1 to Form1.ControlCount-1 do // i是9個bitbun
begin
if a>b then
TSpeedButton(Form1.Controls[i]).Down:=true
TSpeedButton(Form1.Controls[i]).Caption:='O'
else if a
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
north
一般會員 發表:10 回覆:17 積分:5 註冊:2004-08-06 發送簡訊給我 |
引言: north 你好 ko 大大 已有提示了,各個bitbtn所代表的數值如下 _____ 虛線代表Panel | 8 1 6 | 內有9個bitbtn | 3 5 7 | | 4 9 2 | <== 中間應該是 9 才對 ————- bitbtn1 代表數值為8 bitbtn2 代表數值為1 bitbtn3 代表數值為6 .....以此類推 _______________________________________ 深藍的魚,祝您好運..........連連喔~~原來是這樣唷 那我在想想繼續努力了 謝謝唷 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |