壹 前言 一 研究動機 在學校的課程中學到由微軟開發的程式語言 (Microsoft Visual Basic2010), 才了解到有很多小時候玩到的許多遊戲是由 VB 寫出來的程式, 這讓我們覺得只要學習 VB, 就可以寫出我們理想的遊戲, 為了對這語言有所了解, 我們打算先了解 VB 的歷史,

Similar documents
投影片 1

Visual Basic D 3D

Microsoft PowerPoint - VB14.ppt

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

Microsoft PowerPoint - 第14章.ppt

ActiveX Control

投影片 1

投稿類別:電子工程類

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

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

計算機程式及實習 期末報告ppt製作 題目:南台黑心早餐店結帳系統


Chapter 16 集合

IsPostBack 2

The golden pins of the PCI card can be oxidized after months or years

陳韻如 陳榮霖:陣列控制項技術之研究與應用.doc

untitled

壹 前言 一 研究動機 現今網路小遊戲繁多, 不乏許多釣魚的有趣遊戲, 但釣魚遊戲實在太多了! 想要打破釣魚遊戲只能釣魚的觀念, 我利用所學的 Visual Basic2012, 將改換釣餌, 將釣餌更換成時下當紅的恐龍 yee 頭, 以及使用 MicroAngelo 製作游標, 將遊戲內游標改換成

Microsoft Word - ok翁志文、張佳音...doc

馬孝先

新 闻 学 46 7 新 闻 传 播 学 院 广 告 学 28 4 广 播 电 视 学 23 3 新 闻 学 广 告 学 ). 级 学 生 申 请 准 入 需 修 完 或 正 在 修 2 门 专 业 准 入 课 程 并 取 得 相 应 学 分 ;2). 级 学 生 申 请 准 入 需

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

untitled

2

untitled

Microsoft Word - 應用程式設計.doc

<4D F736F F D20C0B3A5CEB57BA6A1B35DAD70C075BDE8B3F8A7692D B169B7D3BD6E2E646F63>

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

星星排列 _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

<4D F736F F D20C0B3A5CEB57BA6A1B35DAD70B4C1A5BDB3F8A7692E646F63>

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft Word - FPKLSC_21.docx

Microsoft Word - 序.DOC

Microsoft Word - CH07_P36

Microsoft Word - paper.doc

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

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

書面

多層次傳銷與獎金系統

untitled

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

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

EA3.pdf

untitled

穨文件1

VB程序设计教程

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

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

< D5044B57BA6A1B35DAD70C3FE C C0CBA977C344AE77B8D1C344AFB5D3442DB9EAA5CEBD672DA8E5C2C32E706466>

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

大连海洋大学研究生教育

ThreeDtunnel.doc

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


PowerPoint 簡報


Visual Basic AD/DA Visual Basic 2

Microsoft Word - d 邱書毅.doc

VB控件教程大全


Microsoft Word - 結案報告.doc


Microsoft PowerPoint - 遊戲企劃

Visual Basic 2010 INTRODUCTION 本書導讀! Visual Basic 2010 Visual Basic 2010 Visual Studio Visual Basic Windows Form IV

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

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

智慧型水塔研究

穨ac3-3.PDF

第一章  緒論

投影片 1



子學習3 電子學習的定位 傳統電子學習 與 新世代電子學習 SAMS 台上講者從左至右 : 吳薇薇女士 羅陸慧英教授 佘孟先生 李芳樂教授 從 電子銀行服務 到 電子學習 題追3 專蹤電

Python Facebook put_wall_post(message,attachment [,profile_id]) put_wall_post(message,attachment [,profile_id]) message message attachment profi

untitled

計算機程式及實習 期末報告

四川省普通高等学校

Microsoft PowerPoint - VB7

通 知

1

untitled

1

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

西南科大教字[2005] 号

1

教 學 綱 要 表 1-1 多 媒 體 應 用 科 目 大 要 學 分 數 :2 建 議 開 課 學 期 : 第 九 十 八 學 年 第 二 學 期 本 科 目 教 學 目 標 在 培 養 學 生 影 像 製 作 及 影 像 剪 輯 等 多 媒 體 應 用 之 興 趣 與 能 力, 並 能 在 生

untitled

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

1

( )... 5 ( ) ( )

untitled

Microsoft Word - ACI chapter00-1ed.docx

男人的大腦 女人的大腦

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

附 件 : 2009 年 度 国 家 精 品 课 程 名 单 一 本 科 国 家 精 品 课 程 ( 以 学 科 为 序, 共 400 门 ) 序 号 一 级 学 科 二 级 学 科 课 程 名 称 学 校 名 称 负 责 人 1 哲 学 哲 学 类 马 克 思 主 义 伦 理 学 安 徽 师 范

進階搜尋引擎.doc

untitled

使用手冊

一年二班 B051. 空間實作 103 教室 一年二班 A041. 究食尋味 音樂教室三 一年二班 C131.Global Views in Literature 從文學看世界 102 教室 一年二班 A011. 閱讀歷史人物 101 教室 一年二班

Transcription:

投稿類別 : 資訊類 篇名 : VB 拼圖實作 作者 : 賴俊穎 宜蘭縣羅東高工 資訊二甲班賴昱儒 宜蘭縣羅東高工 資訊二甲班何志峯 宜蘭縣羅東高工 資訊二甲班 指導老師 : 林建明老師

壹 前言 一 研究動機 在學校的課程中學到由微軟開發的程式語言 (Microsoft Visual Basic2010), 才了解到有很多小時候玩到的許多遊戲是由 VB 寫出來的程式, 這讓我們覺得只要學習 VB, 就可以寫出我們理想的遊戲, 為了對這語言有所了解, 我們打算先了解 VB 的歷史, 再來以現在所學的 Microsoft Visual Basic2010 來做出程式 二 研究目的 因初學者學習程式設計時最大的困難瓶頸不是在於理解程式語言的語法和語意, 而 是在於不知道如何將自己所學知識加以結合而找出方法解決所遇問題, 對於將知識 整合 把不同的想法與概念和想法組合成有意義的形式才是有幫助的 為了使自己的程式撰寫更加的進步, 我們利用了現在所學的程式來撰寫程式, 雖然並沒有像遊戲的程式碼一樣複雜, 但對生活上的小事情十分有幫助, 並且我們將方便的程式放在同一個程式, 來避免有需要的時候還要再尋找程式的位置或同時打開多的程式 三 研究方法及步驟 本次論文研究方法及步驟如下 : 研究方法 : 透過課程學習 詢問老師 上網瀏覽相關資料 參考相關書籍來累積各 種程式語法的撰寫技巧, 在撰寫程式與學習的過程中也能夠多鍛鍊我們的邏輯思 考, 研究步驟 : 如表一所示 表一 研究時程分配圖 時間 工作 1/24~2/1 2/1~2/15 2/15~3/1 3/1~3/19 尋找相關資訊尋求師長協助與組員討論撰寫程式程式除錯 編寫論文 1

貳 正文 一 何謂 VB VB 是一套由微軟所發行的程式撰寫工具, 同時也非常適合給程式初學者使 用, 正因為我們是初學者, 所以我們才使用 VB 來寫這次的專題 二 程式設計理念 ( 一 ) 程式製作之概念 當在想要拼拼圖時, 卻需要買一個新的板子和新的拼圖遊戲, 不僅花錢且拼圖總數大量需要空間, 收拾拼圖也必須要花費一段時間, 玩過後也會喪失其趣味性, 若擺放過久拼圖也有可能遺失或破碎, 所以本專題程式 ( 二 ) 如何使用程式 剛進入遊戲介面時, 即可移動拼圖到框框裡, 如果當中遇到困難, 可以使用 提示, 便會有拼圖圖案出來, 當拼完時, 可以按檢查來確認是否有拼對, 如 果拼對即可進行下一關 三 程式介面配置 一 程式設計 圖 ( 一 ) 地一關程式版面 圖 ( 二 ) 第二關程式版面 一開始我們將拼圖題材使用 PhotoImpact 12 切割成我們將在程式中使用的各個圖片, 再使 用 Microsoft Visual Basic 2010 做出拼圖遊戲, 以下為我們的專題程式設計 ( 一 ) 程式說明 ( 程式下方為註解 ) 2

1. 拼圖介面 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 打開 form1 的撰寫程式欄 psrc(0) = Pic1 psrc(1) = Pic2 psrc(2) = Pic3 psrc(3) = Pic4 將 Pic1~4 等於前面之圖片箱以方便之後程式操作 Picview.AllowDrop = True Picview2.AllowDrop = True Picview3.AllowDrop = True Picview4.AllowDrop = True 讓圖片能被拖曳 2. 拼圖放置 Private Sub Pic1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pic1.MouseDown, Pic2.MouseDown, Pic3.MouseDown, Pic4.MouseDown 於來源控制項之 MouseDown 事件中啟動來源控制項的拖曳程序 DoDragDrop If x = False Then 假設布林代數為 False 時執行 If Not Is Nothing(sender.Image) Then p = sender sender.dodragdrop(sender.image, DragDropEffects.All) 拼圖移動可以放置在上面且原圖片消失 3. 隱藏與顯示被拖曳的圖片 3

Private Sub Picview_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Picview.DragDrop, Picview2.DragDrop, Picview3.DragDrop, Picview4.DragDrop 於目的控制項之 DragDrop 事件中擷取拖曳資料 psrc(val(sender.tag)).visible = True 先使 psrc 能被看見 sender.image = e.data.getdata(dataformats.bitmap) sender.image 即先設定於可變成資料之中的 BMP 圖檔 sender.tag = p.tag 使 sender 的圖檔變為 DragDrop 事件中的被擷取拖曳資料 p.visible = False 使原本在旁被拖曳進入圖片隱藏 a = a + 1 f = a + s Label2.Text = f & " 步 " 在 Label2 計算移動的步數 If Picview.Tag = Pic1.Tag Or Picview2.Tag = Pic1.Tag Or Picview3.Tag = Pic1.Tag Or Picview4.Tag = Pic1.Tag Then 若在拼圖框內有 pic1 因圖片移到拼圖板上 Pic1.Visible = False 則會把 Pic1 的圖像隱藏 Else Pic1.Visible = True 若沒有 Pic1 則保持顯示 其他 Pic1~PicX 也依此類推 4. 拖曳效果 Private Sub Picview_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Picview.DragEnter, Picview2.DragEnter, Picview3.DragEnter, Picview4.DragEnter 在目的控制項的 DragEnter 事件中加上程式 e.effect = DragDropEffects.All 4

VB 拼圖實作 e.effect 即等於拖曳效果之後此效果為拖曳全部的圖檔 5. 雙擊使拼圖板上拼圖片歸回 Private Sub Picview_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Picview.DoubleClick 拼圖板被雙擊時的事件 If x = False Then 若 x 為 False psrc(val(sender.tag)).visible = True sender 所代表的圖片為顯示狀態 Picview.Image = Nothing 使拼圖板上被雙擊的拼圖消失 sender.tag = "" 雙擊圖片返回零碎拼圖後增加 1 次步數 6. 檢查判斷 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 當 Botton1 被點擊的事件 If x = False Then 若 x 為 False If Picview.Tag = 1 And Picview2.Tag = 0 And Picview3.Tag = 3 And Picview4.Tag = 2 Then 若拼圖的 Tag 與 Pic 吻合則開始 x = True Select Case f Case Is <= 6 MsgBox(" 你拼對了動作真快, 你真棒 I",, " 拼圖小遊戲 ") 5

Case Is > 6 MsgBox(" 你拼對了 ",, " 拼圖小遊戲 ") End Select 判斷步數且 x 變為 Ture, 若步數小於等於 6 則出現讚美且通關, 大於 6 則通關 Else MsgBox(" 你拼錯了喔!!",, " 拼圖小遊戲 ") 若是 Tag 與 Pic 編號不吻合則顯示拼錯 7. 進入下一關 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 若 Botton2 被點擊 If x = True Then Form2.Show() 若 x 為 True, 則第 2 關才可以進入 8. 提示按鈕 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 當 Botton3 被點擊的事件 If x = false Then 若 x 為 False 即未通關 re = re + 1 re 為提示次數 6

If re < 4 Then Button3.Enabled = True 提示.ShowDialog() If re = 3 Then Button3.Visible = False Button3.Enabled = False End Class 若提示次數尚未超過 4 次, 則提示按鈕則為可按狀態, 提示圖檔則出現, 若提示 3 次, 提示按鈕則不看見也不能夠點取 9. 限時提示 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer 事件 If Timer1.Enabled = True Then 如果 Timer 觸發 s = s + 1 If s >= 2 Then Timer1.Enabled = False Me.Close() s = 0 時間過了兩秒後,Timer 停止, 提示圖片則關閉, 且讓時間歸零 ( 二 ) 圖片介紹 7

圖 ( 三 ) 拼圖介面 圖 ( 四 ) 移動兩塊拼圖後計數兩步 圖 ( 五 ) 檢查是否正確後拼對且在 6 步內 圖 ( 六 ) 第二關介面圖 失 圖 ( 七 ) 檢查錯誤圖 圖 ( 八 ) 按下提示鈕後即給予提示兩秒後消 8

参 結論 一 研究結論 藉由這次的專題報告, 使得我們對程式的除錯能力更加進步, 在這次的程式裡頭, 我們利用圖像檔當作拼圖擺放的區塊, 寫法並沒有多大的困難, 在這程式之後我們則是打算利用別種分割方法來使得自己能控制要多少乘多少的拼圖區塊, 這樣一來就不用自己去切圖片, 使得圖片有可能少了一小部分而導致拼圖拼完後會有一點小瑕疵 二 研究心得 這程式語言是我們二年級所教的, 我們為了使自己的程式語言能夠更精進, 因此我們製作了有關遊戲的專題, 在過程中遇到了許多 BUG, 但這正是使我們進步的原動力, 如果沒有這些 BUG, 我們可能無法進步, 找到這些 BUG 必須不厭其煩的測試程式, 直到百分之百確定無問題發生, 經過這次的專題製作, 我們也打算在下次能夠做更困難的遊戲, 來使自己的程式設計更進步 肆 引註資料 註一 : 黃建庭編著 程式設計使用 Visual Basic 2010 附範例光碟 全華出版社 註二 : 李春雄 洪瑞展編著 互動式網站程式設計 :ASP.NET 4.0 使用 Visual Basic 2010 上 奇資訊出版社 註三 : 許華青編著 Visual Basic 2010 程式設計 ( 隨書附贈程式範例光碟 )(2 版 ) 高立圖 書出版社 註四 : VB 介紹 取自 http://zh.wikipedia.org/wiki/visual_basic_.net 註五 :VB 基本語法 取自 http://www.me.tnu.edu.tw/~me006/vb/tutor/a00/3.htm 9