投稿類別 : 資訊類 篇名 : 森林記憶王 -Visual Basic 遊戲實作 作者 : 陳識宇 暨大附中 高三 10 班吳宗益 暨大附中 高三 9 班 指導老師 : 楊智欽

Similar documents
Visual Basic D 3D

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

Microsoft PowerPoint - VB14.ppt

投影片 1

untitled

投影片 1

Microsoft Word - 小心翼翼的二十一點N.doc

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

Microsoft Word - 專題製作研究報告書.doc

穨文件1


TC35短信发送程序设计

CHAPTER VC#

Chapter 16 集合

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

Excel VBA Excel Visual Basic for Application

ThreeDtunnel.doc

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

投稿類別:電子工程類

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

多層次傳銷與獎金系統

PowerPoint Presentation

VB控件教程大全


(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

3-1 Wii ( )

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

untitled

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

ActiveX Control

Microsoft Word - FPKLSC_21.docx

Microsoft PowerPoint - OPVB1基本VB.ppt








1



IsPostBack 2

untitled

2010年3月计算机等级考试四级网络工程师笔试

封面-12

VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2

2

untitled

Microsoft Word - ACG chapter00c-3ed.docx

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl

投影片 1

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

四川省普通高等学校

投稿類別 : 資訊類 篇名 : 重返校園 -Visual Basic 遊戲實作 作者 : 蔡少瑜 國立暨南國際大學附屬高級中學 高三 10 班廖承瀚 國立暨南國際大學附屬高級中學 高三 10 班蕭閔方 國立暨南國際大學附屬高級中學 高三 10 班 指導老師 : 楊智欽老師

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

2009年3月二级VB语言笔试真题

2009年3月二级VB语言笔试真题

Visual C# 2005程式設計

檲檲檲檲檲檲 1,,,,, ',, ), :,, 1

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

<4D F736F F D20B3CCD0F2D4B12DC9CFCEE7CCE2A3AD3037C9CF>

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

中華民國第 四 十 七 屆中小學科學展覽會

untitled

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

92 (When) (Where) (What) (Productivity) (Efficiency) () (2) (3) (4) (5) (6) (7) em-plant( SiMPLE++) Scheduling When Where Productivity Efficiency [5]

新・解きながら学ぶJava

全國高職學生102年度專題製作競賽

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

全國高職學生104年度專題暨創意製作競賽

Microsoft PowerPoint - Chapter5

untitled

Microsoft PowerPoint - vb_net5

<4D F736F F D20B0F2B4FAA4C0B56FA874B2CEA4A7ACE3A873A2B02E646F63>

untitled

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

全国计算机技术与软件专业技术资格(水平)考试

Microsoft Word - ACL chapter00a-1ed .doc

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

CHAPTER 1

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice

壹 前 言 解 開 2048 的 謎 一 研 究 動 機 最 近 我 們 都 很 熱 衷 於 2048 這 款 遊 戲, 遊 戲 方 法 非 常 簡 單, 但 是 想 要 達 成 2048 卻 很 難, 每 次 只 差 臨 門 一 腳 就 能 達 到 2048, 因 此 都 沒 有 成 功 過 於

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc)

p-2


3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献

投稿類別 : 資訊類 篇名 : Visual Basic 2008 記憶翻牌遊戲 作者 : 蔣鎧駿 國立沙鹿高級工業職業學校 資處處理科二年甲班賴柏臻 國立沙鹿高級工業職業學校 資處處理科二年甲班李嘉峻 國立沙鹿高級工業職業學校 資處處理科二年甲班 指導老師 : 謝若湘老師

VB程序设计教程

2

Transcription:

投稿類別 : 資訊類 篇名 : 作者 : 陳識宇 暨大附中 高三 10 班吳宗益 暨大附中 高三 9 班 指導老師 : 楊智欽

壹 前言 一 研究動機 我們的英文不是很好, 希望透過高中的遊戲製作專題, 可以做出一款學習英文的遊戲, 我們想到透過記憶翻牌的遊戲來學習英文, 在玩遊戲的過程讓學英文更有趣, 而且不會枯燥乏味, 即使對英文沒興趣也能慢慢喜歡上它 二 研究目的 製作一個記憶翻牌遊戲, 並將把動物的英文單字融入遊戲中 三 研究方法 ( 一 ) 文獻分析法 試玩網路上的記憶遊戲, 擷取所要元素融入我們遊戲中 ( 二 ) 實作研究法 以 MediBang Paint 及 PhotoImpactX3 繪製角色, 並用 Visual Basic 設計遊戲 四 研究流程圖 主題確認收集資料繪製角色撰寫程式遊戲測試遊戲完成 圖 1 研究流程圖 ( 資料來源 : 本組自行繪製 ) 1

貳 正文 一 遊戲流程 遊戲開始 遊戲說明 答案顯示 5 秒 計時 60 秒 翻牌第 1 次 翻牌第 2 次 秒數減 1 否 否 檢查 2 次翻牌是否正確 扣血 10 點 秒數 =0 是 是是否答 Z 對 8 否 血量 =0 是 否 是 進入下一關 遊戲結束 圖 2 遊戲流程 2

二 遊戲物件說明 表 1 遊戲物件說明物件 1- 青蛙物件 2- 青蛙文字物件 3- 鴨子物件 4- 鴨子文字 物件 5- 熊物件 6- 熊文字物件 7- 企鵝物件 8- 企鵝文字 物件 9- 河馬物件 10- 河馬文字物件 11- 狗物件 12- 狗文字 物件 13- 海豹物件 14- 海豹文字物件 15- 烏龜物件 16- 烏龜文字 物件 17- 章魚物件 18- 章魚文字物件 19- 野豬物件 20- 野豬文字 物件 21- 猩猩物件 22 猩猩文字物件 23- 駱駝物件 24- 駱駝文字 ( 表資料來源 : 本組自行繪製 ) 3

四 遊戲成果 遊戲開始前的說明, 接下遊戲說明鈕即可開始遊玩 圖 3 遊戲說明 一進遊戲會有 5 秒的時間記憶牌的位置 圖 4 遊戲開始停 5 秒 5 秒的時間結束, 牌就會蓋上, 遊戲就開始了 圖 5 遊戲蓋牌 4

選擇相同圖案與文字的牌卡配對, 左圖已配對完成 3 組, 完成 8 組即可破關進第下一關 圖 6 配對 3 組 每進入下一關時間會減少 10 秒的翻牌時間, 翻牌的速度要愈來愈快 圖 7 破關畫面 牌翻錯太多次, 左上方的血量會減少, 血扣光了遊戲就結束 圖 8 闖關失敗畫面 ( 圖片資料來源 : 本組自行設計 ) 5

四 遊戲程式碼 ( 一 ) 隨機抽題 (RandomQuestion 副程式 ) 隨機從 12 組牌卡中抽出 8 組不重覆的牌卡 Private Sub RandomQuestion() Dim i, n, m As Integer Dim t As String i = 1 Dim f(num) As Boolean ' 紀錄該編號的動物是否已被抽過,true 表示抽過 Do Until i > 16 Randomize() n = Int(Rnd() * num) + 1 If f(n) = False Then ' 如果 f(n) 還沒被抽過 f(n) = True ' 將 f(n) 設為 true b(i).tag = Format(n, "000") & "-1" ' 紀錄動物編號在按鈕的標籤 b(i + 1).Tag = Format(n, "000") & "-2" ' 紀錄動物名稱在按鈕的標籤 i += 2 ' 數量 +2, 在抽下 2 個 End If Loop For i = 1 To 99 ' 將抽中的動物換位置 Randomize() m = Int(Rnd() * 16) + 1 ' 隨機從 16 個檔中抽 m 號 n = Int(Rnd() * 16) + 1 ' 隨機從 16 個檔中抽 n 號 t = b(m).tag : b(m).tag = b(n).tag : b(n).tag = t ' 將 b(m) 及 b(n) 標籤交換 Next i End Sub ( 二 ) 翻牌 (btn 按鈕 -Click 事件 ) 依據玩家的翻牌, 判斷牌翻的結果是否正確, 如果正確顯示牌卡, 如果不正確蓋上 2 張牌卡並扣血 Private Sub btn_click(sender As Object, e As EventArgs) If sender.backcolor = Color.Gray Then ' 判斷此按鈕是否被翻過 n += 1 ' 翻牌次數 +1 sender.backgroundimage = Image.FromFile("..\..\Resources\" & sender.tag & ".jpg") If n Mod 2 = 0 Then ' 代表翻了偶數次, 檢查是否正確 6

s2 = sender.tag ' 紀錄偶數次翻牌的動物資訊 If Strings.Left(s1, 3) = Strings.Left(s2, 3) Then sender.enabled = False right_num += 2 ' 答對按鈕數 +2 My.Computer.Audio.Play("right.wav") ' 播放答對音效 If right_num >= 16 Then Call GameOver(1) Else My.Computer.Audio.Play("wrong.wav") ' 播放答錯音效 Delay(500) ' 答錯的牌停留 0.5 秒 tmp.backcolor = Color.Gray sender.backcolor = Color.Gray tmp.backgroundimage = Nothing ' 答錯把偶數次圖清空 sender.backgroundimage = Nothing ' 答錯把奇數次圖清空 tmp.enabled = True ' 偶數次打開 sender.enabled = True ' 奇數次打開 pbvalue.value = IIf(pbValue.Value - 10 < 0, 0, pbvalue.value - 10) If pbvalue.value = 0 Then Call GameOver(2) End If Else ' 代表翻了奇數次 s1 = sender.tag ' 紀錄奇數次翻牌的動物資訊 tmp = sender ' 紀錄奇數次翻牌的按鈕 sender.enabled = False End If End If End Sub ( 三 ) 倒數計時 (tmtime 計時器 -Tick 事件 ) 遊戲時間每 1 秒減 1, 直到時間為 0, 遊戲結束 Private Sub tmtimer_tick(sender As Object, e As EventArgs) Handles tmtimer.tick lbltime.text -= 1 ' 秒數 -1 If Val(lblTime.Text) <= 0 Then ' 秒數 <=0 時 Call GameOver(3) ' 呼叫遊戲結束副程式 End If End Sub ( 四 ) 遊戲結束 (GameOver 副程式 ) 7

遊戲一共有 3 種結果, 一種是破關, 一種是時間到闖關失敗, 另一種是血量為 0 闖關失敗 Private Sub GameOver(s) tmtimer.enabled = False ' 關閉計時器 Select Case s Case 1 tmtimer.enabled = False msg = " 你一共花了 " & (60 - Val(lblTime.Text)) & " 秒破關 " & vbcrlf & " 可以挑戰下一關!" ' 顯示遊戲通關訊息 SuccessMsg.Show() success += 1 ' 通關 +1 Case 2 msg = " 你已經沒血了!" ' 遊戲血條 =0 FailureMsg.Show() Case 3 msg = " 時間已經到了!" ' 遊戲時間 =0 FailureMsg.Show() End Select End Sub ( 五 ) 畫面停留 (Delay 副程式 ) 此程式用來在遊戲開始前停留 5 秒使用 Sub Delay(timelast As Integer) Dim start As Integer = Environment.TickCount() Do If Environment.TickCount - start > timelast Then Exit Do Application.DoEvents() Loop End Sub 8

參 結論 透過這款遊戲的製作讓我們更加了解 Visual Basic 的語法, 也讓我們想更深入遊戲製作, 終於開始較能了解網路上的大神是如何製作出精美的遊戲 這一款翻牌遊戲, 雖然還不夠精緻, 但是我們想只要朝者這條路持續努力邁進, 一定可以做出很棒的遊戲 美工的部分畫一張圖, 都會花上許久的時間, 花個一節課或是更久, 但是將畫出來的成果放到遊戲中很有成就感 未來希望能增加更多的題目與圖片, 從原本的 12 組增加至 48 組圖片 另外, 也可以設定每一關的牌卡數, 讓遊戲可以依個人喜好選擇難易度 肆 引註資料 1. 巧虎記憶翻牌 2019 年 6 月 5 日, 取自 http://www.7k7k.com/flash/158038.htm 2. Onet Connect Animal 2019 年 6 月 5 日, 取自 https://www.facebook.com/games/instantgames 3. 孫惠民 (2009) Visual Basic 6 創意遊戲設計 臺北市 : 統一元氣 4. 施威銘 (2010) 新觀念 Microsoft Visual Basic 2008 程式設計 台北市 : 旗標 5. 吳明哲 何嘉益 張志成 周家旬 (2011) Visual Basic 2010 學習範本 新北市 : 松岡資產管理股份有限公司 9