2010年05月09日
ヒルベルト曲線

Silverlight3 + C#でヒルベルト曲線を描くプログラムを書いてみました。
再帰処理、イベント、BackgrowndWorker、コードによるUIElementの追加などのサンプルとしてどうぞ。
ソースコードはこちらに掲載しています。
2010年03月14日
C#で8クィーンゲームを作成 (あなたは勝てますか?)
Gushwell C# Programming Pageに、「8クィーン・ゲーム」を掲載しました。
Silverlightで実際に対戦できるようにしています。
8×8のチェス盤に2人で交互にクィーンを置いていき、自分の手番のときに置き場所が無いほうが負けというゲームです。
なお、すでに置かれているクィーン(自分が置いたものも含め)の利き筋に新しいクィーンを置くことはできません。
いわゆる8クィーンパズルのゲーム版というところです。
※ボタンをクリックするとゲームが始まります。
この手の思考ゲームの基本の基本だけでプログラムが書けるので、学習用としては、なかなか良い題材だと思います。
ソースコードはこちらで掲載しています。
Silverlightで実際に対戦できるようにしています。
8×8のチェス盤に2人で交互にクィーンを置いていき、自分の手番のときに置き場所が無いほうが負けというゲームです。
なお、すでに置かれているクィーン(自分が置いたものも含め)の利き筋に新しいクィーンを置くことはできません。
いわゆる8クィーンパズルのゲーム版というところです。
※ボタンをクリックするとゲームが始まります。
この手の思考ゲームの基本の基本だけでプログラムが書けるので、学習用としては、なかなか良い題材だと思います。
ソースコードはこちらで掲載しています。
2010年01月17日
シェルピンスキーのギャスケット
2009年08月09日
BackgroundWorkerのサンプルコード(4)
BackgroundWorkerのサンプルコード(1)
BackgroundWorkerのサンプルコード(2)
BackgroundWorkerのサンプルコード(3)
BackgroundWorkerのサンプルコード(3)で掲載したコードとほとんど同じだけど、バックグラウンド処理の結果を受け取れるようにしました。
終了していないのに、結果を取得しようとした場合は、終了するまで待つようにしてあります。
ついでにExecuteメソッドでは、引数を渡せるようにしてあります。
同期するために利用していたManualResetEventですが、代わりにAutoResetEventを使ってみました。
BackgroundWorkerのサンプルコード(2)
BackgroundWorkerのサンプルコード(3)
BackgroundWorkerのサンプルコード(3)で掲載したコードとほとんど同じだけど、バックグラウンド処理の結果を受け取れるようにしました。
終了していないのに、結果を取得しようとした場合は、終了するまで待つようにしてあります。
ついでにExecuteメソッドでは、引数を渡せるようにしてあります。
同期するために利用していたManualResetEventですが、代わりにAutoResetEventを使ってみました。
2009年08月06日
BackgroundWorkerのサンプルコード(3)
BackgroundWorkerのサンプルコード(1)
BackgroundWorkerのサンプルコード(2)
BackgroundWorkerは、Formが無くたって使えます。
今回のサンプルコードは、ManualResetEventを使って、終了まで待てるようにしています。
クラスMyWorkerをもうちょっと汎用的にしたいところですが、BackgroundWorkerの サンプルを示すことが目的なので、これで良しとします。
このプログラムを実行してみればわかりますが、worker1とworker2がパラレルに実行されているのが確認できます。
BackgroundWorkerのサンプルコード(2)
BackgroundWorkerは、Formが無くたって使えます。
今回のサンプルコードは、ManualResetEventを使って、終了まで待てるようにしています。
クラスMyWorkerをもうちょっと汎用的にしたいところですが、BackgroundWorkerの サンプルを示すことが目的なので、これで良しとします。
このプログラムを実行してみればわかりますが、worker1とworker2がパラレルに実行されているのが確認できます。
2009年08月02日
BackgroundWorkerのサンプルコード(2)
BackgroundWorkerのサンプルコード(1)
今度は、処理の進行状況をプログレスバーで表示する例です。
途中で、処理をキャンセルする例にもなっています。
Form1のボタンをクリックすると、Form2が開き、処理を開始します。
処理の進行状況は、プログレスバーで表示され、処理が終わると 自動的にForm2が閉じるというものです。
Form2には、キャンセルボタンが配置されていて、キャンセルボタンを押すと 処理を中止します。
今度は、処理の進行状況をプログレスバーで表示する例です。
途中で、処理をキャンセルする例にもなっています。
Form1のボタンをクリックすると、Form2が開き、処理を開始します。
処理の進行状況は、プログレスバーで表示され、処理が終わると 自動的にForm2が閉じるというものです。
Form2には、キャンセルボタンが配置されていて、キャンセルボタンを押すと 処理を中止します。
2009年07月29日
BackgroundWorkerのサンプルコード(1)
BackgroundWorkerで検索して、このブログに来ている人が結構いるようなので、何回かに分けて、BackgroundWorkerを使ったサンプルを載せたいと思います。
まずは、バックグラウンド処理で得られたデータをListBoxに順に表示する例です。
ついでに、ListBoxの自動スクロールもやってます。
当然、ListBoxに項目を追加している間でも、ListBoxの操作(選択など)が可能です。
まずは、バックグラウンド処理で得られたデータをListBoxに順に表示する例です。
ついでに、ListBoxの自動スクロールもやってます。
当然、ListBoxに項目を追加している間でも、ListBoxの操作(選択など)が可能です。



