計算機程式及實習 課堂作業之口頭報告ppt製作 題目:俄羅斯方塊

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

南台科技大學 機械工程系 班級 : 車輛三甲 學號 : 學生 : 黃郁鈞.  BMI 值的計算就是 :  體重 / 身高 x 身高  身高需換算成公尺單位計算.
計算機程式及實習 期末報告 PPT 製作 題目 : 肥胖因子檢查 南台科技大學 機械工程系 班級 : 車輛一乙 姓名 : 劉志瑋 學號 : 4A 老師 : 謝慶存.
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Visual Basic 語言撰寫程式設計遊戲專題
計算機程式及實習期末報告 VB 2010設計遊戲程式
視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
計算機程式及實習 期末報告 題目:超級猜一猜
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
計算機程式及實習 期末報告 題目:商店結帳系統
班級:自控四甲 姓名:何禎隆 學號: 老師:謝慶存
計算機程式及實習 課堂作業之口頭報告ppt製作
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
Visual Basic 2005學習範本 第5章 選擇結構.
算法和程序设计 第4课 分支结构的算法设计 •.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
CH10.
BLANK overview.
CH11.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
課程名稱:資料庫系統 授課老師:李春雄 博士
第二章 Visual Basic语言基础.
第5章 数组 Visual Basic程序设计.
程式語言 -Visual Basic 變數、常數與資料型態.
第16章 VB.NET物件導向與.NET Framework
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
課程名稱:資料庫系統 授課老師:李春雄 博士
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
Timer & Format.
第10章 視窗應用程式的工具列與功能表.
機器人-Robot Nobody 機器人.
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
PCR300 (13.56MHz) Reader RS232/USB.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
小结 郭清溥.
Ch04 VB.NET的流程控制 網頁程式設計.
班級:車輛一甲 姓名:邱孝哲 學號:4A 老師:謝慶存
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
計算機概論與實習期末報告 老師:謝慶存 4a415057賴震製作.
題目:這個我一定告飲料店 計算機程式及實習 期末報告ppt製作 南台科技大學 機械工程系 車輛一甲 學號:4A 姓名:林子健
打地鼠(陣列版).
第二章、第三章错题分析.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
再戰DataSet.
程序调试与错误处理.
Presentation transcript:

計算機程式及實習 課堂作業之口頭報告ppt製作 題目:俄羅斯方塊 期末報告 機械工程系 自控三乙 學號:4A012901 張凱翔

俄羅斯方塊遊戲說明 按開始即為遊戲開始 組合物 當連成一線可消除並且獲得分數 Level越高速度越快 當某一行跌到最高層級為遊戲結束

程式碼撰寫 Option Strict On Imports MyGames.Tetris Imports MyGames.Tetris.TetrisBlock Partial Class TetrisGame Private GameBoard As TetrisBoard Private FallingBlock As TetrisBlock Private PreviewBoard As TetrisBoard Private PreviewBlock As TetrisBlock Private Score As Double Private Level As Integer Private Speed As Integer Private Lines As Integer Private RandomNumbers As New Random Private Status As GameStatus = GameStatus.Stopped

程式碼撰寫 Private Enum GameStatus Running Paused Stopped End Enum #Region "Event Handlers" Private Sub TetrisGame_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load PreviewBoard = New TetrisBoard(PreviewBox) With PreviewBoard .Rows = 4 .Columns = 4 .CellSize = New Size(20, 20) .Style = BorderStyle.FixedSingle .SetupBoard() End With PreviewBlock = New TetrisBlock(PreviewBoard) PreviewBlock.CenterCell = PreviewBoard.Cells(2, 2) PreviewBlock.Shape = GetRandomShape()

程式碼撰寫 GameBoard = New TetrisBoard(GameBox) With GameBoard .Rows = 20 .Columns = 10 .CellSize = New Size(20, 20) .Style = BorderStyle.FixedSingle .SetupBoard() End With FallingBlock = New TetrisBlock(GameBoard) HelpLabel.Text = HelpLabel.Text.Replace("|", vbCrLf) StylesLabel.Text = StylesLabel.Text.Replace("|", vbCrLf) ShowMessage(String.Format("點I這o裡MI開始l", vbCrLf)) End Sub

程式碼撰寫 Private Sub TetrisGame_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown Select Case e.KeyCode Case Keys.Left, Keys.Right, Keys.Down, Keys.Up If Status = GameStatus.Running Then With FallingBlock Case Keys.Left If .CanMove(MoveDirection.Left) Then .Move(MoveDirection.Left) Case Keys.Right If .CanMove(MoveDirection.Right) Then .Move(MoveDirection.Right) Case Keys.Down If .CanMove(MoveDirection.Down) Then .Move(MoveDirection.Down) Case Keys.Up

程式碼撰寫 If .CanRotate Then .Rotate() End Select End With End If Case Keys.P If Status <> GameStatus.Stopped Then TogglePauseGame() Case Keys.N If Status = GameStatus.Stopped Then StartNewGame() ElseIf DialogResult.Yes = MessageBox.Show("Abort current game?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) Then

程式碼撰寫 End If Case Keys.B GameBoard.Style = BorderStyle.FixedSingle PreviewBoard.Style = BorderStyle.FixedSingle GameBoard.Color = Color.Empty PreviewBoard.Color = Color.Empty Case Keys.M GameBoard.Style = BorderStyle.None PreviewBoard.Style = BorderStyle.None Case Keys.F GameBoard.Color = Color.Orange PreviewBoard.Color = Color.Orange

程式碼撰寫 Case Keys.S GameBoard.Style = BorderStyle.None PreviewBoard.Style = BorderStyle.None GameBoard.Color = Color.SkyBlue PreviewBoard.Color = Color.SkyBlue Case Keys.W GameBoard.Color = Color.Blue PreviewBoard.Color = Color.Blue Case Keys.C GameBoard.Color = Color.Chocolate PreviewBoard.Color = Color.Chocolate End Select End Sub

程式碼撰寫 Private Sub MessageLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MessageLabel.Click Select Case Status Case GameStatus.Stopped StartNewGame() Case GameStatus.Paused TogglePauseGame() End Select End Sub

程式碼撰寫 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If FallingBlock.CanMove(MoveDirection.Down) Then FallingBlock.Move(MoveDirection.Down) Else '' Fix block to base For Each cell As TetrisCell In FallingBlock.Cells cell.IsEmpty = False Next '' Remove completed rows Dim checkRows = From cell In FallingBlock.Cells _ Order By cell.Row _ Select cell.Row Distinct Dim rowsRemoved As Integer = 0 For Each row In checkRows If GameBoard.IsRowComplete(row) Then GameBoard.RemoveRow(row) rowsRemoved += 1 End If

程式碼撰寫 Next '' Update Statistics Score += Math.Pow(rowsRemoved, 2) * 100 Lines += rowsRemoved Speed = 1 + Lines \ 10 If Speed Mod 10 = 0 Then Level += 1 : Speed = 1 Timer1.Interval = (10 - Speed) * 100 UpdateStatistics() '' Make the next block fall DropNextFallingBlock() '' Check if game has ended If Not FallingBlock.CanMove(FallingBlock.CenterCell) Then EndGame() End If End Sub

程式碼撰寫 Region "Private Methods" Private Function GetRandomShape() As TetrisBlock.Shapes Dim number As Integer = RandomNumbers.Next(Shapes.I1, Shapes.Z4 + 1) 'first to last Return CType(number, TetrisBlock.Shapes) End Function Private Sub DropNextFallingBlock() FallingBlock.CenterCell = GameBoard.Cells(2, GameBoard.Columns \ 2) FallingBlock.Shape = PreviewBlock.Shape PreviewBlock.Shape = GetRandomShape() PreviewBlock.RefreshBackGround() PreviewBlock.Refresh() End Sub

程式碼撰寫 Private Sub StartNewGame() Score = 0 Lines = 0 Speed = 1 Level = 1 Timer1.Interval = 1000 UpdateStatistics() GameBoard.SetupBoard() 'PreviewBlock.Shape = GetRandomShape() DropNextFallingBlock() MessageLabel.Visible = False Timer1.Enabled = True Status = GameStatus.Running End Sub

程式碼撰寫 Private Sub EndGame() Timer1.Enabled = False Status = GameStatus.Stopped ShowMessage(String.Format("{0}{0}GAME OVER{0}{0}{0}{0}Click here to start new game", vbCrLf)) End Sub Private Sub UpdateStatistics() ScoreLabel.Text = Score.ToString("000") LinesLabel.Text = Lines.ToString LevelLabel.Text = Level.ToString SpeedLabel.Text = Speed.ToString

程式碼撰寫 Private Sub TogglePauseGame() If Status = GameStatus.Paused Then Status = GameStatus.Running MessageLabel.Visible = False Timer1.Enabled = True Else Status = GameStatus.Paused ShowMessage(String.Format("{0}{0}GAME PAUSED{0}{0}{0}{0}Click here to resume.", vbCrLf)) End If End Sub Private Sub ShowMessage(ByVal message As String) MessageLabel.Text = message MessageLabel.Visible = True Timer1.Enabled = False #End Region

程式碼撰寫 Private Sub HelpLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HelpLabel.Click End Sub End Class

心得 一開始覺得VB 跟其他程式比起來不算太難,可能是謝老師教的很詳細,VB本身介面也有許多中文解釋,還有程式只要一有錯誤,程式碼就會顯示錯誤提醒我們。 程式語言其實不單單只有大學學校所教的,程式語言在很多領域都會用到,當然以後要當一個工程師程式要有一定的水準與基礎是必要的,期末這個作業我也花很多很多的時間在思考,曾經想放棄期末作業,但後來想說謝老師這麼花心思在教導我們,總不能這麼容易就放棄,我也上網找了很多資料,也請教了很多熟悉vb的人,最後才把這個程式做出來。 謝謝老師這學期的程式教導讓我受益良多,讓我對程式感到興趣。