• 検索結果がありません。

ルーレットプログラム

N/A
N/A
Protected

Academic year: 2021

シェア "ルーレットプログラム"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラムの概要

カジノの代表的なゲーム『ルーレッ ト』を作成する。 先ず、『GO!』ボタンをクリックする と、ルーレット盤上をボールが回転 し、一定時間経過すると、ボールが 止まり、出目を表示するプログラム を作成する。 出目を、1~16、大小、偶数奇数 の内から予想して、予め設定した持 ち点の範囲内で賭け点を決め、賭け 点と出目に依り、1点賭けの場合は 16倍、其他は2倍の配当が得られ る。 此処では、ゲームプログラムを作成 する事に依り、楽しみ乍ら、プログ ラムの制作手順を習得する事を目的として居る。 制作手順としては、実際の作業過程に従い、段階的に機能を追加する方法を採用して居る。 此のプログラムを土台に、更に、各自で機能を追加して行く事が望まれる。

ルーレットプログラム

VB 2005 ④ □ アプリケーション画面のデザイン(標準コントロールの利用) □ プログラムの動作原理(イベント駆動型のプログラム) □ プログラムの構成要素(オブジェクトとプロパティ) □ 値の代入(変数、オブジェクトのプロパティ) □ 値の演算(算術演算子) □ 条件に応じた処理(If 文の利用) □ 自動的に行われる処理(タイマーの利用) 今回の課題項目

(2)

コントロールの種類 プロパティ プロパティの設定値 フォーム Name roulette FormBorderStyle FixedSingle StartPosition CenterScreen Text ルーレット パネル Name pnlRoulette BackgroundImage roulette.gif Size 475, 301 シェイプ Name shpBall FillColor Cyan FillStyle Solid Size 20, 20 ラベル1 Name lblNum AutoSize False BackColor Black ForeColor White Font MS明朝、太字、26 Text 10 TextAlign MiddleCenter

ラベル1 シェイプ タイマー ボタン フォーム パネル ラベル2 ラベル3 テキストボックス

(3)

コントロールの種類 プロパティ プロパティの設定値 ラベル2 Name lblCall AutoSize False BackColor White ForeColor Red Font MS明朝、太字、12 Text 空白 TextAlign MiddleCenter ラベル3 Name lblScr AutoSize False BackColor White ForeColor Black Font MS明朝、太字、12 Text 空白 TextAlign MiddleRight テキストボックス Name txtBet Font MS明朝、太字、12 Text 1 TextAlign Right ボタン Name btnGo Font MS明朝、太字、12 Text GO! タイマー Name tmrGO Interval 100 使用コントロール フォーム アプリケーションウィンドウ、又は、ダイアログボックスと成るウィンドウの事を謂う。フォームには、コン トロールを配置し、フォームとコントロールに関連したプロパティを設定したり、コードを記述する。 パネル 他のコントロールを内包するコンテナに成る事が出来るコントロール。コントロールのグループ分けする場合 等に使用する。 シェイプ(オーバル) フォーム上に直線、長方形、正方形、楕円、円、角丸長方形、角丸正方形等の基本的な図形を表示するグラフ ィカルコントロール。此のコントロールは、コンテナと仕て利用する事は出来ず、亦イベントは発生しないが、 グラフィックスメソッドと異なり、デザイン時に視覚的に確認する事が出来る。

此のコントロールを使用する為には、Visual Basic 2005 では、Power Packs 2.0 以上を追加する必要が有る。 ラベル テキストを表示するコントロール。此のテキストは、ユーザーが直接入力したり変更したりする事は出来ない。 テキストボックス テキストの入力や表示を行う。キャレットの移動や文字の削除等の入力に必要な機能を備えて居る。 ボタン ユーザーが選択したコマンド(命令)や操作を実行するコントロール。OKボタンや実行ボタン等、処理の開 始や中断・終了の合図に用いられ、最も良く利用される。 タイマー 一定の時間間隔でイベントが発生する様にするコントロール。一定時間毎にプログラムを実行したい時に使用 する。此のコントロールは、実行時には表示されない。

(4)

Public Class roulette

' フォームモジュールレベルでグローバルな定数の宣言 Private Const RAD As Single = -3.14159 / 180 Private Const DEG As Single = -22.5 * RAD Private Const HLF As Single = DEG / 2

' フォームモジュールレベルでグローバルな変数の宣言 Private Num, Cnt As Integer

Private Pos( ) As Integer = { 10, 7, 15, 3, 16, 1, 13, 9, 5, 11, 2, 8, 12, 4, 6, 14 } Private Scr As Integer = 10

' フォームが読み込まれた時の処理

Private Sub roulette_Load( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles MyBase.Load Randomize( ) Call SetBallPos( 0 ) shpBall.Visible = True lblScr.Text = Scr.ToString( ) End Sub ' パネルがクリックされた時の処理

Private Sub pnlRoulette_MouseUp( ByVal sender As Object, _

ByVal e As System.Windows.Forms.MouseEventArgs ) Handles pnlRoulette.MouseUp If e.X < 320 Or e.X > 459 Then Exit Sub

If e.Y < 85 Or e.Y > 198 Then Exit Sub If tmrGO.Enabled Then Exit Sub

Dim S As String = "" If e.Y < 161 Then

S = (( e.X - 320 ) ¥ 35 + (( e.Y - 85 ) ¥ 19 ) * 4 + 1 ).ToString( ) ElseIf e.Y < 180 Then

S = IIf( e.X < 390, "LOW", "HIGH" ) Else

S = IIf( e.X < 390, "ODD", "EVEN" ) End If

lblCall.Text = S End Sub

' コマンドボタン(GO!)がクリックされた時の処理

Private Sub btnGO_Click( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles btnGO.Click

Dim B As Long = Val( txtBet.Text ) If B < 1 Or B > Scr Then Exit Sub Num = Int( Rnd( ) * 20 + 30 ): Cnt = 0

btnGO.Enabled = False: tmrGO.Enabled = True End Sub

1 コード記述画面を表示して左記の コードを入力する。 2 フォーム上のコントロール を配置して居ない処をダブルクリ ックして、コード記述画面を表示 し、左記のコードを入力する。 4 デザイン画面で、ボタンをダブル クリックして、コード記述画面を 表示し、左記のコードを入力する。 3 デザイン画面で、イベン ト画面に切り替える。其 の後、KeyDown の項目 をダブルクリックして、 コード記述画面を表示 し、下記のコードを入力 する。

(5)

' タイマーが一定間隔で行う処理

Private Sub tmrGO_Tick( ByVal sender As System.Object, ByVal e As System.EventArgs ) _ Handles tmrGO.Tick Call SetBallPos( Cnt ) Cnt += 1 If Cnt > Num Then tmrGO.Enabled = False btnGO.Enabled = True

Dim S As String = lblCall.Text Dim B As Long = Val( txtBet.Text ) Dim N As Integer = Val( S )

Dim M As Integer = Val( lblNum.Text ) Scr -= B

If N > 0 Then

If N = M Then Scr += B * 16 ElseIf S = "LOW" And M < 9 Then Scr += B * 2

ElseIf S = "HIGH" And M > 8 Then Scr += B * 2

ElseIf S = "ODD" And ( M Mod 2 = 1 ) Then Scr += B * 2

ElseIf S = "EVEN" And ( M Mod 2 = 0 ) Then Scr += B * 2 End If lblScr.Text = Scr.ToString( ) End If End Sub ' ボールの位置を設定するジェネラルサブププロシージャ Private Sub SetBallPos( ByVal N As Integer )

Dim X As Single = 140 + Math.Sin( N * DEG + HLF ) * 140 Dim Y As Single = 140 - Math.Cos( N * DEG + HLF ) * 140 shpBall.Top = Y

shpBall.Left = X

lblNum.Text = Pos( N Mod 16 ) End Sub End Class 5 デザイン画面で、タイマーをダブ ルクリックして、コード記述画面 を表示する。 6 コード記述画面を表示して左記の コードを入力する。

(6)

コントロールの配置

フォームに配置するコントロールを、ツールボックスより選択(クリック)し、フォーム上でドラ ッグする。 ※ 此の方法だと、コントロールの位置とサイズを決めて配置する事が出来る。 ※ ツールボックスのコントロールを、ダブルクリックする事でも、コントロールをフォームに配 置する事が出来る。 此の場合には、既定のサイズのコントロールが、フォームに配置される。 ※ 不可視のコントロール(タイマー等)は、仮令フォーム上でドラッグしても、フォーム上に配 置される事は無く、デザイナ画面の下部に表示される。 ワンポイント アドバイス

参照

関連したドキュメント

がれき類の処理体制 1.不明者捜索に係るがれき類の撤去(人命隊)

太陽光(太陽熱 ※3 を含む。)、風力、地熱、水力(1,000kW以下)、バイオマス ※4.

保安規定第66条条文記載の説明備考 表66-12電源設備 66-12-1常設代替交流電源設備①

印刷物の VOC排出 抑制設計 + 環境ラベル 印刷物調達の

産業廃棄物の種類 建設汚泥 廃プラスチック類 排    出  

産業廃棄物の種類 排    出   量. 産業廃棄物の種類 排   

産業廃棄物の種類 排    出  

産業廃棄物の種類 排    出   量. 産業廃棄物の種類 排