陳惠娥
(廣東技術師范學院天河學院,廣東 廣州 510540)
基于任務驅動的MFC游戲的設計與實現
陳惠娥
(廣東技術師范學院天河學院,廣東 廣州 510540)
文章介紹了一款綜合了復雜的設計,包含視覺(圖像)、聽覺(聲音)和軟件設計等方面的游戲產品,24點游戲是運用撲克牌進行計算的益智類游戲。游戲的設計需要多方合力,包含對實際軟件項目的分析、設計、編碼、測試,編寫系統使用說明等工作。基于任務驅動開發的24點游戲不僅體現了學生應用MFC結合窮舉法編程的能力,還充分調動了其學習的主動性與積極性。
任務驅動;24點游戲;MFC
1.1 任務驅動的內涵
任務驅動教學法是以實驗性、實踐性與操作性較強的教學為內容的教學方法[1]。也是以能夠激發學生學習動機與好奇心的情景為基礎,以與教學內容緊密結合的任務為載體,使學習者在完成特定任務的過程中獲得知識與技能的一種教學方法[2]。
在電子信息高速發展的時代,游戲已成為我們休息之余選擇的一種娛樂方式。隨著科技的進步與更新換代,極其需要小組協作的游戲開發團隊以及高端游戲人才。實踐顯示,任務驅動下24點游戲的設計與實現能夠提高小組協作開發游戲的能力,綜合應用微軟基礎類庫(Microsoft Foundation Class,MFC)編程的能力。
1.2 任務驅動下24點游戲的設計
游戲的功能實現是由系統隨機發出不同的撲克牌,根據撲克牌的點數指代不同的數字,按照實際數值進行24點運算,同時要求實現的控制功能是計算表達式、計時等功能。總的說來,就是從一副撲克牌中抽去大小王剩下52張,隨意抽取4張牌,并且每張牌僅用一次,把牌面上的數運用加、減、乘、除和括號等進行運算得出24,其中J,Q,K都當成數字1來運算。根據這些要求,以24點游戲為任務主線,進行組內任務分配,并對分析、設計、編碼、測試等任務環節進行設計,引導學生順利完成各任務。
1.3 窮舉算法的分析
24點游戲的核心算法思想就是窮舉法,所謂窮舉法就是列出4個數字加減乘除的各種可能性,包括括號的算法。
要實現24點的算法,需要將表達式歸為3種情況,無括號的簡單表達式、有一個括號的簡單表達式、有兩個括號以上復雜的表達式。窮舉的開始需要對給出的4個數進行排列,其可能的種數為4×3×2×1=24,可以利用一個嵌套函數實現4個數的排列。
將基于任務驅動的小組協作思想與24點游戲的實踐過程相結合,其實施一般可分為任務設計、任務實施和測試與評價等3個階段。
2.1 任務設計階段
任務的設計是任務的起始階段,是整個游戲項目的核心環節。其設計的好壞,直接影響著項目的實現。
(1)用戶需求分析。24點游戲系統應該提供簡單、層次關系明了、清晰的操作界面,滿足用戶的使用,盡可能地為用戶操作提供方便。用戶界面是用戶與計算機信息系統之間傳遞、交換信息的媒介,是用戶與計算機信息系統進行交互的唯一途徑。
通過用戶界面,用戶向計算機系統提供命令、數據輸入信息,這些數據經過計算機信息系統處理后,又通過用戶界面將處理的結果返回給用戶,另外,在處理的過程中,用戶也可以通過用戶界面干預計算機系統的數據處理。較之于文字界面表達不夠清晰,且還需要操作人員正確無誤地記憶操作命令等因素,本系統采用清晰、易懂的圖形界面。
(2)任務總體設計思路。任務的設計要有明確的目標,只有任務明確、編排合理方能達到預期的效果。24點游戲設計的總體思路為開始—發牌—算法計算—顯示結果—退出等功能模塊。根據系統功能模塊,需要通過不同控件實現它們各自相應的功能。
開始模塊:開始游戲,需要調用多種函數,進行加載背景圖片。
退出模塊:退出游戲,需要調用OnCancel()函數。
計算模塊:對表達式進行計算,判斷結果。其流程如圖1所示。

圖1 流程圖
(3)依據任務合理分組。協作小組是協作學習的基本組織形式,包括小組劃分、成員角色扮演、任務分配等。協作小組依據學習者的個性傾向、個性差異而組建,每個學生的價值相互依存,相得益彰,人盡其才,在合作組中發揮其獨特作用[3]。24點游戲設計的任務主要包括客戶端代碼編寫,程序框架設計和服務端代碼編寫,軟件測試及調試,撰寫使用手冊與游戲規則。依照任務需要安排4~6人為一組,并按照“組內異質、組間同質”的原則進行分組,充分發揮組內優勢互補,并選出一名組長負責任務的協調工作。
2.2 任務實施階段
任務實施是小組協作活動的重要體現。在此過程中同時需要教師的指導與監督。在該階段,需要進行如下工作。
(1)界面設計。需要添加控件,如打開---IDC_Start—調用OnStart函數,計算---IDC_Calculate—調用OnCalculate函數,顯示結果---IDC_Show—調用OnShow函數,退出--IDC_Exit—調用OnExit。
除了對各個控件關聯變量以及消息響應函數,還要對對話框類進行消息響應函數的關聯,所以需要用到WM_ TIMER消息響應函數OnTimer()函數來實現這項功能,將對話框類進行該消息響應函數的關聯并書寫程序。
(2)開始模塊任務的實施。將其中4個按鈕修改成位圖、透明樣式,以便加載圖片m_button[0]=(CButton *)GetDlgItem(IDC_BUTTON11);依次為m_button0-m_ button3,獲取id為IDC_BUTTON11- IDC_BUTTON14。并加載了m_bitmap[0]- m_bitmap[12]共13張紙牌圖片,LoadBitmap(IDB_BITMAP1)- LoadBitmap(IDB_ BITMAP13),同時加載了一張背景圖片。
(3)計算判斷模塊任務的實施。計算判斷模塊是此程序的核心模塊,主要調用OnCalculate函數實現相應的功能。首先判斷表達式的值是否為空,if(m_m2==""),需要調用消息框輸出函數,如AfxMessageBox("Sorry! 表達式不能為空! ");該函數處理表達式為空的結果。如果表達式的判定結果為24,如if(result==24),則調用消息框輸出計算正確的處理結果,如AfxMessageBox("計算結果是:24 n恭喜你!答對了! ");同時讓開始按鈕起作用,GetDlgItem(IDC_start)->SetWindowText("繼 續")。
否則,再次調用消息框輸出錯誤判定結果,如AfxMessageBox("你的計算結果是:“+sresult+” 很遺憾! n你錯了!");讓表達式再次獲得焦點,以便再次獲取值進行計算,如GetDlgItem(IDC_biaodashi)->SetFocus()。
2.3 測試與評價
24點游戲即“巧算24點”是一種數學游戲,游戲方式簡單易學,能健腦益智,是一項極為有益的活動,較之于傳統習慣鼓勵個人的評價方式,積極采用“個人評價+小組集體評價”結合的新形式,大力提升了教學與實踐效果,依據任務構建了良性制約和評價機制,有利于促進學生的小組協作能力的提升以及個人解決問題的能力提升。
任務驅動的教學方法創新了學習思路與學習方式,尤其適合程序設計中課程設計的教學與實踐。通過在24點游戲程序設計的應用實踐表明:該方法有助于提高小組協調能力,溝通交流能力,積極調動學生的主動性與積極性,提高學生團隊協作精神等方面起著積極的作用。由此可見,該教學模式可以廣泛應用于其他實踐性較強的課程中,通過任務驅動的“小組協作”形式,能夠有效提升學生的綜合應用開發以及團隊協調合作能力。
[1]鐘柏昌.任務驅動教學的反思與重塑[D].南京:南京師范大學,2004.
[2]郭紹青.任務驅動教學法的內涵[J].中國電化教育,2006(7):57-59.
[3]吳海花,王連山.計算機軟件項目教學改革的實踐與探索—基于“任務驅動”的小組協作教學模式[J].考試周刊,2009(23):11-12.
[4]孫鑫.VC++深入詳解[M].北京:電子工業出版社,2012.
[5]杜青.VC++.NET(2008)課程設計經典案例[M].北京:清華大學出版社,2012.
[6]明日科技.Visual C++從入門到精通[M].3版.北京:清華大學出版社,2012.
Design and implementation of MFC game based on task driven
Chen Hui'e
(Tianhe College of Guangdong Polytechnic Normal University,Guangzhou 510540,China)
A game consists of complex product design including the vision(image),acoustic (sound)and the software design,etc is introduced in this paper.24 points is a kind of puzzle games using the poker game to calculate.Game design requires many resultant force,including the analysis of the actual software project,design,coding,testing and writing system work instructions,etc.24 point game developed based on task driven not only embodies the students' ability of application of MFC(Microsoft Foundation Class)programming combined with exhaustion method,but also gives full play to the initiative and enthusiasm of learning.
task driven;24 point game;MFC
陳惠娥(1984—),女,廣東茂名。