![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
visual basic.netでフラッシュ暗算のプログラムを作成しようと思っていますが、上手くいきません。
まずランダム関数によって101~999の3桁で試そうとしてます。
これを10個表示して結果を出したいのですが、
本来はlabelbox2に答えを入力し答えを確認しようと思いましたが、表示される数が1津市かでなかったため、
たとえばrが乱数だとした場合試しで乱数をlabel1に結果をlabel2に表示してみたく以下のようなループ文にしました。
for i=1 to 10 step 1
labelbox1.text=r
s=s+r
labelbox2.text=s
next i
のようにしています。
しかしlabelbox2には10個たせれた数が表示し、labelbox1には最後の乱数しかでません。
ですのでこのままではフラッシュ暗算にはならないので空き時間を入れたいのですが、for~next文を途中に追加し空ループで時間を稼ごうとしてもできません。
なにか待ち時間を上手くする方法ありませんか?
まだまだ初心者なのでいまいちよくわかりません。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Option Explicit On
Option Strict On
Option Compare Binary
' Option Infer Off
Class Q4090807A
Inherits System.Windows.Forms.Form
Private QuestionLabel As System.Windows.Forms.Label
Private AnswerTextBox As System.Windows.Forms.TextBox
Private CheckButton As System.Windows.Forms.Button
Private RetryButton As System.Windows.Forms.Button
Private Timer As System.Windows.Forms.Timer
Private Dice As System.Random
Private Const Count As Integer = 10
Private Const Min As Integer = 101
Private Const Max As Integer = 999
Private Current As Integer = 0
Private Numbers As Integer()
Sub New()
Dice = New System.Random()
Me.Size = New System.Drawing.Size(800,600)
QuestionLabel = New System.Windows.Forms.Label
QuestionLabel.Left = 350
QuestionLabel.Top = 100
QuestionLabel.Size = New System.Drawing.Size(100,50)
QuestionLabel.Text = "問題"
AnswerTextBox = New System.Windows.Forms.TextBox
AnswerTextBox.Left = 350
AnswerTextBox.Top = 200
AnswerTextBox.Size = New System.Drawing.Size(100,50)
AnswerTextBox.Enabled = false
CheckButton = New System.Windows.Forms.Button
CheckButton.Left = 350
CheckButton.Top = 300
CheckButton.Size = New System.Drawing.Size(100,50)
CheckButton.Enabled = False
CheckButton.Text = "チェック"
RetryButton = New System.Windows.Forms.Button
RetryButton.Left = 200
RetryButton.Top = 300
RetryButton.Size = New System.Drawing.Size(100,50)
RetryButton.Enabled = True
RetryButton.Text = "再挑戦"
Me.Controls.AddRange(New System.Windows.Forms.Control(){QuestionLabel,AnswerTextBox,CheckButton,RetryButton})
Timer = New System.Windows.Forms.Timer()
Timer.Interval = 1000
AddHandler Timer.Tick,AddressOf Timer_Tick
AddHandler CheckButton.Click,AddressOf CheckButton_Click
AddHandler RetryButton.Click,AddressOf RetryButton_Click
Prepare()
Timer.Enabled = true
End Sub
Private Sub Timer_Tick(Sender As Object,e As System.EventArgs)
If Current < Count Then
QuestionLabel.Text = Numbers(Current).ToString()
Current = Current + 1
Else
Timer.Enabled = False
QuestionLabel.Text = ""
AnswerTextBox.Enabled = True
CheckButton.Enabled = True
End If
End Sub
Private Sub CheckButton_Click(Sender As Object,e As System.EventArgs)
CheckButton.Enabled = False
Dim Answer As Integer = 0
For i As Integer = 0 To Numbers.Length - 1
Answer = Answer + Numbers(i)
Next
Try
If Answer = Integer.Parse(AnswerTextBox.Text) Then
Me.BackColor = System.Drawing.Color.Blue
Else
Me.BackColor = System.Drawing.Color.Red
End If
Catch err As System.FormatException
System.Console.WriteLine(err.ToString()) 'コンソールアプリとして作成したのでこの辺でエラー出るかも
System.Console.ReadKey(true) 'コンソールアプリとして作成したのでこの辺でエラー出るかも
Finally
End Try
End Sub
Sub RetryButton_Click(Sender As Object,e As System.EventArgs)
Timer.Enabled = False
Prepare()
Timer.Enabled = True
End Sub
Sub Prepare()
AnswerTextBox.Enabled = False
AnswerTextBox.Text = ""
CheckButton.Enabled = False
Me.BackColor = System.Drawing.SystemColors.Control
For i As Integer = 0 To Count - 1
ReDim Preserve Numbers(i)
Numbers(i) = (Dice.Next Mod (Max + 1 - Min)) + Min
Next
Current = 0
End Sub
Shared Sub Main()
Dim Form1 As Q4090807A = New Q4090807A
Form1.ShowDialog()
End Sub
End Class
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
do-while文が禁止される理由
-
n重のfor文にするには?
-
エクセルVBAで Do While (1)って?
-
Excel VBAで年度をまたぐ期間の...
-
C++ DirectX カーソルの移動処...
-
break文でループを一気に抜ける...
-
for文while文の無限ループの違...
-
入力した数値を倍々するプログラム
-
C言語 for文を使った一例について
-
C言語のプログラムみてください...
-
猫でもわかる、がわかりません。
-
H8/3048マイコンAD/DA変換について
-
C言語forループが完結した場合...
-
if文の中にfor文なのか、for文...
-
C言語 数字を削除する関数
-
C++のvolatileについて
-
Cプログラムが終了しない
-
C言語の関数の戻り値がおかしい?
-
Aの値からBの値を除するとは??
-
エクセルで可視セルにのみ値貼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
break文でループを一気に抜ける...
-
ループを途中で抜けたいのですが。
-
Excel VBAで年度をまたぐ期間の...
-
C言語forループが完結した場合...
-
For文の終了値を関数にしても問...
-
プログラムで関数は使わない方...
-
Cプログラムが終了しない
-
for文while文の無限ループの違...
-
入力した数値を倍々するプログラム
-
if文を使わずに奇数・偶数を判断
-
UWSCにてある一定の動作を無限...
-
入力した文字列から母音だけを...
-
エクセルでC言語のfor文と同じ...
-
猫でもわかる、がわかりません。
-
PIC のプログラムについて ど...
-
C言語、whileループを抜け出す...
-
VBScriptでSQLに接続し、CSV出...
-
エクセルVBAで Do While (1)って?
-
ループの特定入力終了
おすすめ情報