天津農學院
電腦科學與資訊工程系
《windows應用程式設計》
教學實習報告
實習名稱: mfc貪吃蛇小遊戲
專業班級
學號姓名
指導教師
成績二0一二年十月
目錄1 教學實習的內容 1
2 教學實習的目的 1
3 教學實習的要求 1
4 教學實習設計步驟 2
5 總結與體會 11
1 教學實習的內容
本實習內容是基於mfc開發出乙個具有完整功能的windows應用程式系統,驗證基於框架編成的思想並體會其優勢所在。
貪食蛇遊戲設計基於vc++6.0/mfc中單文件模式。mfc框架定義了應用程式的輪廓,並提供了使用者介面的標準實現方法,使得遊戲的開發更加方便快捷。
在設計開發貪食蛇遊戲小遊戲的過程中,主要研究和實現解決以下幾方面問題:
1.蛇長度的增加:當蛇吃到乙個水果後,蛇的長度加一,對應於程式中的儲存空間也會增加。
2.水果和毒果產生的時間及數量的控制:當水果被吃掉後,要從主程式介面上消失。
3.遊戲結束的判定:當蛇的頭部和身體或者牆壁碰撞的時候,遊戲結束。
4.遊戲儲存:遊戲中可以隨時儲存,再次開啟遊戲可以讀取儲存過的記錄。儲存的時候,需要把蛇和水果毒果的相關資訊都儲存到檔案。儲存需要使用vc++提供的檔案操作功能。
2 教學實習的目的
完成《windows應用程式設計》的課堂教學後,通過本次專業實習,力圖使學生對所學本課程的知識進一步消化、理解。本次實習除了強化學生系統全面地掌握本課程的知識外,還引導學生把相關的專業知識融會貫通起來,從而提高學生綜合運用知識的能力和實際解決問題的能力。本實習要求學生,熟練掌握基於mfc框架程式設計的基本方法;熟練掌握mfc類庫中常用類的成員及用法;能夠借助msdn幫助文件,自行解決在程式開發過程中遇到的各種問題;能夠按照實習要求,與他人協作開發出乙個具有完整功能的軟體系統。
利用visual c++ 6.0及msdn開發文件,提交乙份基於mfc的具有完整功能的windows應用程式系統。由於visual c++採用的框架是mfc,而mfc程式設計方法充分利用了物件導向技術的優點,它使得我們程式設計時極少需要關心物件方法的實現細節,同時類庫中的各種物件的強大功能足以完成我們程式中的絕大部分所需功能,這使得應用程式中程式設計師所需要編寫的**大為減少,從而有力地保證了程式的良好的可除錯性。
1.該貪食蛇遊戲設計可以通過兩種方式開始遊戲,一種直接開始,另一種是從上次儲存的記錄開始遊戲。遊戲開始,利用方向鍵控制螢幕上蛇的移動,吃掉隨機重新整理的螢幕上的水果。
蛇在移動過程中不得觸碰牆壁與蟲子,否則遊戲判輸且退出遊戲。下圖為貪食蛇遊戲的流程圖:
csnake類的定義:
background類的定義:
// 隨機放置食物
void snake::setfood()
}// 初始化資料
void snake::initdata()
}// 初始化貪吃蛇的運動方向
m_snakemap[0][0] = right;
m_snakemap[0][1] = right;
// 初始化蛇頭位置
m_head.x = 2;
m_head.y = 0;
// 初始化蛇尾
m_tail.x = 0;
m_tail.y = 0;
// 隨機放置食物
setfood();
// 初始化蛇的運動方向
m_dir = right;
}// 貪食蛇的移動函式
bool snake::move(const int &dir)
if(m_snakemap[m_head.y][m_head.x] || m_head.
x >= row || m_head.x < 0 || m_head.y < 0 || m_head.
y >= col)
if(m_head == m_food)
else
return true;
}}// 方向鍵控制蛇的運動方向
void csnake1dlg::onkeyup(uint nchar, uint nrepcnt, uint nflags)
{ // todo: 在此新增訊息處理程式**和/或呼叫預設值
switch(nchar)
{// 按↑鍵
case vk_up:
if(snakeapp.m_dir == up || snakeapp.m_dir == down) return;
killtimer(1);
if(!snakeapp.move(up)) break;
snakeapp.m_dir = up;
settimer(1, snakeapp.m_time, null);
break;
case vk_down:
// 按↓鍵
if(snakeapp.m_dir == up || snakeapp.m_dir == down) return;
killtimer(1);
if(!snakeapp.move(down)) break;
snakeapp.m_dir = down;
settimer(1, snakeapp.m_time, null);
break;
case vk_right:
// 按→鍵
if(snakeapp.m_dir == left|| snakeapp.m_dir == right) return;
killtimer(1);
if(!snakeapp.move(right)) break;
snakeapp.m_dir = right;
settimer(1, snakeapp.m_time, null);
break;
case vk_left:
// 按←鍵
if(snakeapp.m_dir == left|| snakeapp.m_dir == right) return;
killtimer(1);
if(!snakeapp.move(left)) break;
snakeapp.m_dir = left;
settimer(1, snakeapp.m_time, null);
break;
default:break;
頂崗實習技術報告 班級 姓名
成都航空職業技術學院 學生頂崗實習技術報告 專業班級 姓名學號 單位崗位 指導教師 二o一四年六月 目錄目錄 1 摘要 1 abstract 2 1 頂崗實習單位及崗位介紹 1 1.1 實習單位介紹 1 1.2 實習崗位介紹 1 2 實習內容內容 1 2.1 助教工作 1 2.2 招生工作 1 2....
學號 姓名實習報告
目錄1.引言 1 1.1 編寫目的 1 1.2 背景 1 1.3 定義 1 1.4 參考資料 1 2.程式 模組 系統的組織結構 2 3.介面設計要求 2 4.本軟體系統中各程式 模組 的設計說明 3 4.1 程式 模組 1的設計說明 3 4.2 視窗物件說明表 4 4.3 程式 模組 2的設計說明...
上機實習 學號 姓名
學號姓名年級 專業和班級 實習日期 聯絡 請填寫以便有事及時聯絡 合肥工業大學文獻檢索教研室 二00三年 一 實習目的 1.學習根據檢索課題選擇相關資料庫,確定檢索詞 檢索途徑等進行課題檢索。2.了解資料庫所收錄文獻的型別 學科範圍和使用方法 根據檢索需求選擇檢索途徑和檢索詞。3.分析檢索過程,不斷...