文/秦鵬珍
目前,影響學生注意力的各種外界因素很多,采用傳統(tǒng)的單純講授知識點的授課模式進行教學,這一方式已無法滿足當下課堂需求,這種方式下知識點的講解以及授課采用的案例之間相互孤立,無聯(lián)系,致使學生在學習時感覺知識點零碎、雜亂,從而無法吸引學生的興趣,同時現(xiàn)實中的工作流程通常都是相互聯(lián)系的,項目開發(fā)同樣也相互聯(lián)系,采用零碎,孤立的方式既無法吸引學生,也不符合現(xiàn)實中的工作流程。為了能夠提升學生興趣,對接現(xiàn)實工作過程,在實施Java課程授課時,采用項目化教學,以一個或幾個項目為依據(jù),通過講解引導學生獨立完成具體項目,這樣課堂之間相互聯(lián)系,同時以項目為中心講解知識點,可以使學生感受到學有所用,使學生在實踐過程中提升理論知識水平,還能夠更好的培養(yǎng)學生運用知識解決問題的能力。
拼圖游戲是一款簡單有趣的小游戲,課堂上學習Java語言時選擇拼圖游戲為導入,既能夠吸引學生,提升學生興趣,又能夠充分將Java知識點融合與游戲,在進行Java課堂教學時需要通過以簡單有趣的游戲項目貫穿課堂,教師講解引導,學生作為主體完善提升,教師在教學實施時將游戲項目分解,學生在完成項目模塊的同時掌握Java知識點,通過按照任務要求,分步驟分模塊實施,使學生可以在參與項目實施的過程,感受近于真實的開發(fā)環(huán)境,以此來激發(fā)學生的學習興趣,最終實現(xiàn)學生分析問題、解決問題的能力的提升。
本文主要介紹課堂實施之簡單拼圖游戲的項目實現(xiàn),以簡單項目為媒介,在教學過程中逐步帶領(lǐng)學生掌握Java編程基礎(chǔ)語法知識,使學生建立Java編程思想,在關(guān)注學生知識增長的同時,也關(guān)注學生相關(guān)能力目標的達成。
要實現(xiàn)簡單拼圖游戲主要要完成以下三部分設(shè)計,包括游戲界面設(shè)計,游戲規(guī)則設(shè)計,游戲按鈕功能實現(xiàn)設(shè)計,因此課堂實施時也主要按照三大模塊實施,通過游戲界面的設(shè)計與完成要使學生掌握Java中類的定義,樹立面向?qū)ο笏枷耄ㄟ^游戲規(guī)則設(shè)計,游戲按鈕功能實現(xiàn)設(shè)計可以使學生掌握Java基礎(chǔ)語法知識,包括變量命名規(guī)則,數(shù)據(jù)類型,流程控制語句等,同時要掌握接口的定義、繼承和實現(xiàn),事件的處理機制。
(1)運行程序進入游戲初始界面,游戲初始界面如圖1,初始界面上圖片排列規(guī)則,空白格處于最末尾一格,點擊開始游戲按鈕,圖片順序被打亂,界面如圖2,因此開始按鈕功能實現(xiàn)是重點。
(2)游戲最終是要使凌亂的界面恢復到初始界面,為了實現(xiàn)此目的,需要實現(xiàn)不同小圖片的不斷移動,而小圖片只能移動到空白格,所以需要實現(xiàn)的是當單擊與空白格子相鄰的任一方塊時,可以把該方格內(nèi)的圖片移入到空白格,通過不斷移動空格旁邊的小圖片,直到圖片恢復原始樣子,即實現(xiàn)最終拼圖,完成該游戲。
游戲項目設(shè)計中涉及到的Java類有PuzzleFrame.java,PuzzlePanel.java,PuzzleCell.java,各自的功能為PuzzleFrame.java實現(xiàn)游戲主界面的設(shè)計,PuzzlePanel.java實現(xiàn)主要區(qū)域拼圖模塊的相關(guān)功能,即圖片順序打亂,移動規(guī)則實現(xiàn)等,PuzzleCell.java實現(xiàn)拼圖區(qū)域圖片的切割功能。如圖3所示。
(1)初始界面。當運行程序時,會出現(xiàn)圖1所示界面,界面內(nèi)容主要包括游戲開始按鈕,結(jié)束按鈕,游戲時間,以及主要的拼圖界面,在拼圖界面內(nèi)最末尾一格顯示為空白格。
為了實現(xiàn)界面內(nèi)的拼圖模塊,需要使得拼圖界面有空白格存在,同時需要對圖片進行切割(也可以預先使用ps完成對圖片的切割,這里使用代碼完成),在對圖片進行切割時需要明確切割數(shù)量,因而首先需要確定行列值,依據(jù)確定的行列值,使用循環(huán)語句對圖片完成切割,最后將切割的圖片添加到對應模塊,本文將切割的小圖片添加在BUTTON按鈕上。
實現(xiàn)圖片切割的代碼如下:

(2)點擊游戲開始按鈕后,界面如圖2,初始有序排列的圖片被打亂,呈現(xiàn)無序排列,因此在代碼設(shè)計時需要實現(xiàn)圖片順序的隨機改變。
圖片亂序代碼實現(xiàn)如下:


圖1:游戲初始

圖2:游戲開始

圖3

為了能夠移動圖片按鈕,需要對按鈕編寫鼠標單擊事件,當發(fā)生鼠標單擊事件時,先判斷被點擊的圖片按鈕周圍是否有空按鈕,若有,則需要判斷空按鈕位置,然后在移動圖片按鈕到非空按鈕位置。
按鈕鼠標單擊事件代碼如下:


結(jié)束游戲有兩種方式,一種為玩家自動放棄游戲,即單擊游戲結(jié)束按鈕或者退出程序;一種為玩家拼出完整圖片,此種方式需要對游戲玩家進行輸贏判斷。 判斷游戲玩家是否拼出圖片,實現(xiàn)代碼如下:

簡易拼圖游戲作為Java入門的引導項目,既能夠吸引學生,提升學生興趣,又能夠充分將Java知識點融合于游戲,使學生在完成游戲開發(fā)的同時完成Java基本語法知識點的學習,同時通過任務分解,對接現(xiàn)實工作,又可以使學生分析問題、解決問題的能力得以提升,因此拼圖游戲的設(shè)計與實現(xiàn)對于Java語言的學習與提升幫助極大。
通過以上設(shè)計,該游戲功能基本實現(xiàn),通過三個模塊的劃分與分解,學生也基本能夠自主完成。由于筆者能力有限,該游戲的實現(xiàn)以及任務實施還有很大的優(yōu)化空間。