Presentation is loading. Please wait.

Presentation is loading. Please wait.

実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.

Similar presentations


Presentation on theme: "実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野."— Presentation transcript:

1 実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野

2 データの貯蔵と利用 カードめくりゲーム カードを20枚配置してユーザが2枚づつめくる 同じカードなら当り。
 カードめくりゲーム カードを20枚配置してユーザが2枚づつめくる 同じカードなら当り。  あたった札にある数はユーザの取り分になる  20枚のカードをあらかじめ配置しておかないといけない  データの貯蔵の仕組みが必要

3 配列によるデータの貯蔵 配列: データの列 card(0)=5, card(1)=3, card(2)=5 などなど
 配列: データの列  card(0)=5, card(1)=3, card(2)=5 などなど  Dim card(20) As Integer 整数20個が入る配列の定義  card(0)からcard(19)までです 例えば  For i=0 to 19 card(i) = i *i Next i

4 エクセルの表を使ったデータの貯蔵 エクセルの表の10列目に果物の名前を たくさんタイプしておく
 エクセルの表の10列目に果物の名前を たくさんタイプしておく  エクセルの表の11列目にその名前を逆順にタイプしておく  ゲーム: 果物の名前をランダムな順に表示してユーザに逆順にタイプさせる

5 カードめくりゲームのプログラム Sub パネルアタック1() Dim card(20) As Integer ‘カードのための配列
Dim Check(20) As Boolean ‘ 重複チェック用配列 Dim mytime As Double Dim i As Integer Dim j As Integer Dim a As integer Dim x As Integer Dim y As Integer Dim row(2) As Integer Dim col(2) As Integer Dim score As Integer   ‘得点 Dim fullscore As Integer  ‘ 満点

6 数字の組を10個生成する For i = 0 To 19 Do a = Int(Rnd() * 20)
Loop Until Check(a) = False ' カードの表。aが2か3なら200というように card(i) = (1 + Int(a / 2)) * 100 Check(a) = True Next i

7 Do Loop 構文1 mytime = Timer Do xxxxxxxx
Loop until Timer > mytime + 100 100秒たつまである操作xxxxxxxをする

8 Do Loop 構文2 mytime = Timer Do xxxxxxxx
Loop while Timer < mytime + 100 100秒たつまである操作xxxxxxxをする

9 初期画面の設定 ' タイムカウンタの表示 Cells(7, 2) = "残り時間" Cells(7, 3) = 100
‘ 0から19までカードの裏に番号をつける For i = 1 To 5 For j = 1 To 4 Cells(i, j) = 4 * (i - 1) + j Next j Next i

10 ゲーム開始 MsgBox "パネルアタック20、がっちり当てましょう"
score = 0 mytime = Timer ‘満点は5500点です fullscore = 5500 

11 最初のカードをめくる While (Timer < mytime + 100) And (score < fullscore)
‘位置(5000,100)に入力窓を出す x = InputBox(“パネル番号を指定してください”, 入力1, , 5000, 100)  'パネルの場所を探す row(1) = Int(x / 4) + 1 col(1) = x - 4 * (row(1) – 1) + 1 'xに対応するカードを表示する Cells(row(1), col(1)) = card(x)

12 二枚目のカードをめくる y = InputBox("もう一つ番号を指定してください", 入力2, , 5000, 100)
row(2) = Int(y / 4) + 1 col(2) = y - 4 * (row(2) – 1) + 1 Cells(row(2), col(2)) = card(y) 'カードが一致したらスコアに加えて表示 If Cells(row(1), col(1)) = Cells(row(2), col(2)) Then score = score + card(x) MsgBox "Bingo" & card(x) & "ドル獲得です。" ' あけたカードの価値は0にする card(x) = 0 card(y) = 0

13 裏返しと残り時間表示 Else ‘カードが違えばもう一度裏返し MsgBox "残念" Cells(row(2), col(2)) = y
Cells(row(1), col(1)) = x Cells(row(2), col(2)) = y End If Cells(7, 3) = mytime - Timer Wend MsgBox "Score = " & score MsgBox "Game Over" Range(“A1:D4”).ClearContents  ‘画面クリアのオブジェクト End Sub


Download ppt "実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野."

Similar presentations


Ads by Google