前提・実現したいこと
数か月前に勉強し始めたC#超初心者です。
ポーカーのゲームを作っています。
現在手札のカードが何の役に該当するのかの判定をするプログラムを書いてます。
以下ソースコード抜粋です。
C#
1 switch (g.s1) 2 { case 2: 3 One.Visible = true; 4 break; 5 6 case 3: 7 Three.Visible = true; 8 break; 9 10 case 4: 11 Four.Visible = true; 12 break; 13 14 default: 15 16 break; 17 18 }
g.s1は変数で初期値は0です。もし手札にスペードの1があれば、役の判定を行う前にg.s1+=1;しています。
なのでg.s1が2だったら2枚スペードの1があるのでワンペア、3だったらスリーカードというように判定できるようになっています。
OneとThreeとFourはラベルです。プレイヤーに何の役が判定されたかを伝えるためのものになっています。
フルハウスやフラッシュはもう少し工夫が必要になりそうです。
問題は、このスイッチ文に処理が差し掛かった途端十数秒フリーズしてしまうことです。
念のため、この変数g.s1が本当にスペードの1の枚数をカウントしているのかを、
このスイッチ文よりも前の行にラベルを配置して確認しましたが、
そちらは無事しっかりと、ワンペアだった場合は2という数字になっていました。
なので原因はこのスイッチ文の中にあると思っているのですが、どうしてもここの処理がうまくいきません。
エラーメッセージは特に出ていません。
リスクを承知でApplication.DoEvents();を行ってみましたが、改善は見られませんてした。(にわかだったらすみません、)
端的にまとめますと、変数が~だった場合は~~のラベルを表示するという簡単な処理をしたいだけです。
ご教授いただけたら幸いです。
あなたの回答
tips
プレビュー