• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelでのVisual Basicのプログラミング)

ExcelでのVisual Basicのプログラミングでモンスターが乱数で攻撃をする方法

このQ&Aのポイント
  • ExcelでのVisual Basicのプログラミングでモンスターが乱数で攻撃をしてHPを減らすものを作りたいのですがどうすればいいのでしょうか?
  • ExcelのVisual Basicプログラミングでモンスターが乱数で攻撃をする方法を教えてください。
  • Excelでのプログラミングでモンスターがランダムな攻撃を行い、HPを減らしていく方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nac03056
  • ベストアンサー率48% (203/419)
回答No.4

誰の補足もないようなのと、適当に作ったにしても計算式があまりに不自然でしたので、修正しました。でついでに要望のありました戦闘結果も出すようにしましたので、あとはパラメータの調整をするなど、存分に改造してみてください。 Randomize ' 乱数初期化 Do dragon.HP = dragon.HP - dragon2.kougeki * Rnd + dragon.bougyo * Rnd ' ドラゴンへの攻撃 dragon2.HP = dragon2.HP - dragon.kougeki * Rnd + dragon2.bougyo * Rnd ' ドラゴン2への攻撃 MsgBox dragon.HP & " " & dragon2.HP ' 双方の残りHPを表示 Loop While dragon.HP > 0 And dragon2.HP > 0 ' 双方が生きている間はdoに戻って戦いを繰り返す If dragon.HP > 0 Then ' ドラゴンが生き残っていたら MsgBox "ドラゴン" & dragon.namae & "が勝ちました" ElseIf dragon2.HP > 0 Then ' ドラゴン2が生き残っていたら MsgBox "ドラゴン" & dragon2.namae & "が勝ちました" Else ' どちらでもなかったら MsgBox "引き分け" End If 注釈などの文脈でおおよその流れはわかると思いますから、いろいろ手を加えてプログラムを理解してみてください。

その他の回答 (3)

  • nac03056
  • ベストアンサー率48% (203/419)
回答No.3

個人的にこういうプログラムは好きなんですが、いかんせんこれでどういう結果を求めているのかはわかりません。 まず、2匹の基本パラメータはあるようですが、このゲーム?はこの2匹が戦うのでしょうか?それともあなたと戦うのでしょうか。また、これらパラメータの用途が何かを(おおよそは想像が付きますが)はっきりさせたほうがいいでしょう。たとえば、kougekiとは通常攻撃の値か最大攻撃の値か、特に最後のif文で50より大きい場合の処理が入ってますが、なぜ50と決めている dragon.kougeki の値が50を超えることがあるのかの説明なしに答えを求めるのは酷というものです。そして一番の問題は、これらの戦闘の結果をどのように表示したいのか。途中経過は表現するのかです。 やはり環境がExcelということで、vbほどの表現が難しいだけに、そのあたりの仕様までははっきりさせないと、どうにもなりません。 あとは私の想像ですが、この後で Randomize ' 乱数初期化 do dragon.HP = dragon.HP - (dragon.bougyo * rnd - dragon2.kougeki * rnd) ' ドラゴンへの攻撃 dragon2.HP = dragon2.HP - (dragon2.bougyo * rnd - dragon.kougeki * rnd) ' ドラゴン2への攻撃 msgbox dragon.HP & " " & dragon2.HP ' 双方の残りHPを表示 loop while dragon.HP > 0 and dragon2.HP > 0 ' 双方が生きている間はdoに戻って戦いを繰り返す と加えることで流れはいいかと思います。(もちろん攻撃の計算式は適当でバランスも取れていませんし、防御が上回って回復してしまう時もあります) p.s. dim の所の変数名のつづりが間違ってますよ。^^

bad-pc
質問者

お礼

モンスター同士が戦うものを作りたかったのですが、説明が足りなくてすみませんでした。すごいしょぼいゲームでいんですが、戦闘結果は~の勝ちで表したいのですがどうすればいいのでしょうか?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>ExcelでのVisual Basicのプログラミング 「エクセルVBA」というのが(分野が)あって、エクセル固有の操作(エクセルでできる機能を)スクリプトで動かすものがあります。 ほぼ仕事(ビジネス)の必要に絡むもの(数値や文字列の加工)です。この質問コーナーはそちらの質問がほとんどです。とりあえず、エクセルは、ゲームなどは念頭にありません(オブジェクト・メソッドプロパティも適したものはない)。 質問者がエクセルしか持ってないからなのか、持ち主が多いエクセルユーザーを対象とするためか判りませんが、VB(6.0相当)として使うならVBということで質問や勉強したら。 ーー なぜエクセルなのか。シートのセルが扱いやすいと思ったのか、良くわかりません。 ーー 質問のコード程度で画面の像が動くなんて想像もできません。 やりたいというだけで、勉強はあまりしてなくてこれからということかな。 もしつくり方を知っている方がいても、このコーナーに回答を上げるのは量的に荷が重いと思う。 全部教えてと丸投げ的になっているので、もう少し判らない課題点を絞って質問すべきです。

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

 この程度の内容では、貴方がどのようなゲームをイメージしているか全く判りません。  まずは、基本的な所から勉強をしましょう。 http://www.geocities.jp/excelgame/books/intro.html http://www1.plala.or.jp/chikada/cell/celltop.htm その他にも、「Excel VBA ゲーム」等で検索すると、役に立つサイトがいっぱいあります。 頑張って下さい。

関連するQ&A

専門家に質問してみよう