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

Slides:



Advertisements
Similar presentations
プログラミング Ⅱ 第2回 第1回(プログラミングⅠの復 習) の解説. プログラムの作り方 いきなり完全版を作るのではなく,だんだ んふくらませていきます. TicTa cToe1.
Advertisements

情報基礎実習 I (第6回) 木曜4・5限 担当:北川 晃. Stream クラスを用いたファイルの接続 … Dim インスタンス名 As New IO.StreamReader( _ “ ファイルの絶対パス ”, _ System.Text.Encoding.Default) … s = インスタンス名.
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
第14回:表計算の発展的話題 2015 年 7 月 21 日 清見礼.  本日の授業の資料は今日中に 7/jc2015.html においておく。  どうしてもうまくダウンロードできない、見るこ とができない、などあれば.
1 情報基礎 A プログラムやソフトウエアの 構造 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
1 情報基礎 A 第 6 回 プログラミング入門 VBA の基本文法 1 - 計算の基本構造とプログラミング - 準備・変数・データの入出力 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
情報処理基礎 A ・ B 第 5 回 プログラミング入門 操作の自動化を実現する仕組み. 2004/11/16 ・ 17 情報処理基礎 A ・ B 2 本日の内容 処理の自動化~プログラムの概念 ハードウェアとソフトウェア プログラミング言語 Excel における処理の自動化 入力支援の機能 分析ツール.
プログラミング演習( 2 組) 第 9 回
プログラミング基礎I(再) 山元進.
徳山豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
情報基礎実習I (第4回) 木曜4・5限 担当:北川 晃.
徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
VBAを通して プログラム言語の基本構造を学ぶ
情報基礎実習I (第7回) 木曜4・5限 担当:北川 晃.
12.3,E,-15, 12.3,E5,+,=, >,<,…,
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
6.3 2次元DFT (1)2次元DFTとは 画像のような2次元信号をサンプリングしたデータを 2次元DFTを
VBA H106077 寺沢友宏.
第四回 VB講座 画像とタイマー.
情報基礎A 第13週 VBAプログラミング VBAの基本文法7・実際のデータ処理
情報基礎実習I (第5回) 木曜4・5限 担当:北川 晃.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
プログラミング演習(2組) 第12回
情報基礎A 第7週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
4.2 連立非線形方程式 (1)繰返し法による方法
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
6.4 離散的コサイン変換 (DCT : discrete cosine transform ) (1)DCTとは
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
実例で学ぶプログラミング VBAを用いて簡単なゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
本時の目標 「簡単なプログラム言語の意味を理解し、マクロ機能を使って簡単なプログラムを作ることができる。」
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
第二回 VB講座 電卓を作ろう.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
情報実習I (第7回) 木曜4・5限 担当:北川 晃.
相関.
すべてのレポートの提出期限 1月22日 火曜日 これ以降は特殊な理由が無い限り レポートを受け取りません!
「入力」はInputBoxやテキストボックスに限らず、 セルからのデータの入力や、チェックボックス等からの入力全てを含める。
仕様4 元素名他 初期画面作成 仕様1 元素数の入力 仕様2 分子名の判定 仕様3 飽和炭化水素の判定 CとH数だけではだめ
結果によって表示などを変えるときは、変数に結果に対応した文言を格納し、
VBで始めるプログラミング 第三回 コードを書こう!! まきはた@ナーク ’04/05/21.
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
プログラムの基本構造と 構造化チャート(PAD)
1~15までの数字の中から、 1個の数字を選び、覚えて下さい。
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
先週の復習 2重ループを用いた、 表の記入と読み込み.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
第6回:得点を表示しよう! (文字の表示、乱数)
情報工学Ⅱ (第8回) 月曜4限 担当:北川 晃.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
アルゴリズムの視覚化 この図は左が大きく、 右が小さくなるようにソートしている  この図は左が大きく、  右が小さくなるようにソートしている
プログラミング入門2 第5回 配列 変数宣言、初期化について
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
6.2 高速フーリエ変換 (1)FFT(fast Fourier transform)とは
6.5 アダマール(Hadamard)変換 (1)アダマール変換とは
共振を防ぐように設計を行ったり, 振動を早く減衰させる設計を行う際, 固有値と固有ベクトルを求めることが重要
プログラミング言語によっては,複素数が使えない。
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
5.2 グレゴリー・ニュートン(Gregory-Newton)の補間式 (1)導入
5.3 ラグランジェ(Lagrange)の補間式
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

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

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

配列によるデータの貯蔵 配列: データの列 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

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

カードめくりゲームのプログラム 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  ‘ 満点

数字の組を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

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

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

初期画面の設定 ' タイムカウンタの表示 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

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

最初のカードをめくる 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)

二枚目のカードをめくる 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

裏返しと残り時間表示 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) = 100 + mytime - Timer Wend MsgBox "Score = " & score MsgBox "Game Over" Range(“A1:D4”).ClearContents  ‘画面クリアのオブジェクト End Sub