freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于wpf的數(shù)獨游戲的開發(fā)畢業(yè)設(shè)計-資料下載頁

2025-06-19 12:43本頁面
  

【正文】 rom =59 To =0 RepeatBehavior=Forever =SecNumber =Tag Duration =0:1:0/Int32Animation From =59 To =0 RepeatBehavior=Forever =SubSecNumber =Tag Duration =0:0:1//Storyboard 解題器實現(xiàn)解題器圖表 56解題器,被放置于Expander控件內(nèi)。在其里面,左邊有一個ListBox列出了所有的解題器,用戶可以選擇相應(yīng)的解題器用于生成題目和解題。當(dāng)選擇了相應(yīng)的解題器后,將在右邊出現(xiàn)解題器的相關(guān)信息。ListBox下有一個AI對戰(zhàn)按鈕,用于人機(jī)對戰(zhàn),按下之后,將在獨立線程解題,解題完成后會將結(jié)果以槽的形式顯示在其中間。圖表 56解題器 其他界面實現(xiàn)其他界面的設(shè)計主要目的,是為了讓界面看起來更友好、美觀,不至于那么單調(diào),充分發(fā)揮了WPF的優(yōu)勢。游戲的背景類似水波蕩漾的效果是通過觸發(fā)器,在“”時候觸發(fā)一組動畫。標(biāo)題的倒影效果則是通過VisualBrush的渲染實現(xiàn)。程序的開始運行時標(biāo)題的特效也是通過LinearDoubleKeyFram使用線性內(nèi)插,在前一個關(guān)鍵幀和自己的 Value 之間進(jìn)行動畫處理來實現(xiàn)。游戲的其他界面如友好的對話框如,對話框顯示“請稍后”,等提示玩家的界面相對簡單,這里不再做介紹。 用戶功能模塊實現(xiàn) 新游戲?qū)崿F(xiàn)當(dāng)用花按下新游戲按鈕的時候,將產(chǎn)生新的游戲。調(diào)用后臺的NewGame_Click處理,其主要根據(jù)當(dāng)前所選擇游戲規(guī)格設(shè)置GameBoard大小,如果是快速生成方式,調(diào)用GenerateGame方法產(chǎn)生謎題。使用解題器的方式由于耗時較多,因此定義了一個BackgroundWorker使得生成謎題時候算法在單獨的線程上執(zhí)行操作,主要代碼如下:ISudokuSolver sol = as ISudokuSolver。 //所使用算法為列表選項solverWorker = new BackgroundWorker()。 //初始化 += new DoWorkEventHandler(delegate(objectdwsender,DoWorkEventArgs dwe) //DoWorkEventHandler {(sol, givens)。 //調(diào)用使用解題器的生成游戲方法})。 += new RunWorkerCompletedEventHandler(delegate(object rwcsender, RunWorkerCompletedEventArgs rwce) {//當(dāng)后臺操作已完成時 += new ChangedEventHandler(GameBoard_PropertyChanged)。 //監(jiān)視棋盤是否填滿})。 保存游戲、讀取游戲?qū)崿F(xiàn)按下保存游戲按鈕的時候,將彈出保存文件的對話框。當(dāng)按下保存按鈕的時候,將以二進(jìn)制格式將對象系列化為流將其寫入磁盤:if ((this) == true) {Stream s = new FileStream(, )。IFormatter f = new BinaryFormatter()。 //以二進(jìn)制格式將對象序列化(s, ())。 //將對象棋盤對象序列化為所提供的流()。}讀取游戲過程也是相類似的,是保存游戲的逆過程。當(dāng)選擇打開后,若讀取失敗后通過消息框提示。否則將所讀的流反序列化。 游戲設(shè)定游戲的時間難度是在生成游戲的時候,通過判斷單選按鈕來設(shè)置的。當(dāng)選擇沒計時器的時候,時間面板將被禁用,計時器也會被設(shè)為禁用。如果有選擇時間難度,則根據(jù)所選項,進(jìn)行時間的相應(yīng)設(shè)置,將時間設(shè)置為不同的長度。 計時功能實現(xiàn)在計時器上添加Checked=ResumeTimer Unchecked=PauseTimer,當(dāng)點擊計時器的時候,將由PauseTimer事件來處理。通過將動畫暫停,Pause使得時間停止走動,并把棋盤禁用掉,使得游戲不能進(jìn)行。再次點擊時候則調(diào)用ResumeTimer,將時間恢復(fù),并將棋盤設(shè)為可用。 解題器插件實現(xiàn)解題器里有一個ListBox列出了所有的解題器,用戶可以選擇相應(yīng)的解題器用于生成題目和解題。當(dāng)選擇了相應(yīng)的解題器后,將在右邊出現(xiàn)解題器的相關(guān)信息。ListBox下有一個AI對戰(zhàn)按鈕,用于人機(jī)對戰(zhàn),按下之后,將在獨立線程解題。在解題的同時,玩家還可以繼續(xù)游戲。 在題目解出后,會將時間以狀態(tài)條的形式顯示出來,狀態(tài)條上繪制有相應(yīng)的時間,如圖表 57解題器繪制的狀態(tài)條:圖表 57解題器繪制的狀態(tài)條6. 測試打包的過程 打包在使用Visual Studio完成代碼的編碼與調(diào)試后,生成 WPF應(yīng)用程序后,需要部署它們,在此采用Windows Installer 進(jìn)行部署。通過Windows Installer ,將應(yīng)用程序打包為獨立的可執(zhí)行程序,它們可以容易地分發(fā)到客戶端并運行。而且,Windows Installer 隨 Windows 安裝,從而能與桌面、“開始”菜單和“添加/刪除程序”控制面板集成。在 Visual Studio 中,添加一個 SudokuSetup 的“安裝”項目,它能將文件安裝到目標(biāo)計算機(jī)的文件系統(tǒng)中。在“文件系統(tǒng)”的“目標(biāo)計算機(jī)上的文件系統(tǒng)”節(jié)點下選中“應(yīng)用程序文件夾”,添加一個名為“Sudoku”的文件夾。接下來,該文件夾“添加項目輸出對話框”在該對話框中的“項目”下拉列表框中選擇要部署的應(yīng)用程序SudokuWPF,然后選擇要輸出的類型。這里選擇主輸出,即可將項目輸出文件添加到SudokuSetup安裝項目中。為了使程序能夠在客戶端運行,需要添加依賴項。在“Sudoku”文件夾下選擇要添加的內(nèi)容文件,單擊“打開”按鈕即可將選中的內(nèi)容文件添加到安裝項目中,這里需要添加的是解題器Solvers的文件夾和自制的題庫。創(chuàng)建主輸出來之SudokuWPF(活動)的快捷方式,將其拖動到目標(biāo)計算機(jī)上的文件系統(tǒng)的桌面目錄?!鞍惭b”項目的文件系統(tǒng)的配置如圖表 61 SudokuSetup 的“安裝”項目的文件系統(tǒng)配置。圖表 61 SudokuSetup 的“安裝”項目的文件系統(tǒng)配置在添加數(shù)獨游戲所需的項目輸出文件、內(nèi)容文件、快捷方式等內(nèi)容后,在“解決方案資源管理器”中的SudokuSetup單擊生成,即可生成的Windows Installer軟件包,如圖表 62 SudokuSetup軟件包。圖表 62 SudokuSetup軟件包由于測試在編碼調(diào)試過程中已經(jīng)基本完成,所以本階段的測試是在程序打包后,將游戲分發(fā)給不同玩家使用,以期望發(fā)現(xiàn)BUG。 發(fā)現(xiàn)的BUG及解決情況幾乎每一個程序都會有這樣或那樣的不足,尤其是未經(jīng)過精心維護(hù)的非商業(yè)軟件。即使是作為操作系統(tǒng)的Windows也時常會發(fā)生許多類型的錯誤和漏洞。本游戲當(dāng)然或多或少也存在些bug,主要發(fā)現(xiàn)的BUG如下:編寫的遞歸解法,可以實現(xiàn)大部分題目的解題。不過可能出現(xiàn)“死遞歸”,即一直遞歸下去。分析后,發(fā)現(xiàn)這主要是由于所采用的解題算法——遞歸對于求解個別復(fù)雜的題目時,效率不高,比如對于本游戲提供的題庫的一道專殺暴力搜索程序的數(shù)獨,此算法就需要花費40多分鐘才能求解出答案,而其它的一般都是在一秒鐘內(nèi)就可以求解出答案。這里的AI的設(shè)計與實現(xiàn)需要大量的研究和廣泛的試驗,這并不是短時間能做到的。對此的BUG的暫時解決方案是在此期間友情提示玩家,當(dāng)花費時間過長提示玩家重啟程序。在后期,將考慮數(shù)獨問題轉(zhuǎn)換為精確覆蓋的問題,采用Knuth的Dancing Links算法進(jìn)行求解。另一個主要BUG是:在Windows XP 系統(tǒng)下,程序運行時候?qū)⒄加?00%的CPU問題,而在Windows 7上測試卻沒有此現(xiàn)象。經(jīng)查資料后,發(fā)現(xiàn)主要原因之一:操作系統(tǒng)版本的驅(qū)動模型影響。在Windows Vista以上版本的操作系統(tǒng)中,WPF可以充分利用新的Windows Vista顯示驅(qū)動模型(Windows Vista Display Driver Model,WDDM),相對于Windows XP的顯示驅(qū)動模型(Windows XP Display Driver Model,XPDM),WDDM提供了幾處非常重要的改進(jìn)。WPF所用到的動畫是使用了基于幀的動畫技術(shù)。在WDDN驅(qū)動模型下,WPF程序會根據(jù)顯卡性能自動調(diào)節(jié)每秒的幀數(shù),使其不會占用大量CPU。而在XP上則不存在自動調(diào)節(jié)幀數(shù)的問題。目前在XP下解決占用CPU 100%的技巧是,將DefaultValue設(shè)為較低的值:(typeof(Timeline), new FrameworkPropertyMetadata { DefaultValue = 5 })。//設(shè)置每秒傳輸幀數(shù)5幀 未完善的功能到目前為止,這已經(jīng)是一個功能較為完善的數(shù)獨游戲了。不過還可以做得更好,經(jīng)過測試之后,發(fā)現(xiàn)本游戲可以完善的功能:添加更多的解題器插件,寫一個更好的算法,使解題和生成題目的時間更短。將界面風(fēng)格和邏輯分離得更清楚,實現(xiàn)皮膚定制和顏色風(fēng)格的變更。添加更多的效果和動畫使游戲更具美觀。使游戲具有背景音樂和聲音效果。7. 結(jié)論 游戲的總結(jié)和展望 Framework 上WPF為平臺的益智類游戲的數(shù)獨的開發(fā),游戲采用可以產(chǎn)生大量不同游戲的隨機(jī)生成的方法,具有極高的耐玩性和益智性。經(jīng)過了細(xì)心的調(diào)試和排錯解決了絕大部分的問題。游戲開發(fā)所涉及到的WPF技術(shù)如數(shù)據(jù)綁定、動畫和自定義控件只是冰山一角,后期開發(fā)可以嘗試加入WPF技術(shù)中的3D圖形,視頻和多媒體應(yīng)用,將WPF豐富絢麗的用戶界面表現(xiàn)能力發(fā)揮到極致,使游戲更具可玩性。目前本游戲還是單機(jī)版游戲,后期可在原有XAML和C代碼的基礎(chǔ)上移植到瀏覽器中,即開發(fā)出Silver Light版本是更多玩家能夠跨平臺享受本游戲的樂趣。 感想本游戲作為我的畢業(yè)設(shè)計,是筆者目前做過的最有意義的程序。 大學(xué)期間做過很多課程設(shè)計,大多是關(guān)于數(shù)據(jù)庫方向的應(yīng)用,開發(fā)游戲還是首次。游戲的設(shè)計過程中設(shè)計到數(shù)據(jù)結(jié)構(gòu)的知識,需要將具體游戲抽象到數(shù)據(jù)結(jié)構(gòu),并要對算法進(jìn)行優(yōu)化。與此同時,不可避免的又要考慮到系統(tǒng)安全問題、線程等概念。而以前做過的學(xué)生管理系統(tǒng)、網(wǎng)上書城等簡單的數(shù)據(jù)庫管理系統(tǒng)的課程設(shè)計,大致都是數(shù)據(jù)庫的增刪改查,最終結(jié)果都離不開同一個模式。相比一些數(shù)據(jù)庫軟件,游戲的設(shè)計有很多人情色彩和藝術(shù)思想的發(fā)揮。學(xué)習(xí)WPF的困難遠(yuǎn)遠(yuǎn)超出了想象,由于WPF為一種剛出現(xiàn)僅幾年的新技術(shù),國內(nèi)的參考資料非常少,僅有的資料一般也停留在簡單的介紹階段。在設(shè)計初期,需要翻譯查看許多國外的電子書籍和開發(fā)人員的博客。Lucas Magder的博客里一個關(guān)于WPF的入門系列教程實例給了很大的幫助。畢業(yè)設(shè)計是對大學(xué)所學(xué)知識的一次全面檢驗,通過本次畢業(yè)設(shè)計使我了解到自己在課本所學(xué)知識遠(yuǎn)遠(yuǎn)不夠。在以后的人生道路上,要不斷堅持學(xué)習(xí),不斷自我完善,使自己成為一名合格的IT人才。參考文獻(xiàn)
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1