■No39575 (へっぽこ さん) に返信
> number = rn.Next(10)
> number *= -1
number って何ですか?
番号とか数字とかいう意味だとすると、 *= -1 は何をしているのですか?
「番号に -1 を掛ける」ことに、どういう意味があるのですか?
適切な変数名に直してください。
英語が面倒なら、日本語も使えますよ。
> If PictureBox1.Left < 0 Or PictureBox1.Left > Me.Width Then
なんでこんな複雑な条件式を書くのかなぁ?
まとめて書いたほうが格好良さそう? たしかにそういうこともありますが、それはちゃんと動いてからの話。
ちなみに、格好良く書くなら、この if 文全体…
> If PictureBox1.Left < 0 Or PictureBox1.Left > Me.Width Then
> number *= -1
> PictureBox1.Left += number
> Else
> PictureBox1.Left += number
>
>
> End If
…は、こう↓書けますね。
If PictureBox1.Left < 0 Or PictureBox1.Left > Me.Width Then
number *= -1
End If
PictureBox1.Left += number
で。
やらせたいことは、こういうことですか?
1. 乱数で決めた位置に画像を表示させる。
2. 一定の時間間隔で、画像を移動させる。ただし…
2-1. 移動させる距離は乱数で決定する。
2-2. 移動させる方向は、最初は右向き。ただし、移動させる直前の時点で…
2-2a) すでに画像がウィンドウの右端から外へ完全に出ていた場合は、左向きに変える。
2-2b) すでに画像がウィンドウの左端から外へ少しでも出ていた場合は、右向きに変える。
※ 2-2a と 2-2b が対称になっていないのが、ちょっと気になりますが f(^^;
やらせたいことは、これでいいですか?
プログラムってのはコンピューターに対する命令ですよね。
命令をいきなりプログラミング言語で考えるのは、そりゃあ難しいです。
まずは、日本語で命令をきっちりと考えてから、プログラミング言語に翻訳しましょう。
さて。
やらせたいこと を日本語で記述した中に、number (番号) は出てきていませんよね?
それで最初の質問をしたのです。
画像を移動させるために決定しなければならないことは?
移動させる距離 と 移動させる方向 の 2つではありませんか?
※ 「そんなことは分かってるよ。2つ合わせて number にしたんだ!」 ということかもしれませんが、
それはプログラムがちゃんと動くようになってから。
どうしてもというなら、その考え方で、やらせたいことを日本語できっちり書いてから。
|