畠山くんのdelphi教室
■ このスレッドは過去ログ倉庫に格納されています
0001畠山 幸助
NGNGまずはテキストエディターなどからよろしくお願いします。
あ、ほんとに初心者なのでやさしくしてくださいね♪
ゆくゆくはファイル操作などまでできるようになりたいです。
0002デフォルトの名無しさん
NGNG0003デフォルト名無しさん
NGNG0004重複スレですよ。。。&rlo;複重&lro;
NGNGモナーの *やさしい* Delphi質問スレ Ver.8
http://pc3.2ch.net/test/read.cgi/tech/1027873869/l50
真・スレッドナビゲーター。。。( ̄ー ̄)ニヤリッ
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1027873869/l50
0007重複スレですよ。。。lo;複重&lro;
NGNG0008畑山浩介
NGNG今週は●●をやってみよう。まずは〜
とかいって僕に教えていくんですよ。
質問スレとかじゃだめなんですって。
やだなぁ。勘違いしちゃ。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG固定ハンドルが題名に入っている・固定ハンドルが占用している・閉鎖的な使用法を目的としている・等は、自己紹介板・最悪板・夢・独り言板・おいらロビー・なんでもあり板以外では、原則として全て削除または移動対象にします。
0011畑山浩介
NGNG0012畠山 幸助
NGNG0013デフォルトの名無しさん
NGNGマイクソからメモ帳ソースダウソロードできるよ
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGまんこ!まんこ!!まんこ!!!
0016畠山 幸助
NGNG0017デフォルトの名無しさん
NGNGし ね し ね し ね し ね し ね し ねし ね し ね し ね しね し ね し ね し ね し ね し ね し ねし ね し ね し ね しね し ね し ね し ね し ね し ね し ねし ね し ね し ね しね
し ね し ね し ね し ね し ね し ねし ね し ね し ね しね
し ね し ね し ね し ね し ね し ねし ね し ね し ね しね
し ね し ね し ね し ね し ね し ねし ね し ね し ね しね
し ね し ね し ね し ね し ね し ねし ね し ね し ね しね し ね し ね し ね し ね し ね し ねし ね し ね し ね しね
g
0018デフォルトの名無しさん
NGNG0019畠山 幸助
NGNGまともなアドバイスもできないくせに。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG自分で自分のことを君付けで呼ぶんですか?
キモイ
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGそれは自己責任でどうぞ。
自分もストレス発散して、相手も多少は楽しめるように振舞うと、楽しいかもしれませんし、
逆にクサクなって楽しめないかもしれませんので、それも自己責任でどうぞ。
0025デフォルトの名無しさん
NGNG2ちゃんねるにカキコしているだけではばれることはありません。
2ちゃんねるはいわばインターネットの無法地帯のようなものです。
自分が楽しいことが相手が楽しいとは限りません。
自分が楽しくないことが相手が楽しいこともあります。
相手のことは何もわかりません。
現実世界では相手のことを思いやるべきですが、ここは2ちゃんねるです。
相手のことを考えるより素直に自分の思うがままやるのが一番2ちゃんねるらしいのです。
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028畑山 浩介
NGNG0029デフォルトの名無しさん
NGNGここは2ch。ネット上のダウンタウン。
やなやつはもっと上品なサイトにいけばいい。
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGお前が糞
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG↓
0036馬鹿
NGNGどうでも良いけど、畑山君よ。ちっとは本かなんかで調べてたらどうな
んだい。秋葉原の「ラオックス書籍館」とかでプログラミング・コーナー
に行けばいくらでもあるだろう。「良い書籍はないですか?」とかなら、
まだ話が分かるけどよ。
0037馬鹿
NGNG俺、本当の馬鹿だ。うーむ、もう今日は夜遅いから、寝るとする
か。おやすみ。
0038デフォルトの名無しさん
NGNGageんな!
0039IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGってゆってたのにー
プンスカ!!
0042デフォルトの名無しさん
NGNGサンクスコ
0043デフォルトの名無しさん
NGNG家族構成と小学校時代の恥ずかしかった思い出も記録されます。
0044デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0045デフォルトの名無しさん
NGNGそうだよね。
勘違いしてる奴おおいし、
現実世界と同程度の責任を求められる事が当たり前になるように
なるといいね。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG>1 :ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ :03/01/08 17:13 ID:???
>そんなわけで、qbサーバでIPの記録実験をはじめましたー。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/l20
IP記録実験PART2
http://qb.2ch.net/test/read.cgi/accuse/1042020193/l20
これまでのあらすじは >>2-20 あたりに誰かお願い。
0048デフォルトの名無しさん
NGNGあのスレ結局どうなったんだっけ?
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG(今日はグーグルまでもが中傷対象になってた)
ひろゆきは2chとして或厨を訴える気はないの?
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG壁貼るな、ド阿呆
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG逆に質の低い書きこみが減ってさらに人が増えたりして
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGP2Pとかに潜るんでしょう
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0060デフォルトの名無しさん
NGNG部
た
て
読
み
に
し
よ
う
。
0061デフォルトの名無しさん
NGNG>datの書いた内容とIPが対になってることを証明すんのもめんどくさいもんな。
そゆことです。
114 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:34 ID:ZxrhkN5z
幼女をレイプします
119 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:35 ID:rLfxQ17l
携帯電話からご苦労様です。
139 名前: ◆FruitsMIpE [sage] 投稿日:03/01/08 17:38 ID:s/ESWpsO
「携帯から」とか公開しないでほすぃ。。
150 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:40 ID:rLfxQ17l
みたいなことを書いたらそうなりますです。さん
170 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:42 ID:rLfxQ17l
負荷が高そうなサーバにも入れて見ます。
217 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:49 ID:rLfxQ17l
一定期間でログは消しますです。
0062デフォルトの名無しさん
NGNG国または政府とかの公共団体には裁判しかけてるけどね。
著作物や発言に関してはもっぱら発言撤回または削除の方針でがんばってる。
だから「チョン死ね」とかかいても個人が訴訟されるってのはまず考えなくていいんじゃないかな?
削除要請はともかく
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGやはり「書き込むことに責任あることを認識しろ」かと。
つーか、まもなく6億〜
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG自分で書き込んで1人で笑ってるんだろうな
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG今更の話題によく盛り上がってるな。年明け初2ちゃん組か?
0073デフォルトの名無しさん
NGNG専用ブラウザでは見れます。対処お願いします。
0074山崎渉
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGしかし日本人は少し優秀でないと思います。
歴史の違いだと思います。
しかし日本には伸び行く歴史があると思います。
0077デフォルトの名無しさん
NGNG0078山崎渉
NGNG0079デフォルトの名無しさん
NGNG0080山崎渉
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGうぉーえっへっへほっへうぉーへっへっへほっへ
うぉーえっへっへほっへうぉーへっへっへほっへ
げださばっ!うっ!
びんびんまっちょで〜(おーえおーえ〜
がんがんいっとけぇ(おえおえお
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGで、実行ファイルのある場所、「C:\FolderName\」が取得できましたが、
この文字列の最後の「\」を取り除いた実行ファイルのパスを取得するには、どのようにすれば良いのでしょうか?
0085デフォルトの名無しさん
NGNGまたは
ExcludeTrailingPathDelimiter
を Help で調べて。
0086人いないスレ
NGNG0087山崎渉
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNGDelphi の仕組みはだいぶ理解出来るようになりましたが、
今でもアルゴリズム(や、論理的思考法)はよくわかりませんよ。
先週まで、LZSS 符号化について実験していましたが、移動窓の実装で投げ出したくらいです。
今週は、 MD5 とかいう暗号化機構を、自作テキストエディタに乗せようと四苦八苦している最中です。
これもなかなか理解し辛く、投げ出しそうですが、まだなんとかがんばってます。
ハタケヤマクソはどうですか?
0090畠山 幸助
NGNGこれは戦略的撤退です。
0091当人
NGNG0092畠山 幸助
NGNG今日は「町に出よう」をテーマに皆で白装束姿になってポルモレキア(母の家)の周りを巡回しました。
すると困ったことに電磁波をガンガン飛ばしながら走る車がたくさん通っていたんです。驚きました。
「このままだとイーガルウッダ(気による交流)に支障が出るね。鏡で反射させよう。」ということになり
大きな反射板を持って道路を封鎖してみました。この後すごく嫌なことが起こったんだけど、
ここに書くのは止めておきます。マスコミって最悪ですね。ホント。
あとデルファイはしばらく中止します。適当にレスしてスレ残しといて下さい。
0093デフォルトの名無しさん
NGNG0094山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0095デフォルトの名無しさん
NGNG0096山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0097デフォルトの名無しさん
NGNGまだ途中だったのにィ(´_`)
0098山崎 渉
NGNG0099謎の紳士
NGNGhttp://www.w-frontier.com/delphi/3_menu.html
0100謎の紳士
NGNG0101山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0102デフォルトの名無しさん
NGNG0103あぼーん
NGNG0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGなんでも作れます。 アプリなんてしょせん、バイトの集まりですから。
0106デフォルトの名無しさん
NGNGテキストエディタにハッシュが必要なのか?
どんな機能だい?
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGMacアプリ
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115鼻山
NGNGまずは、型の宣言だな。やっぱりな。抽象化が必要だよな?
じゃ、駒からだ。
type TKOMA=(koNone,koWhite,koBlack);
どうだこの素晴らしい抽象化。 何も置いてないときは koNone、白黒は、koWhiteに koBllackだよ。
これはもう完璧な型宣言だろう。だからinterface部、 uses のすぐ後に書いてやろう。
0116鼻山
NGNGこれはもう、配列しかないだろ? な? じゃあこうだろ?
type TBAN =array [0..7,0..7]of TKOMA;
盤は駒が8x8に置けるんだからこれしかないよな?
0117デフォルトの名無しさん
NGNG沈め!沈め!
0118鼻山
NGNG次は、表示だ。 Delphiには DrawGridって便利なコンポーネントがある。
これを貼り付けて、 そうだな。サイズが変更されても追従するように、
初期化はフォームのOnResizeでやろう。
procedure TForm1.FormResize(Sender: TObject);
begin
with DrawGrid1 do begin
ScrollBars:=ssNone;
ColCount:=8;
RowCount:=8;
DefaultColWidth:=Width div ColCount;
DefaultRowHeight:=Height div RowCount;
FixedCols:=0;
FixedRows:=0;
end;
end;
よし、実行っと・・・・ありゃ? ssNoneが無いって?
ヘルプ出すと StdCtrls にあるのか 何で StdCtrlsが自動的にusesされないんだ?
まあいいや、 uses に StdCtrlsを追加すりゃいいだけだろ。よしよし、とりあえず枠は表示されたと。
0119鼻山
NGNGまあ、メソッドの方が格好いいかもしれないけど、とりあえず手続きでやって必要になってから変えりゃいいや。
procedure InitBAN(var BAN:TBAN);
var x,y:Integer;
begin
for x:=Low(BAN) to High(BAN) do
for y:=Low(BAN[x]) to High(BAN[x]) do
BAN[x,y]:=koNone;
BAN[3,3]:=koWhite;
BAN[4,4]:=koWhite;
BAN[3,4]:=koBlack;
BAN[4,3]:=koBlack;
end;
こんなもんだな。
これをフォームのOnCreateで呼び出せばいいだろ。
procedure TForm1.FormCreate(Sender: TObject);
begin
InitBAN(BAN);
end;
0120鼻山
NGNG一つあればいいんだから、グローバル変数でもいいけど、
とりあえず、これもフォームの public部でいいか。
ここに置く時はvar は不要だから、
TForm1 = class(TForm)
DrawGrid1: TDrawGrid;
procedure FormResize(Sender: TObject);
procedure FormCreate(Sender: TObject);
public
BAN:TBAN;
end;
0121鼻山
NGNGこれはDrawGridのOnDrawCell に書けばいい筈。
えい、まずは力技で、
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
DrawGrid1 .Canvas.Pen.Color:=clBlack;
case BAN[ACol,ARow] of
koWhite:DrawGrid1. Canvas.Brush.Color:=clWhite;
koBlack:DrawGrid1 .Canvas.Brush.Color:=clBlack;
end;
case BAN[ACol,ARow] of
koWhite,koBlack: DrawGrid1.Canvas.Ellipse(Rect);
end;
end;
これでどうだ。とりあえず表示されたぞ。
0122鼻山
NGNG自動的に駒も描画されやがる。
ちくしょう、可愛いやつめ。
0123鼻山
NGNGその為には、置けるかどうか検査する処理が必要だぞ。
それは関数だな。 引数は盤と駒と、その位置だから
function okeruka(const BAN:TBAN;K:TKOMA;x,y:Integer)
で、帰り値は 論理型でいいだろ。
0124鼻山
NGNGどういう場合に駒が置けるか? どういう場合に駒が置けないのか?
まずは、既にに駒があったら置けないな
盤のx,y位置が空である事が条件だ。
Result:=BAN[x,y]=koNone; if not Result then exit;
って事だな。
それから、相手の駒を挟めないと置けない。
これはチョット考えないといけないぞ。
0125鼻山
NGNGまず相手の駒を返す関数を作ろうか。
function AiteNoKoma(K:TKOMA):TKOMA;
begin
result:=koNone;
case K of
koWhite: Result:=koBlack;
koBlack: Result:=koWhite;
end;
end;
0126鼻山
NGNG1、最初の隣が相手の駒でないとダメ
2、次の駒が相手の駒ならさらに検索、空白か盤を超えたらダメ
3、自分の駒が見つかれば置ける
って感じで調べたらいい。
8方向は ステップ dx,dyで表現、位置はx,yで表現しよう。
0127鼻山
NGNG関数 okerukaはこうだ。
置ける場所があって、置ける駒であって、8方向どこかで相手を挟める事
begin
Result:=BAN[x,y]=koNone; if not Result then exit;
Result:=K<>koNone; if not Result then exit;
Result:=Check( 0, 1,x,y); if Result then exit;
Result:=Check( 1, 0,x,y); if Result then exit;
Result:=Check( 0,-1,x,y); if Result then exit;
Result:=Check(-1, 0,x,y); if Result then exit;
Result:=Check( 1, 1,x,y); if Result then exit;
Result:=Check( 1,-1,x,y); if Result then exit;
Result:=Check(-1,-1,x,y); if Result then exit;
Result:=Check(-1, 1,x,y);
end;
2つの条件は満たさなければならないからif NOT 、8つの条件はどれか一つだだから if だ。
0128鼻山
NGNG駒の隣と、その後では別けなきゃいけないから、さらに関数内関数を呼ぼう。
function okeruka(const BAN:TBAN;K:TKOMA;x,y:Integer):boolean;
function Check(dx,dy,x,y:Integer):boolean;
function Check1:boolean;
begin
x:=x+dx;
y:=y+dy;
Result:= x >=LOW(BAN); if not Result then exit;
Result:= x <=HIGH(BAN); if not Result then exit;
Result:= y >=LOW(BAN[x]); if not Result then exit;
Result:= y <=HIGH(BAN[x]); if not Result then exit;
Result:= BAN[x,y]=AiteNoKoma(K) ;
end;
function Check2:boolean;
begin
x:=x+dx;
y:=y+dy;
Result:= x >=LOW(BAN); if not Result then exit;
Result:= x <=HIGH(BAN); if not Result then exit;
Result:= y >=LOW(BAN[x]); if not Result then exit;
Result:= y <=HIGH(BAN[x]); if not Result then exit;
if BAN[x,y]=AiteNoKoma(K) then Result:= Check2;
result:= BAN[x,y]=K;
end;
begin
Result:=Check1; if not Result then exit;
Result:=Check2;
end;
0129鼻山
NGNG0130デフォルトの名無しさん
NGNG面白かったよ。いい意味で
0131デフォルトの名無しさん
NGNGレスつけんなよ
0132鼻山
NGNGとりあえず、もう少しオセロらしく動くようにしてから止める事にする。
まずは、>>128は同じ事をCheclk1 Check2でやってるんでそれをマトメテおこう。
0133鼻山
NGNGfunction Check(dx,dy,x,y:Integer):boolean;
function Check0:boolean;
begin x:=x+dx; y:=y+dy;
Result:= x >=LOW(BAN); if not Result then exit;
Result:= x <=HIGH(BAN); if not Result then exit;
Result:= y >=LOW(BAN[x]); if not Result then exit;
Result:= y <=HIGH(BAN[x]); if not Result then exit;
end;
function Check1:boolean;
begin Result:= Check0; if not Result then exit;
Result:= BAN[x,y]=AiteNoKoma(K) ;
end;
function Check2:boolean;
begin Result:= Check0; if not Result then exit;
if BAN[x,y]=AiteNoKoma(K)
then Result:= Check2
else result:= BAN[x,y]=K;
end;
begin Result:=Check1; if not Result then exit; Result:=Check2;
end;
0134鼻山
NGNGbegin
Result:=BAN[x,y]=koNone; if not Result then exit;
Result:=K<>koNone; if not Result then exit;
Result:=Check( 0, 1,x,y); if Result then exit;
Result:=Check( 1, 0,x,y); if Result then exit;
Result:=Check( 0,-1,x,y); if Result then exit;
Result:=Check(-1, 0,x,y); if Result then exit;
Result:=Check( 1, 1,x,y); if Result then exit;
Result:=Check( 1,-1,x,y); if Result then exit;
Result:=Check(-1,-1,x,y); if Result then exit;
Result:=Check(-1, 1,x,y);
end;
0135鼻山
NGNGfunction KomaWoOku(var BAN:TBAN;var K:TKOMA;x,y:Integer):boolean;
今度はBAN K は参照型って奴にした。 これで、呼び出した方の変数が変更される筈だ。
置けたら置いて、相手の手番にして終わるという処理をする為には K も参照型にしなくちゃな。
begin
Result:=False;
if okeruka(BAN,K,x,y) then begin
Result:=Flip( 0, 1,x,y);
Result:=Flip( 1, 0,x,y);
Result:=Flip( 0,-1,x,y);
Result:=Flip(-1, 0,x,y);
Result:=Flip( 1, 1,x,y);
Result:=Flip( 1,-1,x,y);
Result:=Flip(-1,-1,x,y);
Result:=Flip(-1, 1,x,y);
BAN[x,y]:=K;
K:=AiteNoKoma(K);
Result:=True;
end;
end;
Flipは駒をヒックリ返す処理のつもりだ。
0136鼻山
NGNGこの駒をヒックリ返す処理が問題か。
前の置けるかどうかの判定で、再帰を使ったけど、判定に成功したら再帰で
帰ってくる時のループを使えば簡単じゃないかな?
判定に成功したらisOKって変数をTrueにしてやればいい。
って事で、判定ルーチンからコピペしてくる。
0137鼻山
NGNGvar isOK:boolean;
function Check0:boolean;
begin
x:=x+dx; y:=y+dy;
Result:= x >=LOW(BAN); if not Result then exit;
Result:= x <=HIGH(BAN); if not Result then exit;
Result:= y >=LOW(BAN[x]); if not Result then exit;
Result:= y <=HIGH(BAN[x]); if not Result then exit;
end;
function Check1:boolean;
begin Check0; if not Result then exit;
Result:= BAN[x,y]=AiteNoKoma(K) ;
end;
procedure Flip2;
begin
if not Check0 then exit;
if BAN[x,y]=AiteNoKoma(K)
then Flip2
else isOK:= BAN[x,y]=K;
if isOK then begin
x:=x-dx;
y:=y-dy;
BAN[x,y]:=K;
end;
end;
begin
isOK:=false;
Result:=Check1; if not Result then exit;
Flip2;
end;
0138鼻山
NGNGで、それから帰る時に isOKがTrueだったら 座標を戻して、その駒を自分の駒にしながら帰れば、
おお、ちゃんと勘定が合う。
・・・・当然か。
0139鼻山
NGNGまあとりあえず、OnSelectCellに入れちゃえ。
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
KomaWoOku(BAN,TEBAN, ACol, ARow);
DrawGrid1.Invalidate;
end;
ヘヘ、とりあえず動いてるな。 満足だ。
次はパスだな。 置けない場合にパスが出来なくちゃな。
それには、どこにも置けないって判定が必要だな。
0140鼻山
NGNG簡単にやっつけるには、盤を全部 okeruka でチェックすりゃいいんだろうが、
それって格好悪くないか?
・・・
っと思ったが、実行しても大した時間かからんな。 これでいいのか?
いいんだよな?
0141鼻山
NGNGfunction isPass(const BAN:TBAN;K:TKOMA):boolean;
var x,y:Integer;
begin
Result:=false;
for x:=Low(BAN) to High(BAN) do
for y:=Low(BAN[x]) to High(BAN[x]) do
if okeruka(BAN,K,x,y) then
exit;
Result:=True;
end;
こりゃ、なんかテストする方法考えないとダメだな。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGよくみたら「鼻」山だ!
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG期待あげ
0146鼻山
NGNGオセロプログラムのテストを、そのプログラム自身にやらせるにはどうやったらいいか
考えてたらそっちが面白くなったというか、行き詰まったというか・・・
0147デフォルトの名無しさん
NGNG>考えてたらそっちが面白くなったというか、行き詰まったというか・・・
・・・ん??
白黒ハッキリしてくださいよ!
ガンガレ期待してます
0148デフォルトの名無しさん
NGNGうまい
0149デフォルトの名無しさん
NGNGうまい
0150デフォルトの名無しさん
NGNGうまい
0153デフォルトの名無しさん
NGNG期待あげ
0154デフォルトの名無しさん
NGNG個人的にはCPUのロジックの手順が早く知りたいな
0155Socket775
NGNG付録のチュートリアルの内容が、そのものズバリ
「テキストエディタの作り方」だ。
説明の通りやってけば誰でもできる。
0156デフォルトの名無しさん
NGNGそのチュートリアルはPersonal版では進められないわけだが。
0157デフォルトの名無しさん
NGNG先に日本語勉強しような
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGワロタ
■ このスレッドは過去ログ倉庫に格納されています