スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

7/22

N(仮名)さん、PCでEXCEL使えたら、下にやり方書くので遊んでみてくだしあ。

明日は休みということもあり、EXCELを使ってプログラムを組んでちょっとしたゲームを作ってみました。

EXCELでは、VBAというプログラム言語を組める事ができ、最近それを知りました。

それで久々に遊戯王を見ててプログラムを組みたくなったので作ってみました。

EXCEL画面を開き、ALTとF11を押すことで、下の画面になると思います。

PG1.jpg

そしたら赤い○のついている挿入タブから標準モジュールを選択します。

すると下のようなプログラムを入力できる画面がでてくると思います。

PG2.jpg


この画面で赤い○の所に、自分の作ったプログラムをコピーすればおkです。

ちなみに自分の作ったプログラムは続きを読むを押すと表示されます。

ここからはゲーム内容について。

F5を押せばゲームが始まります。

PG3.jpg

OKを押すと下の画面がでてくると思います。

PG4.jpg

カードの種類は4種類あり、

火のカード水のカード

土のカード風のカード

があります。

ここでは、1~4の数字を入力してどの属性のカードを選ぶか決めます。

各属性のカードには1~1000のランダムの数字が入っています。

ではカードの相性について。

火のカード風のカードに強く

風のカード土のカードに強く

土のカード水のカードに強く

水のカード火のカードに強い設定です。

相手より相性がよければ、自分の数字は「倍」になり、

逆に相性が悪ければ、相手の数字が「倍」になります。

例として1の火のカードを選んだとしたら下の画面が出てきます。

PG5.jpg

先ほども言った通り、お互いのカードの数字はランダムで構成されています。

そして、相手の数字より大きければ、自分の数字から相手の数字を引いた数を相手のライフから減らす事ができます。

逆に、相手の数字より小さければ、相手の数字から自分の数字を引いた数分、自分のライフが減ります。


この例では自分が火のカード、相手が水のカード

相性が悪く、相手のカードの数が倍になっています。

そして、結果画面

PG6.jpg

相性悪いものの、

自分「710」相手「92」で自分のほうが618大きいので、相手のライフから618ポイント減ります。

こうしてまたカード選択画面に戻り、どちらかのライフが0になると終了です。

PG8.jpg

すると

PG9.jpg

このような画面が出てきて終了です。

結論:更新とプログラム作りでかなりの時間を費やしました。



Sub ex000()

Dim a As Integer
Dim b As Integer

Dim m As Integer
Dim mm As Integer

Dim y As Integer
Dim yy As Integer

Dim mHP As Integer
Dim yHP As Integer

Dim msg As String


mHP = 5000
yHP = 5000

MsgBox ("カードバトル!" & vbCr & vbCr & "自分のライフ:" & mHP & vbCr & vbCr & vbTab & vbTab & "vs" _
& vbCr & vbCr & vbTab & vbTab & "相手のライフ:" & yHP)

Do While mHP > 0 And yHP > 0
msg = ""
m = 0
a = Int(Rnd() * 1000) + 1
b = Int(Rnd() * 1000) + 1


Do While m > 4 Or m < 1

m = InputBox("カード入力" & vbCr & "1=火のカード 2=水のカード 3=土のカード 4=風のカード")

If m > 4 Or m < 1 Then
MsgBox ("1~4のカードを入力してください。")
End If

Loop

mm = m
m = a

y = Int(Rnd() * 40) + 1

If y >= 1 And y <= 10 Then
yy = 1
ElseIf y >= 11 And y <= 20 Then
yy = 2
ElseIf y >= 21 And y <= 30 Then
yy = 3
Else
yy = 4
End If

y = b

msg = msg & "自分のカード:"

If mm = 1 Then
msg = msg & "火のカード" & vbCr
End If

If mm = 2 Then
msg = msg & "水のカード" & vbCr
End If

If mm = 3 Then
msg = msg & "土のカード" & vbCr
End If

If mm = 4 Then
msg = msg & "風のカード" & vbCr
End If

msg = msg & vbCr & vbTab & m



If mm = 1 And yy = 4 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & m & " * 2"
End If
If mm = 2 And yy = 1 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & m & " * 2"
End If
If mm = 3 And yy = 2 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & m & " * 2"
End If
If mm = 4 And yy = 3 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & m & " * 2"
End If


If mm = 1 And yy = 4 Then
msg = msg & vbCr & vbCr & vbTab & m * 2
End If
If mm = 2 And yy = 1 Then
msg = msg & vbCr & vbCr & vbTab & m * 2
End If
If mm = 3 And yy = 2 Then
msg = msg & vbCr & vbCr & vbTab & m * 2
End If
If mm = 4 And yy = 3 Then
msg = msg & vbCr & vbCr & vbTab & m * 2
End If


If mm = 1 And yy = 4 Then
m = m * 2
End If
If mm = 2 And yy = 1 Then
m = m * 2
End If
If mm = 3 And yy = 2 Then
m = m * 2
End If
If mm = 4 And yy = 3 Then
m = m * 2
End If



msg = msg & vbCr & vbCr & vbTab & "VS" & vbCr


If yy = 1 And mm = 4 Then
msg = msg & vbCr & vbCr & vbTab & y * 2
End If
If yy = 2 And mm = 1 Then
msg = msg & vbCr & vbCr & vbTab & y * 2
End If
If yy = 3 And mm = 2 Then
msg = msg & vbCr & vbCr & vbTab & y * 2
End If
If yy = 4 And mm = 3 Then
msg = msg & vbCr & vbCr & vbTab & y * 2
End If


If yy = 1 And mm = 4 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & y & " * 2 "
End If
If yy = 2 And mm = 1 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & y & " * 2 "
End If
If yy = 3 And mm = 2 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & y & " * 2 "
End If
If yy = 4 And mm = 3 Then
msg = msg & vbCr & vbCr & "相性により倍化 " & y & " * 2 "
End If

msg = msg & vbCr & vbCr & vbTab & y & vbCr



msg = msg & vbCr & "相手のカード:"

If yy = 1 Then
msg = msg & "火のカード" & vbCr
End If

If yy = 2 Then
msg = msg & "水のカード" & vbCr
End If

If yy = 3 Then
msg = msg & "土のカード" & vbCr
End If

If yy = 4 Then
msg = msg & "風のカード" & vbCr
End If

If yy = 1 And mm = 4 Then
y = y * 2
End If
If yy = 2 And mm = 1 Then
y = y * 2
End If
If yy = 3 And mm = 2 Then
y = y * 2
End If
If yy = 4 And mm = 3 Then
y = y * 2
End If

MsgBox msg

If m > y Then
yHP = yHP - (m - y)
ElseIf m < y Then
mHP = mHP - (y - m)
Else
MsgBox ("DRAW")
End If

If mHP < 0 Then
mHP = 0
End If

If yHP < 0 Then
yHP = 0
End If

If m > y Then
MsgBox ("WIN!" & vbCr & vbCr & m - y & "相手のライフを削りました" & vbCr & vbCr & "自分のライフ:" & mHP & vbTab & "相手のライフ:" & yHP & vbTab)
ElseIf m < y Then
MsgBox ("LOSE・・" & vbCr & vbCr & y - m & "自分のライフを削られました" & vbCr & vbCr & "自分のライフ:" & mHP & vbTab & "相手のライフ:" & yHP & vbTab)
Else
MsgBox ("引き分けなので変わらず" & vbCr & vbCr & "自分のライフ:" & mHP & vbTab & "相手のライフ:" & yHP & vbTab)
End If


Loop

If mHP > yHP Then
MsgBox ("ユーの勝ちデ~ス")
ElseIf mHP < yHP Then
MsgBox ("ユーの負けデ~ス")
Else
MsgBox ("引き分けデ~ス")
End If

End Sub

コメントの投稿

非公開コメント

プロフィール

RC-P90

Author:RC-P90
雷鯖の何処かに出没中。
(元青鯖)
1st:アチャ4転890↑
   (レベルだけの人)
2nd:WIZ4転880↑
   (たまにGVでてる人)
3rd:シフ4転870↑
   (攻城で妨害する人)

最近の記事
カテゴリー
月別アーカイブ
RSS
リンク
カウンター
フリーエリア
©2008 L&K Logic Korea Co., Ltd. All Rights Reserved. ©2008 GameOn Co., Ltd. All Rights Reserved. 当サイトで利用している画像及びデータは、株式会社ゲームオンに帰属します。 許可無くご利用又は転用する事は出来ませんので、予めご了承下さい。

ファンサイトランキングやってます! red_bana.jpg

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。