俄羅斯方塊課程設計_第1頁
俄羅斯方塊課程設計_第2頁
俄羅斯方塊課程設計_第3頁
俄羅斯方塊課程設計_第4頁
俄羅斯方塊課程設計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學生課程設計(論文)題目:俄羅斯方塊攀枝花學院本科學生課程設計任務書題目俄羅斯方塊1、課程設計的目的通過本課程設計使學生能夠較全面的掌握面向對象程序設計的有關概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運用所學的知識,提高自身的編程能力2、課程設計的內容和要求(包括原始數(shù)據(jù)、技術要求、工作要求等)實現(xiàn)一個俄羅斯游戲,要求:(1)盡量使用圖形用戶界面方式實現(xiàn)(不作硬性要求)(2)可以實現(xiàn)人機對戰(zhàn),自動判斷勝負(3)界面美觀3、主要參考文獻4、課程設計工作進度計劃廳P時間(天)內容安排備注11分析設計準備周一22編程調試階段周至周三31編寫課程設計報告周四41考核周五總計5(天)指導教師(簽字)

2、日期年月日教研室意見:年月日學生(簽字):接受任務時間:年月日注:任務書由指導教師填寫。附件3:課程設計(論文)指導教師成績評定表題目名稱評分項目分值得分評價內涵工作表現(xiàn)20%01學習態(tài)度6遵守各項紀律,工作刻苦努力,具有良好的科學工作態(tài)度。02科學實踐、調研7通過實驗、試驗、查閱文獻、深入生產(chǎn)實踐等渠道獲取與課程設計有關的材料。03課題工作量7按期圓滿完成規(guī)定的任務,工作量飽滿。能力水平35%04綜合運用知識的能力10能運用所學知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進行理論分析,得出有價值的結論。05應用文獻的能力5能獨立查閱相關文獻和從事其他調研;能提出并較好地論述課

3、題的實施方案;有收集、加工各種信息及獲取新知識的能力。06設計(實驗)能力,方案的設計能力5能正確設計實驗方案,獨立進行裝置安裝、調試、操作等實驗工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計算及計算機應用能力5具有較強的數(shù)據(jù)運算與處理能力;能運用計算機進行資料搜集、加工、處理和輔助設計等。08對計算或實驗結果的分析能力(綜合分析能力、技術經(jīng)濟分析能力)10具有較強的數(shù)據(jù)收集、分析、處理、綜合的能力。成果質量45%09插圖(或圖紙)質量、篇幅、設計(論文)規(guī)范化程度5符合本專業(yè)相關規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。10設計說明書(論文)質量30綜述簡練完整,有見解;立論正確,論述充

4、分,結論嚴謹合理;實驗正確,分析處理科學。11創(chuàng)新10對前人工作有改進或突破,或有獨特見解。成績指導教師評語指導教師簽名:年月日摘要近年來,隨著游戲產(chǎn)業(yè)的突飛猛進,游戲玩家的技術也是與日俱增,當你看見游戲高手完美的表演時,你是否想過我也能達到那種水平,本程序采用全世界最金典的游戲一俄羅斯方塊作為背景,程序設置了鼠標和鍵盤兩個選擇方式,游戲運行時隨著等級的提高而速度加快,這需要玩家快速操作。因此,本程序主要意義是為高手玩家提供訓練平臺。其次也可為剛踏入游戲領域的新手們,提供一個很好的鍛煉機會。本次課程設計主要解決利用VisualC+般計實現(xiàn)俄羅斯方塊游戲的算法、游戲內部功能、游戲區(qū)域的繪圖的程序

5、設計。對于每個俄羅斯方塊各自的形態(tài)變化改變到下一個形態(tài)利用數(shù)組來實現(xiàn),在程序設計中,采用WIN32m制來實現(xiàn),并且直接從架構的其中一個類對象中繼承下來,將它完善而變成有某功能特性的物件對象。關鍵詞俄羅斯方塊數(shù)據(jù)結構算法數(shù)組VisualC+才周,I一、緒論,21.1課題背景,2二、課程設計的要求與目的,32.1 課程設計的要求,32.2 課程設計的目的,3三、程序需求分析3.1 功能需求,3.2 方塊及各種變化需求,3.3 操作需求3.31向上鍵,332向下鍵.,3.33向右鍵,.四、程序流程圖4.1主要功能設計,42程序流程圖.,4.3游戲界面,44生成方塊.,45方塊變形.,1 .6方塊顯示

6、,47 障礙判斷.,48 消行記分.,49 暫停退出.,50 10軟件使用說明,五、源程序代碼5.1源程序代碼,六、程序結果61程序結果.,參考文獻,56致謝,第一章緒論俄羅斯方塊是個老幼皆宜的小游戲,是經(jīng)久不衰的一款游戲,自從它誕生那天起就一直深受人們的喜愛。幾乎每個人都玩過這個游戲,也是人們接觸最多的一款游戲,它實現(xiàn)由四塊正方形的色塊組成,然后存儲在一個數(shù)組的四個元素中,計算機隨機產(chǎn)生不同七種類型的方塊,根據(jù)計算機時鐘控制它在一定的時間不停得產(chǎn)生,用戶根據(jù)鍵盤的四個方向翻轉、向左、向右和向下操作,(控制鍵的實現(xiàn)是由鍵盤的方向鍵消息函數(shù)實現(xiàn))。然后程序根據(jù)這七種方塊堆疊成各種不停得模型。1.

7、1游戲的背景俄羅斯方塊是一款風靡全球的電視游戲機和掌上游戲機游戲,它曾造成的轟動與造成的經(jīng)濟價值可言說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人AlexPajitnov制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶飯不思不想的那個俄羅斯方塊時代。俄羅斯方塊最早還是出現(xiàn)在PC機上,而我國的用戶都是通過紅白機了解、喜歡上它的?,F(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯方塊風潮。對于一般用戶來說,它的規(guī)則簡單,容易上手,且u、游戲過程變化無窮,俄羅斯方塊游戲現(xiàn)在基本上是每個手機必備的游戲,種類千變萬化,多種多樣。第二章課程設計的目的與要求2.1 課程設計的目的

8、本課程是一個綜合性的實踐教學環(huán)節(jié),其目的在于促進學生復習和鞏固計算機軟件設計知識,加深對軟件設計方法、軟件設計技術和設計思想的理解,并能運用所學知識進行開發(fā)。希望通過本課程設計中簡單系統(tǒng)的開發(fā),使學生掌握軟件設計的基本方法和基本的流程,提高學生的綜合應用能力。2.2 課程設計的要求要求用VC+編寫與實現(xiàn)俄羅斯方塊。要求包括系統(tǒng)的需求分析;系統(tǒng)總框圖及每個模塊的設計分析;算法的設計與實現(xiàn);游戲的內部實現(xiàn);游戲區(qū)域繪畫的實現(xiàn);系統(tǒng)存在的問題及錯誤處理;列出所有定義的函數(shù)及說明;附上源程序;第三章程序需求分析3.1 功能需求隨機給出不同的形狀下落填充給定的區(qū)域,若填滿一條便消掉,記分,設計不同的游戲

9、難度,即方塊下落的速度不同,若在游戲中各形狀填滿了給定區(qū)域為輸者。3.2 方塊及各種變換需求本游戲需要七種方塊,而每種方塊還可以進行旋轉。每種方塊每行每列最多只有4個小方塊。可以將它們放在一個n*m的區(qū)域內,該區(qū)域可以看做是有許多個等面積小方塊構成的區(qū)域,而這些區(qū)域的狀態(tài)只有兩種,被方塊占據(jù)或空閑。因此,對于整個游戲區(qū)域的空間是被占據(jù)或空閑,可以用一位數(shù)來標識。對于七種方塊和它們旋轉后的形態(tài)我們可以用不同的標識進行標記。對于旋轉,游戲中所有方塊都是按照逆時針旋轉的規(guī)則進行的,而且在旋轉過程中它們不會因為旋轉而下降,總會保持在同一高度。任何方塊經(jīng)過一個旋轉周期還會變回原型。3.3 操作需求3.3

10、1 向上鍵產(chǎn)生方塊旋轉操作,方塊并非任何情況都能旋轉,如果旋轉后與小方塊矩陣顯示的方塊有沖突或超出邊界是,均不發(fā)生旋轉。因此首先要判斷是否有足夠的空間進行旋轉。然后是旋轉是否旋轉。3.32 向下鍵產(chǎn)生方塊加速下落操作,如果方塊已經(jīng)達到游戲區(qū)域底部或者有其他方塊遮擋,則方塊停止下降。3.33 向右鍵產(chǎn)生下落方塊右移操作。首先要判斷此方塊是否能夠發(fā)生右移,當越界或被其他顯示方塊阻擋時,則不能右移。第四章詳細設計4.1 主要功能設計根據(jù)分析,俄羅斯方塊這個程序一共要實現(xiàn)如下幾個功能,開始游戲(F8)、游戲的暫停繼續(xù)(S)和退出游戲(Q)。其中游戲控制最為主要和重要,它控制著整個游戲的畫面和有關數(shù)據(jù)的

11、操作,是游戲的核心部分。暫停和退出功能做成一體,在退出的提示下不做任何操作即可實現(xiàn)暫停的功能。俄羅斯方塊開始游戲暫停繼續(xù)退出游戲失敗游戲結束4.2 程序流程圖根據(jù)分析后的程序結構圖設計出相應的流程圖。俄羅斯方塊的內容主要包括游戲開始,畫背景和邊框,顯示分數(shù)等級和下一個方塊的預覽圖;根據(jù)速度沒隔一定時間方塊自動下落,當有按鍵操作時,根據(jù)相應按鍵執(zhí)行動作,每次動作前要判斷是否動作可以執(zhí)行。下落方塊滿一行時,消去該行,根據(jù)消去行數(shù)得到相應分數(shù)。分數(shù)達到一定程度,等級提升,速度加快。同時可以響應Esc按鍵,提示是否退出程序。4.3 游戲界面俄羅斯方塊的游戲界面包括游戲區(qū)域邊框、下落方塊繪制、右部計分和

12、預覽圖顯小等。游戲區(qū)域邊框的繪制比較簡單,循環(huán)中確定光標的位置輸出特定字符,即可完成邊框繪制。游戲區(qū)方塊的繪制,循環(huán)從數(shù)據(jù)數(shù)組中依次讀出數(shù)據(jù),根據(jù)讀到的數(shù)據(jù)顯示“口”,最后組成方塊的形狀,完成方塊的繪制。計分和預覽圖部分先畫出一個矩形區(qū)域,然后控制光標在其中顯示分數(shù)、等級、預覽圖和提示信息。7-TBegin:F8SleepQuitNEXTLEVELSCORE4.4 生成方塊本程序中生成的方塊有7種形狀,每一種方塊以shapeindex標記,在程序運行生成方塊時,調用shapeindex=rand()%5+1;語句,確定當前要顯示的是哪一個方塊形狀。而在實際運行中,第一次需要調用兩次生成方塊函數(shù)

13、make(),將先產(chǎn)生的賦給游戲當前方塊,第二個賦給預覽圖方塊。以后每次產(chǎn)生一個方塊,把預覽方塊賦給當前方塊,把新產(chǎn)生的賦給預覽方塊。4.5 方塊變形俄羅斯方塊的特點就在于通過方塊的變形拼滿整行來消去該行方塊從而使游戲可以繼續(xù)下去,很難想象不能變形的俄羅斯方塊是什么樣子。而變形的過程就是根據(jù)當前方塊形狀改變方塊的相對位置,這樣就可以改變方塊的形狀了。在程序中每當按下鍵,程序判斷可以變形后,根據(jù)當前方塊的形狀序號shapeindex和變化形狀序號changeindex調用相應的方塊數(shù)值賦給draw()函數(shù),通過刷新重畫就可以顯示變化后的方塊了。4.6 方塊顯示以上方塊的操作都是數(shù)據(jù)層面的操作,而

14、真正要在游戲窗口中看到數(shù)據(jù)的變化,還必須把方塊不斷的繪制出來。這就是draw()函數(shù)的作用。把當前運動的方塊對應節(jié)點存儲在一個4*4數(shù)組里,變形和生成方塊的過程就是更新該數(shù)組數(shù)據(jù)的過程。然后在draw()函數(shù)里檢測數(shù)組的各個值,并控制光標跳到一定位置,畫出“口”組成方塊。4.7 障礙判斷障礙判斷,就是在方塊運動中或者變形中判斷周圍是否有障礙阻礙下落、移位、變形。當方塊下落遇到下面有方塊或者到達下邊界則應停止下落并記錄數(shù)據(jù),存入背景數(shù)據(jù)數(shù)組。變形時應判斷這個變形是否可以進行,如果有障礙則不能變形。例如當方塊達到右邊界,而若變形則會越過邊界,那么這個變形的命令是不應執(zhí)行的。所有這些乎U斷都由mee

15、t()函數(shù)進行,根據(jù)是否有障礙返回1或0,再由其他函數(shù)接收執(zhí)行相應操作。4.8 消行計分游戲玩家拼滿一行后,程序消去滿行,并計分。中當一個方塊下落停止后,程序檢查方塊是否充滿了游戲區(qū)域,如果是結束游戲。不是,則判斷是否構成消行條件,從下落方塊的最低點依次向上檢查是否可以消行,根據(jù)消去行數(shù)分數(shù)增加。分數(shù)達到一定程度,等級提升,分數(shù)暫定為每1000升一級。4.9 暫停退出游戲的友好性在于能考慮用戶的需要,隨時可以暫停/繼續(xù)游戲,在不愿繼續(xù)游戲時退出游戲。本程序可以在用戶需要的時候響應Esc按鍵,提示是否退出游戲,如果不做選擇即可暫停游戲,等待選擇。程序調試經(jīng)過調試和修改,程序完全實現(xiàn)設計要求,成功

16、模擬了俄羅斯方塊的運行過程和游戲效果,只是界面略微簡陋,但已從程序層面上實現(xiàn)了游戲,達到了這次實訓的要求和目的。程序正常生成方塊,根據(jù)速度值每隔一定時間自動下落,如有操作按鍵按下,根據(jù)按鍵實現(xiàn)位移和變形。當方塊滿一行后,可以消除該行,同時記錄分數(shù)和等級。按下Esc鍵紅色提示信息正常顯示,可以響應Y,N鍵決定是否退出游戲4.10 軟件使用說明打開俄羅斯方塊游戲后,通過控制方向區(qū)域的、“r'、“一”、“一”來控制,鍵代表變形轉換,”廠、”一”、“右”均代表方向鍵,"Q'代表退出游戲鍵。若想暫停游戲,可通過“S”鍵,當初來詢問框是,可不做選擇,則可達到暫停的效果第五章源代碼

17、源程序代碼(詳細的注釋)#include<windows.h>#include<stdio.h>#include<stdlib.h>#include<time.h>#include<conio.h>classConsolepublic:Console()hStdOutput=INVALID_HANDLE_VALUE;hStdError=INVALID_HANDLE_VALUE;boolOpen(void)hStdOutput=GetStdHandle(STD_OUTPUT_HANDLE);hStdError=GetStdHandle(

18、STD_ERROR_HANDLE);returnINVALID_HANDLE_VALUE!=hStdOutput&&INVALID_HANDLE_VALUE!=hStdError;inlineboolSetTitle(char*title)/設置標題returnTRUE=SetConsoleTitle(title);boolRemoveCursor(void)/去處光標CONSOLE_CURSOR_INFOcci;if(!GetConsoleCursorInfo(hStdOutput,&cci)returnfalse;cci.bVisible=false;if(!Set

19、ConsoleCursorInfo(hStdOutput,&cci)returnfalse;if(!GetConsoleCursorInfo(hStdError,&cci)returnfalse;cci.bVisible=false;if(!SetConsoleCursorInfo(hStdError,&cci)returnfalse;returntrue;boolSetWindowRect(shortx,shorty)/設置窗體尺寸SMALL_RECTwrt=0,0,x,y;if(!SetConsoleWindowInfo(hStdOutput,TRUE,&w

20、rt)returnfalse;if(!SetConsoleWindowInfo(hStdError,TRUE,&wrt)returnfalse;returntrue;boolSetBufSize(shortx,shorty)/設置緩沖尺寸COORDcoord=x,y;if(!SetConsoleScreenBufferSize(hStdOutput,coord)returnfalse;if(!SetConsoleScreenBufferSize(hStdError,coord)returnfalse;returntrue;boolGotoXY(shortx,shorty)/移動光標CO

21、ORDcoord=x,y;if(!SetConsoleCursorPosition(hStdOutput,coord)returnfalse;if(!SetConsoleCursorPosition(hStdError,coord)returnfalse;returntrue;boolSetColor(WORDcolor)/設置前景色/背景色if(!SetConsoleTextAttribute(hStdOutput,color)returnfalse;if(!SetConsoleTextAttribute(hStdError,color)returnfalse;returntrue;bool

22、OutputString(constchar*pstr,size_tlen=0)/輸出字符串DWORDn=0;returnTRUE=WriteConsole(hStdOutput,pstr,len?len:strlen(pstr),&n,NULL);boolOutputStringNoMove(shortx,shorty,constchar*pstr,size_tlen=0)/輸出字符串COORDcoord=x,y;DWORDn=0;returnTRUE=WriteConsoleOutputCharacter(hStdOutput,pstr,len?len:strlen(pstr),c

23、oord,&n);private:HANDLEhStdOutput;HANDLEhStdError;constcharbg=""|-negti:F800000constcharbk7444=(0,1,1.0,1,1,0.0,0,0,0.0,0,0,0.0),1,0,0,0,1,1,0.0,0,1,0.0,0,0,0.0,0,1,1.0,1,1,0.0,0,0,0.0,0,0,0.0,1,0,0,0,1,1,0.0,0,1,0.0,0,0,0.0,1,1,0,0,0,1,1.0,0,0,0.0,0,0,0.0,0,1,0.0,1,1,0.0,1,0,0.0,0,0,0

24、.0,1,1,0,0,0,1,1.0,0,0,0.0,0,0,0.0,0,1,0.0,1,1,0.0,1,0,0.0,0,0,0.0,1,1,1,0,1,0,0.0,0,0,0.0,0,0,0.0,1,0,0,0,1,0,0.0,1,1,0.0,0,0,0.0,0,0,1.0,1,1,1.0,0,0,0.0,0,0,0.0,1,1,0,0,0,1,0.0,0,1,0.0,0,0,0.0,1,1,1,0,0,0,1.0,0,0,0.0,0,0,0.0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0

25、,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,01,1,1,1,0,0,0,0,0,0,0,

26、0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0;constWORDCOLOR_A=FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY;/運動中的顏色constWORDCOLOR_B=FOREGROUND_RED;/固定不動的顏色constWORDCOLOR_C=FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE;/空白處的顏色intsc

27、ore=0,level=0;chardata1911=0;intnext=-1;intx=4,y=-2,c=-1,z=0;/x坐標,坐標,當前方塊,方向Consolecsl;/定義控制臺對象voidDrawScoreLevel(void)/繪制得分chartmp6;sprintf(tmp,"%05d",score);csl.OutputStringNoMove(31,19,tmp,5);sprintf(tmp,"%1d",level);csl.OutputStringNoMove(35,15,tmp,1);voidDrawNext(void)/繪制&qu

28、ot;next框"中的圖形for(inti=0;i<2;+i)for(intj=0;j<4;+j)csl.OutputStringNoMove(28+j*2,10+i,bknext0ij=0?"":"2);voidDrawOver(void)/游戲結束csl.OutputStringNoMove(28,10,"GAME");csl.OutputStringNoMove(28,11,"OVER");voidDraw(WORDcolor)for(inti=0;i<4;+i)if(y+i<0|y+

29、i>=19)continue;for(intj=0;j<4;+j)if(bkczij=1)csl.SetColor(color);csl.GotoXY(2+x*2+j*2,1+y+i);csl.OutputString("",2);boolIsFit(intx,inty,intc,intz)/給定的x,y,c,z是否可行for(inti=0;i<4;+i)for(intj=0;j<4;+j)if(bkczij=1)if(y+i<0)continue;if(y+i>=19|x+j<0|x+j>=11|datay+ix+j=1)r

30、eturnfalse;returntrue;voidRemoveRow(void)/消行constcharFULLLINE=1,1,1,1,1,1,1,1,1,1,1;intlinecount=0;for(inti=0;i<19;+i)if(0=memcmp(datai,FULLLINE,11)+linecount;for(intm=0;m<11;+m)for(intn=i;n>1;-n)datanm=datan-1m;csl.SetColor(datanm=1?COLOR_B:COLOR_C);csl.GotoXY(2+m*2,1+n);csl.OutputString(&

31、quot;",2);data0m=0;csl.OutputStringNoMove(2+m*2,1,"",2);chardata1911=0;if(linecount=0)return;int_score=0;switch(linecount)case 1: _score=100;break;case 2: _score=300;break;case 3: _score=700;break;case 4: _score=1500;break;score+=_score;if(score>99999)score=99999;level=score/10000;

32、DrawScoreLevel();voidMoveTrans(void)/逆時針翻轉if(IsFit(x,y,c,(z+1)%4)Draw(COLOR_C);z=(z+1)%4;Draw(COLOR_A);voidMoveLeft(void)/向左移if(IsFit(x-1,y,c,z)Draw(COLOR_C);-x;Draw(COLOR_A);voidMoveRight(void)/向右移if(IsFit(x+1,y,c,z)Draw(COLOR_C);+x;Draw(COLOR_A);voidMoveDown(void)/向下移if(IsFit(x,y+1,c,z)Draw(COLOR_C);+y;Draw(COLOR_A);elseif(y!=-2)/觸底Draw(COLOR_B);for(inti=0;i<4;+i)if(y+i<0)continue;for(intj=0;j<4;+j)if(bkczij=1)datay+i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論