C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: VB2008 カウントについて


(過去ログ 79 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■47065 / inTopicNo.1)  VB2008 カウントについて
  
□投稿者/ murai (1回)-(2010/02/17(Wed) 21:36:35)

分類:[VB.NET/VB2005 以降] 

VB2008でゲームのマクロを作っているのですが
GetRed(164, 246) < 240の5回目以上で停止させるようにしたいのですが
まったく機能しません。
書き方が間違っているのでしょうか?

Dim Count As Integer = 0

If GetRed(164, 246) < 240 Then
Count=Count+1

ElseIf Count > 5 Then

Stop()

End If

引用返信 編集キー/
■47066 / inTopicNo.2)  Re[1]: VB2008 カウントについて
□投稿者/ ぽぴ王子 (487回)-(2010/02/17(Wed) 21:51:01)
ぽぴ王子 さんの Web サイト
No47065 (murai さん) に返信
> VB2008でゲームのマクロを作っているのですが
> GetRed(164, 246) < 240の5回目以上で停止させるようにしたいのですが
> まったく機能しません。
> 書き方が間違っているのでしょうか?

「書き方が間違っている」というよりは「書いたとおりにしか実行されない」ので
「意図したとおりに動かないように書いている」という感じですね。

> GetRed(164, 246) < 240
の条件を通るときに
> Count = Count + 1
の処理を通りますよね。

> ElseIf Count > 5
の判断は、ElseIf を使っているので
> GetRed(164, 246) < 240
を『通らない』ときに限って実行されます。

ということは。
> GetRed(164, 246) < 240
が成立するときは
> ElseIf Count > 5
を通りません。つまり、5回目以上という判断は通らないことになります。

これでわかるでしょうか。

コードに起こす前に、まずフローチャートなどを書いてみた方がいいんじゃないでしょうか。

引用返信 編集キー/
■47069 / inTopicNo.3)  Re[2]: VB2008 カウントについて
□投稿者/ murai (2回)-(2010/02/17(Wed) 23:42:24)
No47066 (ぽぴ王子 さん) に返信
通らないと言うことは理解できました。
この場合、正しい書き方はどういう形にするのが理想なのでしょうか?
いろいろ調べて実行してみたのですが、どうしても前進しません。
引用返信 編集キー/
■47071 / inTopicNo.4)  Re[1]: VB2008 カウントについて
□投稿者/ επιστημη (2459回)-(2010/02/18(Thu) 00:13:47)
επιστημη さんの Web サイト
' GetRed(164, 246) < 240 ならば Count+1 し、
If GetRed(164, 246) < 240 Then
  Count=Count+1
End If

’しかるのち (ElseIfだと'さもなくば'になっちゃうねー)
' Count > 5 ならば終了
If Count > 5 Then
  Stop()
End If

ってことスカ?

引用返信 編集キー/
■47072 / inTopicNo.5)  Re[2]: VB2008 カウントについて
□投稿者/ murai (4回)-(2010/02/18(Thu) 00:28:04)
No47071 (επιστημη さん) に返信
ありがとうございます。
修正してみましたが、こういう書き方で大丈夫でしょうか?

Dim Count As Integer = 0

If GetRed(164, 246) < 240 Then 'GetRed(164, 246) < 240 ならば Count+1、
Count=Count+1
End If

If Count > 5 Then 'Count > 5 ならばAの処理
A ()
ElseIf Count < 5 Then 'Count < 5 ならばBの処理
B ()

End If

引用返信 編集キー/
■47073 / inTopicNo.6)  Re[3]: VB2008 カウントについて
□投稿者/ はつね (1195回)-(2010/02/18(Thu) 00:47:35)
No47072 (murai さん) に返信
> ■No47071 (επιστημη さん) に返信
> ありがとうございます。
> 修正してみましたが、こういう書き方で大丈夫でしょうか?

VB2008にはステップ実行や実行しながら変数の内容を表示する機能があります。
ステップ実行して自分の予想通りの行に移っていくか、変数の内容を表示して
自分の予想した通りの値になっているかなどを調べてみるといいでしょう。

このような作業をデバッグといい、プログラミングを行う上で必須の技能です
から、ぜひ挑戦してみてください。

引用返信 編集キー/
■47142 / inTopicNo.7)  Re[4]: VB2008 カウントについて
□投稿者/ murai (5回)-(2010/02/18(Thu) 22:11:54)
Dim Count As Integer = 0

If GetRed(164, 246) < 240 Then 'GetRed(164, 246) < 240 ならば Count+1、
Count=Count+1
End If

If Count > 5 Then 'Count > 5 ならばAの処理
A ()
ElseIf Count < 5 Then 'Count < 5 ならばBの処理
B ()
End If

これで試してみましたが、まったくカウントされません。
カウントの書き方にも問題があるのでしょうか?
0スタートで5までカウントさせたいのですが・・・。
引用返信 編集キー/
■47143 / inTopicNo.8)  Re[5]: VB2008 カウントについて
□投稿者/ Jitta (636回)-(2010/02/18(Thu) 22:26:49)
Jitta さんの Web サイト
No47142 (murai さん) に返信
↓必ずこの行を通ることで、毎回0にリセットされているのでは?
> Dim Count As Integer = 0
>
> If GetRed(164, 246) < 240 Then 'GetRed(164, 246) < 240 ならば Count+1、
> Count=Count+1
> End If
>
> If Count > 5 Then 'Count > 5 ならばAの処理
> A ()
> ElseIf Count < 5 Then 'Count < 5 ならばBの処理
> B ()
> End If
>
> これで試してみましたが、まったくカウントされません。
> カウントの書き方にも問題があるのでしょうか?
> 0スタートで5までカウントさせたいのですが・・・。
引用返信 編集キー/
■47148 / inTopicNo.9)  Re[5]: VB2008 カウントについて
□投稿者/ みきぬ (798回)-(2010/02/19(Fri) 09:44:52)
本題とは関係ない(?)けど、

> If Count > 5 Then 'Count > 5 ならばAの処理
> A ()
> ElseIf Count < 5 Then 'Count < 5 ならばBの処理
> B ()
> End If

Count がぴったり 5 のときはどちらの処理も行われないけど、平気?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -