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

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

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

Re[16]: マインスイーパー作成


(過去ログ 93 を表示中)

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

■55060 / inTopicNo.1)  マインスイーパー作成
  
□投稿者/ aaa (1回)-(2010/11/16(Tue) 11:45:02)

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

visual vasicでマインスイーパーを作成しているのですが



startボタンを押したら爆弾を発生させる
(1)MinePosの配列を0で初期化する(0から9)
Forの二重ループを使う。

(2)乱数の初期化
Randomize()

(3)爆弾の数を乱数で決め,Mineに入れる。
爆弾の数の範囲は10〜20とする。
Rnd()は0以上,1未満の範囲の値を返す。整数化はInt()

(4)Mineの個数だけ爆弾を発生させ、爆弾を発生させた場所のMinePos(y,x)=-1にする。
爆弾を発生させる範囲は y:1〜8 x:1〜8
既に、爆弾がある場所に乱数発生させた場合は,再度乱数を発生させ、爆弾の位置が重ならないようにする。


このプログラムを教えてください
引用返信 編集キー/
■55061 / inTopicNo.2)  Re[1]: マインスイーパー作成
□投稿者/ やじゅ (1774回)-(2010/11/16(Tue) 12:55:30)
やじゅ さんの Web サイト
No55060 (aaa さん) に返信
> visual vasicでマインスイーパーを作成しているのですが
vasic → basic ですね。

これは、課題か何かでしょうか?

> (1)MinePosの配列を0で初期化する(0から9)
> Forの二重ループを使う。
> このプログラムを教えてください

Forの二重ループがそもそも理解出来ないなら、その先は難しいかも
http://adonetvb.com/Leaning/ForNext03.html
引用返信 編集キー/
■55065 / inTopicNo.3)  Re[2]: マインスイーパー作成
□投稿者/ todo (64回)-(2010/11/16(Tue) 13:12:20)
マインスイーパのサンプル
http://www.atmarkit.co.jp/fdotnet/vblab/gridlab_02/gridlab_02_01.html
引用返信 編集キー/
■55066 / inTopicNo.4)  Re[2]: マインスイーパー作成
□投稿者/ aaa (2回)-(2010/11/16(Tue) 13:23:06)
No55061 (やじゅ さん) に返信
> ■No55060 (aaa さん) に返信
>>visual vasicでマインスイーパーを作成しているのですが
basic です。

課題ですが一つ一つずつやりたいので

startボタンを押したら爆弾を発生させる
(1)MinePosの配列を0で初期化する(0から9)
Forの二重ループを使う。

の部分を教えていただいたら幸いです。
引用返信 編集キー/
■55068 / inTopicNo.5)  Re[3]: マインスイーパー作成
□投稿者/ shu (180回)-(2010/11/16(Tue) 14:01:13)
2010/11/16(Tue) 14:03:07 編集(投稿者)
2010/11/16(Tue) 14:02:25 編集(投稿者)

> ■No55066 (aaa さん) に返信
> ■No55061 (やじゅ さん) に返信
>>■No55060 (aaa さん) に返信
> >>visual vasicでマインスイーパーを作成しているのですが
> basic です。
> 
> 課題ですが一つ一つずつやりたいので
> 
> startボタンを押したら爆弾を発生させる
> (1)MinePosの配列を0で初期化する(0から9)
> Forの二重ループを使う。
> 
> の部分を教えていただいたら幸いです。
For x・・・
    ・・・・
    For y・・・
        ・・・
    Next
    ・・・・
Next x
こういうのを2重ループと言います。

引用返信 編集キー/
■55069 / inTopicNo.6)  Re[4]: マインスイーパー作成
□投稿者/ aaa (3回)-(2010/11/16(Tue) 14:23:10)
No55068 (shu さん) に返信
> 2010/11/16(Tue) 14:03:07 編集(投稿者)
> 2010/11/16(Tue) 14:02:25 編集(投稿者)
>
>>■No55066 (aaa さん) に返信
>>■No55061 (やじゅ さん) に返信
> >>■No55060 (aaa さん) に返信
>>>>visual vasicでマインスイーパーを作成しているのですが
>>basic です。
>>
>>課題ですが一つ一つずつやりたいので
>>
>>startボタンを押したら爆弾を発生させる
>>(1)MinePosの配列を0で初期化する(0から9)
>>Forの二重ループを使う。
>>
>>の部分を教えていただいたら幸いです。


二重ループは分かるのですがどの様に使ったらいいか分かりません
わざわざすいません。
この場合は爆弾を発生させる方法です。

引用返信 編集キー/
■55070 / inTopicNo.7)  Re[5]: マインスイーパー作成
□投稿者/ shu (181回)-(2010/11/16(Tue) 14:28:02)
No55069 (aaa さん) に返信
> >>startボタンを押したら爆弾を発生させる
> >>(1)MinePosの配列を0で初期化する(0から9)
MinePos(y,x)=0
はわかります?
引用返信 編集キー/
■55073 / inTopicNo.8)  Re[6]: マインスイーパー作成
□投稿者/ aaa (4回)-(2010/11/16(Tue) 14:39:23)
No55070 (shu さん) に返信
> ■No55069 (aaa さん) に返信
>>>>startボタンを押したら爆弾を発生させる
>>>>(1)MinePosの配列を0で初期化する(0から9)
> MinePos(y,x)=0
> はわかります?



すいません
分かりません。
引用返信 編集キー/
■55078 / inTopicNo.9)  Re[7]: マインスイーパー作成
□投稿者/ shu (183回)-(2010/11/16(Tue) 15:39:32)
No55073 (aaa さん) に返信
> ■No55070 (shu さん) に返信
>>■No55069 (aaa さん) に返信
> >>>>startボタンを押したら爆弾を発生させる
> >>>>(1)MinePosの配列を0で初期化する(0から9)
>>MinePos(y,x)=0
>>はわかります?
>
>
>
> すいません
> 分かりません。
ForとMinePos(y,x)=0を組み合わせれば(1)は終わりなんですが。
何が分からないのでしょうか?
引用返信 編集キー/
■55079 / inTopicNo.10)  Re[8]: マインスイーパー作成
□投稿者/ aaa (5回)-(2010/11/16(Tue) 15:47:44)
>>■No55070 (shu さん) に返信
> >>■No55069 (aaa さん) に返信
>>>>>>startボタンを押したら爆弾を発生させる
>>>>>>(1)MinePosの配列を0で初期化する(0から9)
> >>MinePos(y,x)=0
> >>はわかります?
>>
>>
>>
>>すいません
>>分かりません。
> ForとMinePos(y,x)=0を組み合わせれば(1)は終わりなんですが。
> 何が分からないのでしょうか?


【返信】
(0から9)と書いていましたが何故MinePos(y,x)=0なのか分かりません。
もしforで0から9まで初期化するのであればforを使ってどのように初期化するのも謎です。



引用返信 編集キー/
■55080 / inTopicNo.11)  Re[7]: マインスイーパー作成
□投稿者/ パニーノ (1回)-(2010/11/16(Tue) 15:50:13)
No55073 (aaa さん) に返信
これは学校の課題?
何を勉強してきたの?
基本が分からなければ、教えようがありません。
ここは課題を手伝ってあげるサイトではありません。
赤点を取って、反省しなさい。
引用返信 編集キー/
■55081 / inTopicNo.12)  Re[9]: マインスイーパー作成
□投稿者/ shu (184回)-(2010/11/16(Tue) 15:57:28)
2010/11/16(Tue) 15:58:24 編集(投稿者)
>>>>■No55069 (aaa さん) に返信
> >>>>>>startボタンを押したら爆弾を発生させる
> >>>>>>(1)MinePosの配列を0で初期化する(0から9)
>>>>MinePos(y,x)=0
>>>>はわかります?
> >>
> >>
> >>
> >>すいません
> >>分かりません。
>>ForとMinePos(y,x)=0を組み合わせれば(1)は終わりなんですが。
>>何が分からないのでしょうか?
> 
> 
> 【返信】
> (0から9)と書いていましたが何故MinePos(y,x)=0なのか分かりません。
> もしforで0から9まで初期化するのであればforを使ってどのように初期化するのも謎です。
> 
0番目から9番目の要素を0で初期化するという事です。y,xの値をそれぞれ0から9まで変化させ
配列の各要素を0に設定しましょうという事です。
MinePos(0,0)=0
MinePos(0,1)=0
MinePos(0,2)=0
・・・
MinePos(0,9)=0
MinePos(1,0)=0
MinePos(1,1)=0
MinePos(1,2)=0
・・・
MinePos(1,9)=0
・・・
・・・
・・・
MinePos(9,8)=0
MinePos(9,9)=0
という処理をループで実行します。

引用返信 編集キー/
■55086 / inTopicNo.13)  Re[10]: マインスイーパー作成
□投稿者/ aaa (6回)-(2010/11/16(Tue) 16:49:11)
No55081 (shu さん) に返信
> 2010/11/16(Tue) 15:58:24 編集(投稿者)
>
>
> >>>>■No55069 (aaa さん) に返信
>>>>>>>>startボタンを押したら爆弾を発生させる
>>>>>>>>(1)MinePosの配列を0で初期化する(0から9)
> >>>>MinePos(y,x)=0
> >>>>はわかります?
>>>>
>>>>
>>>>
>>>>すいません
>>>>分かりません。
> >>ForとMinePos(y,x)=0を組み合わせれば(1)は終わりなんですが。
> >>何が分からないのでしょうか?
>>
>>
>>【返信】
>>(0から9)と書いていましたが何故MinePos(y,x)=0なのか分かりません。
>>もしforで0から9まで初期化するのであればforを使ってどのように初期化するのも謎です。
>>
> 0番目から9番目の要素を0で初期化するという事です。y,xの値をそれぞれ0から9まで変化させ
> 配列の各要素を0に設定しましょうという事です。
> MinePos(0,0)=0
> MinePos(0,1)=0
> MinePos(0,2)=0
> ・・・
> MinePos(0,9)=0
> MinePos(1,0)=0
> MinePos(1,1)=0
> MinePos(1,2)=0
> ・・・
> MinePos(1,9)=0
> ・・・
> ・・・
> ・・・
> MinePos(9,8)=0
> MinePos(9,9)=0
> という処理をループで実行します。

じゃあ
For y=0 To 9
For x=0 To 9
MinePos(y,x)=0
next
next

って感じですか??
引用返信 編集キー/
■55088 / inTopicNo.14)  Re[11]: マインスイーパー作成
□投稿者/ パニーノ (2回)-(2010/11/16(Tue) 16:58:31)
> じゃあ
> For y=0 To 9
> For x=0 To 9
> MinePos(y,x)=0
> next
> next
>
> って感じですか??

やればできるじゃないか。
引用返信 編集キー/
■55090 / inTopicNo.15)  Re[11]: マインスイーパー作成
□投稿者/ PATIO (54回)-(2010/11/16(Tue) 18:37:10)
> じゃあ
> For y=0 To 9
> For x=0 To 9
> MinePos(y,x)=0
> next
> next
>
> って感じですか??

というか、正にこういう事をする為のループ処理だと思うんですが、
ループを使う場面が理解できていなかったのかなぁ。
ご本人が今どのあたりのステップにいるのかがわからないので
何処までわかっているべきなのかが判断出来ないんですよね。
だからアドバイスするにしても手探りになってしまう。
まだ、プログラムを作った事も有りませんと言う状態なら
はじめは制御文の使い方をピンポイントで試して行くと良いのだけれど。
いきなり纏まったプログラムを作ろうとしても多分イメージが湧かないと思うし。

プログラム上で使える制御文に関してそれぞれの使い道を説明できますか?
まずはそこからがスタートだと思いますよ。

引用返信 編集キー/
■55115 / inTopicNo.16)  Re[12]: マインスイーパー作成
□投稿者/ shu (186回)-(2010/11/17(Wed) 11:32:19)
時間がたっているのでもう少しヒント

(2)そのまま

(3) {0以上1未満} => {10〜20}までの写像を考える。
まず{10〜20}に対し10引くと{0〜10}
これを整数範囲で以上、未満の表現にすると0以上11未満となる。
つまりInt(Rnd()*11)がこれに相当する

(4)(3)と同様にしてx,yに対し1以上9未満の整数を求める。
MinePos(y,x)=-1 (if MinePos(y,x)=0)
x,y計算に戻る (if MinePos(y,x)=-1)
これを(3)で求めた数分繰り返す。
引用返信 編集キー/
■55417 / inTopicNo.17)  Re[13]: マインスイーパー作成
□投稿者/ aaa (7回)-(2010/11/30(Tue) 09:16:00)
No55115 (shu さん) に返信
> 時間がたっているのでもう少しヒント
>
> (2)そのまま
>
> (3) {0以上1未満} => {10〜20}までの写像を考える。
> まず{10〜20}に対し10引くと{0〜10}
> これを整数範囲で以上、未満の表現にすると0以上11未満となる。
> つまりInt(Rnd()*11)がこれに相当する
>
> (4)(3)と同様にしてx,yに対し1以上9未満の整数を求める。
> MinePos(y,x)=-1 (if MinePos(y,x)=0)
> x,y計算に戻る (if MinePos(y,x)=-1)
> これを(3)で求めた数分繰り返す。




(3)と(4)いまいちよくわかりません
引用返信 編集キー/
■55420 / inTopicNo.18)  Re[14]: マインスイーパー作成
□投稿者/ ふるふる (7回)-(2010/11/30(Tue) 10:11:51)
No55417 (aaa さん) に返信
> ■No55115 (shu さん) に返信
>>時間がたっているのでもう少しヒント
>>
>>(2)そのまま
>>
>>(3) {0以上1未満} => {10〜20}までの写像を考える。
>>まず{10〜20}に対し10引くと{0〜10}
>>これを整数範囲で以上、未満の表現にすると0以上11未満となる。
>>つまりInt(Rnd()*11)がこれに相当する
>>
>>(4)(3)と同様にしてx,yに対し1以上9未満の整数を求める。
>>MinePos(y,x)=-1 (if MinePos(y,x)=0)
>> x,y計算に戻る (if MinePos(y,x)=-1)
>>これを(3)で求めた数分繰り返す。
>
>
>
>
> (3)と(4)いまいちよくわかりません

具体的な数字を当てはめて考えるようにしてみてください。
Rnd() では例えば 0.0233 とか0.9993とか(何桁まで続くかは考えていませんが)が入ってきます。
それを11倍するとどうなりますか?
Intは整数化ですが、もっというと、小数点以下を切り捨てる関数です。
Int(9.993)なら.993が切り捨てられて 9 になります。ほら、整数になった。



引用返信 編集キー/
■55457 / inTopicNo.19)  Re[14]: マインスイーパー作成
□投稿者/ shu (217回)-(2010/12/02(Thu) 17:12:52)
No55417 (aaa さん) に返信
>
> (3)と(4)いまいちよくわかりません
どこまで分かりましたか?

引用返信 編集キー/
■55484 / inTopicNo.20)  Re[15]: マインスイーパー作成
 
□投稿者/ PATIO (66回)-(2010/12/03(Fri) 13:17:53)
2010/12/03(Fri) 13:18:18 編集(投稿者)

>(3)と(4)いまいちよくわかりません

何処までわかって何処からが分からないのかを
自分で説明できる程度まで頑張らないと
やり取りが成立しないと思いますよ。
掲示板で質問するためには質問する側も
自分の頭の中を整理して状況を理路整然と説明できる必要があります。
目の前にいる人に質問するのと違って文字でしか情報を得られないので
質問する側がもっと積極的に情報を出してくれないと表情とかを見て
判断できないので普通に会話するような感覚で質問しても話が通じないのです。

質問する側も自分なりに問題を整理して積極的に情報を出してください。
文字でしかやり取りが出来ない掲示板では質問する側もかなり努力する必要が
あると思いますよ。

引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -