人工智能課程設(shè)計(jì)五子棋_第1頁(yè)
人工智能課程設(shè)計(jì)五子棋_第2頁(yè)
人工智能課程設(shè)計(jì)五子棋_第3頁(yè)
人工智能課程設(shè)計(jì)五子棋_第4頁(yè)
人工智能課程設(shè)計(jì)五子棋_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、百度文庫(kù)讓每個(gè)人平等地捉升口我人工智能課程設(shè)計(jì)五子棋百度文庫(kù)讓每個(gè)人平等地捉升口我一. 引言3五子棋簡(jiǎn)介3五子棋的AI構(gòu)想3二. 開發(fā)工具可行性分析5三. 需求分析6四. 程序設(shè)計(jì)6程序設(shè)計(jì)特點(diǎn)6程序總體設(shè)計(jì)7五. 代碼分析8初始化賦值系統(tǒng)8初始化獲勝組合9重新設(shè)定玩家的獲勝標(biāo)志9處理鼠標(biāo)事件10獲勝檢查算法12電腦算法(1)14電腦算法(2) 17六. 心得體會(huì)20七. 參考文獻(xiàn)203一.引言人工智能也就是所謂的AI(Artificial Intelligence),它是一門很抽象的技術(shù), AI程序的編寫不需要依據(jù)任何既定的思考模式或者規(guī)則。尤其是游戲中的AI可 以完全依程序設(shè)計(jì)者本身的思考

2、邏輯制作。我個(gè)人認(rèn)為人工智能的核心應(yīng)該是使 計(jì)算機(jī)具有自動(dòng)的處理事件的能力,而我們的所有的研究也應(yīng)該圍繞著這一方 向。我們今天討論的是策略類的人工智能。策略類人工智能可以說(shuō)是AI中比較復(fù)雜的一種,最常見的策略類AI游戲 就是棋盤式游戲。在這類游戲中,通常的策略類AI程序都是使計(jì)算機(jī)判斷訂前 狀況下所有可走的棋與可能的獲勝狀況,并計(jì)算當(dāng)前計(jì)算機(jī)可走棋步的獲勝分?jǐn)?shù) 或者玩家可走棋步的獲勝分?jǐn)?shù),然后再?zèng)Q定出一個(gè)最佳走法。下面我們先介紹一 下五子棋的AI構(gòu)想。五子棋簡(jiǎn)介下面就五子棋的背景和規(guī)則做一些簡(jiǎn)單的介紹。五子棋是起源于中國(guó)古代的傳統(tǒng)黑白棋種之一?,F(xiàn)代五子棋日文稱之為連 珠,英譯為Renju,英文

3、稱之為Gobang或、FIR(Five in a Row的縮寫), 亦有連五子五子連、串珠、五目、五目碰、五格等多種稱謂。五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身 養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征短、平、快,乂有古典哲學(xué)的高深學(xué)問 陰陽(yáng)易理;它既有簡(jiǎn)單易學(xué)的特性,為人民群眾所喜聞樂見,乂有深?yuàn)W的技巧 和高水平的國(guó)際性比賽;它的棋文化源淵流長(zhǎng),具有東方的神秘和西方的直觀; 既有場(chǎng)的概念,亦有點(diǎn)的連接。它是中西文化的交流點(diǎn),是古今哲理的結(jié)晶。五子棋的規(guī)則如下:棋盤:采用同圍棋盤一樣的15路或19路線的棋盤, 為了減小問題的規(guī)模,本系統(tǒng)將采用15路線的棋盤。下法:兩人分別執(zhí)黑白

4、兩 色棋子,輪流在棋盤上選擇一個(gè)無(wú)子的交義點(diǎn)落子。無(wú)子的交義點(diǎn)乂被稱為空點(diǎn)。 輸贏判斷:黑、白雙方有一方的5個(gè)棋子在橫、豎或斜方向上連接成一線即為該 舌占五子棋的AI構(gòu)想在山AI所控制的計(jì)算機(jī)玩家上是不成立的,因?yàn)橛?jì)算機(jī)必須知道有那些獲 勝方式,并計(jì)算出每下一步棋到棋盤上任一格子的獲勝兒率。一個(gè)完整的五子棋的AI構(gòu)想必須:1、能夠知道所有的獲勝組合2、建立和使用獲勝表3、設(shè)定獲勝的分?jǐn)?shù)4、使電腦具有攻擊和防守的能力(一),求五子棋的獲勝組合在一場(chǎng)五子棋的游戲中,計(jì)算機(jī)必須要知道有那些的獲勝組合,因此我們必 須求得獲勝組合的總數(shù)。我們假定當(dāng)前的棋盤為10*10:1、計(jì)算水平方向的獲勝組合數(shù),每一

5、列的獲勝組合是:6,共10列,所以水平 方向的獲勝組合數(shù)為:6*10=602、計(jì)算垂直方向的獲勝組合總數(shù),每一行的獲勝組合是:6,共10行,則垂直 方向的獲勝組合數(shù)為:6*10=603、計(jì)算正對(duì)角線方向的獲勝組合總數(shù),正對(duì)角線上的獲勝組合總數(shù)為6+(5+4+3+2+1) *2=364、訃算反對(duì)角線方向的獲勝組合總數(shù),反對(duì)角線上的獲勝組合總數(shù)為6+(5+4+3+2+1) *2=36這樣所有的獲勝組合數(shù)為:60+60+36+36=192(二)、建立和使用獲勝表我們已經(jīng)計(jì)算出了一個(gè)10*10的五子棋盤會(huì)有192種獲勝方式,這樣我們可 以利用數(shù)組建立獲勝表,獲勝表的主要作用是:1、判斷當(dāng)前的獲勝方式是

6、否有效;2、判斷當(dāng)前的獲勝方式中到底有多少子落入該獲勝組合中。詳細(xì)的使用您將在 后面的程序中可以看出。(三)、分?jǐn)?shù)的設(shè)定在游戲中為了讓計(jì)算機(jī)能夠決定下一步最佳的走法,必須先計(jì)算出計(jì)算機(jī)下 到棋盤上任一空格的分?jǐn)?shù),而其中最高分?jǐn)?shù)便是計(jì)算機(jī)下一步的最佳走法。百度文郵-讓每個(gè)人平等地捉升口我原理:我們判定當(dāng)前討論的空格與當(dāng)前討論的點(diǎn)有兒種獲勝的方式,有兒種 該空格就加兒分。這種原理初聽起來(lái)似乎是無(wú)法入手,沒關(guān)系,當(dāng)您了解我們后 面的程序后您就會(huì)明白這種決策原理了。這種決策有一些缺陷,因?yàn)槿绻桓鶕?jù)這個(gè)模型設(shè)計(jì),就有可能出現(xiàn)電腦或 玩家有三個(gè)子連成一線的時(shí)候,計(jì)算機(jī)卻判斷不出,它認(rèn)為其他某些空格是當(dāng)前

7、 的獲勝的最佳位置而不去攻擊或防守。沒關(guān)系我們完全可以通過一個(gè)加強(qiáng)算法來(lái) 改變當(dāng)前的分值情況,也就是說(shuō)當(dāng)電腦或玩家有三個(gè)子或四個(gè)子連成一線時(shí),我 們通過加強(qiáng)算法將當(dāng)前與三個(gè)子或四個(gè)子有關(guān)的空格的分值提高,從而可以彌補(bǔ) 這一缺憾。(四)、攻擊與防守以上的方式,事實(shí)上計(jì)算機(jī)只是計(jì)算出了最佳的攻擊位置,為了防守我們還 應(yīng)訃算當(dāng)前玩家的最佳的攻擊位置。這樣有什么用呢?道理很簡(jiǎn)單,如果玩家最 佳攻擊位置的分?jǐn)?shù)大于計(jì)算機(jī)最佳攻擊位置上的分?jǐn)?shù),那么計(jì)算機(jī)就將下一步的 棋子擺在玩家的最佳攻擊位上以阻止玩家的進(jìn)攻,否則訃算機(jī)便將棋子下在自己 的最佳攻擊位置上進(jìn)行攻擊。事實(shí)上,這個(gè)AI構(gòu)想是很強(qiáng)大的如果你不是很厲

8、害的五子棋高手的話,可 能很快會(huì)被訃算機(jī)打敗。我在聯(lián)眾上可是中級(jí)棋手啊,跟這種構(gòu)想打的時(shí)候勝率 也不是很高。二. 開發(fā)工具可行性分析本程序采用開發(fā)工具它是Visual的簡(jiǎn)稱。提到,就不能不先提一下Visual Basic是Windows環(huán)境下的一種簡(jiǎn)單、易學(xué)的編程語(yǔ)言,山于其開發(fā)程序的快速、 高效,深受程序員的喜愛。的特點(diǎn):1、真正成為面向?qū)ο笠约爸С掷^承性的語(yǔ)言。2、窗體設(shè)計(jì)器支持可視化繼承,并且包含了許多新的特性,比如自動(dòng)改變窗體 大小、資源本地化支持、數(shù)據(jù)類工具內(nèi)在支持XML數(shù)據(jù)。3、直接建立在.NET的框架結(jié)構(gòu)上,因此開發(fā)人員可以充分利用所有.NET平臺(tái) 特性,也可以與其他的.NET語(yǔ)

9、言交互。4、為Windows應(yīng)用程序提供了 XCOPY部署,開發(fā)者不再需要為DLL的版本 問題擔(dān)憂。三. 需求分析人丄智能的第一大成就是下棋程療;,在下棋程度中應(yīng)用的某些技術(shù),如向 前看兒步,把困難的問題分解成一些較容易的子問題,發(fā)展成為搜索和問題歸納 這樣的人匸智能基本技術(shù)。今天的計(jì)算機(jī)程序已能夠達(dá)到下各種棋和國(guó)際象棋的 水平。但是,尚未解決包括人類棋手具有的但尚不能明確表達(dá)的能力。如們洞察 棋局的能力。另一個(gè)問題是涉及問題的原概念,在人工智能中叫問題表示的選擇, 人們常能找到某種思考問題的方法,從而使求解變易而解決該問題。到U前為止, 人丄智能程序已能知道如何考慮它們要解決的問題,即搜索解

10、答空間,尋找較優(yōu) 解答。在設(shè)訃本系統(tǒng)時(shí)考慮到用戶需要的是一個(gè)操作簡(jiǎn)便界面簡(jiǎn)單的游戲軟件。 同時(shí)要提供人機(jī)和人人這樣的功能。特別是人機(jī)部分,要考慮到不同級(jí)別的用戶。 電腦智能不能太低需要有一定的智能下棋功能。人機(jī)對(duì)戰(zhàn):選擇和電腦對(duì)弈的等級(jí)操作,同樣也可以執(zhí)行網(wǎng)絡(luò)聯(lián)機(jī)的悔棋 等功能,只是因?yàn)槭侨藱C(jī)所以無(wú)需通過確認(rèn)。四. 程序設(shè)計(jì)游戲中提供兩種選擇模式:人機(jī)對(duì)戰(zhàn)和人人對(duì)戰(zhàn)。在人機(jī)對(duì)戰(zhàn)中玩家通過選 擇不同的等級(jí)和電腦一決高下,可以向后悔棋。在人人對(duì)戰(zhàn)中雙方通過選擇一方 作為服務(wù)器,通過彈出對(duì)話框設(shè)置本地應(yīng)用程序監(jiān)聽端口,而另外一方則作為客 戶端,通過連接服務(wù)器選項(xiàng),在彈出的對(duì)話框中設(shè)置要連接的服務(wù)器的

11、IP地址 和端口號(hào)。當(dāng)雙方都提示連接成功后,兩方才可以進(jìn)行下棋。如要悔棋則需要通 過對(duì)方的同意。同時(shí)還可以實(shí)現(xiàn)在線聊天。AI的不同等級(jí)是以不同的搜索深度 確定的。程序設(shè)計(jì)特點(diǎn)五子棋游戲程序山于規(guī)則簡(jiǎn)單操作簡(jiǎn)便等特點(diǎn),自然就成為程序員對(duì)人工 智能研究的首選對(duì)象。所以網(wǎng)絡(luò)上關(guān)于這類的程序很多,但是由于主要都是采用 搜索窮舉技術(shù)作為解決方案,這將使得問題的規(guī)模變的很龐大如當(dāng)搜索深度為3 時(shí),每走一步電腦在將最壞的情況下需要搜索的點(diǎn)將達(dá)225*225*225=個(gè)。即使 采用的剪枝技術(shù),其某些點(diǎn)的響應(yīng)的時(shí)間也是讓人無(wú)法忍受的,如開局時(shí),因?yàn)?這個(gè)時(shí)候每個(gè)點(diǎn)都是空的,沒有可以剪枝的點(diǎn),必須遍歷真?zhèn)€盤面,所

12、以很耗時(shí) 間,大約需要30多秒的時(shí)間,這個(gè)顯然是不可接受的。為了程序設(shè)計(jì)和玩家的 忍受時(shí)間的需要。不得不減小深度,所以絕大部分都釆用深度為2的檢索,很明 顯深度越低系統(tǒng)的智力也相對(duì)的降低,需要代價(jià)的。本程序的一個(gè)主要特點(diǎn)是,采用了高效的優(yōu)化方法,使得在相同的搜索規(guī)模 中所花費(fèi)的訃算時(shí)間大幅度的減小。響應(yīng)時(shí)間明顯得到提高。即使搜索深度達(dá)到 4的時(shí)候,其響應(yīng)時(shí)間在絕大部分的悄況下還是可以接受的。程序總體設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)的一條基本原理就是程序應(yīng)該模塊化,也就是一個(gè)大程序應(yīng)該由許 多規(guī)模適中的模塊按合理的層次結(jié)構(gòu)組織而成??傮w設(shè)訃階段的笫二項(xiàng)主要任務(wù) 就是設(shè)訃軟件的結(jié)構(gòu),也就是確定程序山哪些模塊組成以及模

13、塊間的關(guān)系。通常 用層次圖或結(jié)構(gòu)圖描繪軟件的結(jié)構(gòu)。1、系統(tǒng)模型7百度文庫(kù)讓每個(gè)人平等地捉升口我2、結(jié)構(gòu)圖17游戲有效游戲狀態(tài)標(biāo)簽不顯示清空picturebox 1的內(nèi)容調(diào)用繪圖函數(shù)繪制肖前電腦先走桌面初始化五. 代碼分析這個(gè)階段的任務(wù)還不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。這種規(guī) 格說(shuō)明的作用很類似于其他丄程領(lǐng)域中丄程師經(jīng)常使用的丄程藍(lán)圖,它們應(yīng)該包 含必要的細(xì)節(jié),程序員可以根據(jù)它們寫出實(shí)際的程序代碼。下面對(duì)該次設(shè)計(jì)中的主要代碼進(jìn)行做個(gè)分析:初始化賦值系統(tǒng)Sub initplayenvironment() =AmusicV0theplayflag = True=False0yuandia

14、n(130, 130)的位置Dim i, j, m, n As IntegerFor i = 0 To 9For j = 0 To 9table(ij) = 0NextNextFor i = 0 To 191pflag(i) = Truecflag(i) = Tnie獲勝標(biāo)志初始化山于我們?cè)O(shè)定電腦先手,并下了Nexttable(4, 4) = 14, 4位所以將其值設(shè)為1初始化獲勝組合n = 0For i = 0 To 9For j = 0 To 5For m = 0 To 4pwin(j + m, i, n) = Truecwin(j + m, i, n) = TnieNextn = n +

15、 1NextNextFor i = 0 To 9For j = 0 To 5For m = 0 To 4pwin(i, j + m, n) = Truecwin(ij + m, n) = TiueNextn = n + 1NextNextFor i = 0 To 5For j = 0 To 5For m = 0 To 4pwin(j + m, i + m, n) = Truecwin(j + m, i + m, n) = TrueNextn = n + 1NextNext重新設(shè)定玩家的獲勝標(biāo)志山于電腦已下了 4, 4位所以我們需要重新設(shè)定玩家的獲勝標(biāo)志For i = 0 To 5For j =

16、 9 To 4 Step -1For m = 0 To 4pwin(j - m, i + m、n) = Truecwin(j m, i + m, n) = TrueNextn = n + 1NextNextFor i = 0 To 191If pwin(4, 4, i) = True Thenpflag(i) = FalseEnd IfNextEnd Sub處理鼠標(biāo)事件1、模塊名稱:themousedown2、描述:此函數(shù)主要實(shí)行以下功能:(1) 判定當(dāng)前游戲標(biāo)志是否有效。(2) 將實(shí)際坐標(biāo)轉(zhuǎn)化成虛擬坐標(biāo)。(3) 繪制玩家的棋子。(4) 執(zhí)行檢查獲勝函數(shù)。(5) 執(zhí)行電腦算法函數(shù)。Sub th

17、einousedown(ByVal x As Integer, By Vai y As Integer)If theplayflag = False ThenExit SubEnd If檢查游戲狀態(tài)是否有效Dim i, j As IntegerDim zhx, zhy As Integerzhx = Int(x - 10) / 30)zhy = Int(y - 10)/ 30)For i = 0 To 9For j = 0 To 9If table(zhx, zhy) ; 0 ThenExit SubEnd IfNextNext檢查當(dāng)前鼠標(biāo)點(diǎn)擊的格子是否有效Dim mycolor As Col

18、orDim g Asg =mycolor =Dini brush 1 As = New SolidBrush(mycoIor)(brush 1, zhx * 30 + 10, zhy * 30 + 10, 30, 30)繪制玩家的棋子table(zhx, zhy) = 2For i = 0 To 191If cwin(zhx, zhy, i) = True Then cflag(i) = FalseEnd If重設(shè)電腦的獲勝標(biāo)志檢查當(dāng)前玩家是否獲勝Nextcheckwin()diannao()調(diào)用電腦算法End Sub獲勝檢査算法1、模塊名稱:checkwin2、描述:此模塊執(zhí)行以下功能:(1

19、)檢查是否和棋。(2)檢查電腦是否獲勝。(3)檢查玩家是否獲勝。Sub checkwin()Dim i, j, k, m, n As IntegerDim ca As IntegerDim pa As IntegerDim cnormal As Integer = 0For i = 0 To 191If cflag(i) = False Thencnormal = cnormal + IEnd IfNextIf cnormal = 190 Then=True二”和棋,請(qǐng)重新開始!“0theplayflag = FalseExit Sub設(shè)定和棋規(guī)則End IfFor i = 0 To 191I

20、f cflag(i) = True Thenca = 0For j = 0 To 9For k = 0 To 9If table(j, k) = 1 ThenIf cwin(j, k, i) = True Thenca = ca + 1End IfEnd IfNextNextIf ca = 5 Then=True二“電腦獲勝,請(qǐng)重新開始”0theplayflag = FalseExit SubEnd IfEnd IfNext檢查電腦是否獲勝For i = 0 To 191If pflag(i) = True Thenpa = 0For j = 0 To 9For k = 0 To 9If ta

21、ble(j, k) = 2 ThenIf pwin(j, k, i) = True Thenpa = pa + 1End IfEnd IfNextNextIf pa = 5 Then=True二”玩家獲勝,請(qǐng)重新開始“0theplayflag = FalseExit SubEn End IfNext檢查玩家是否獲勝End Sub電腦算法1、模塊名稱:diannao2描述:此程序主要執(zhí)行以下功能:(1)初始化賦值系統(tǒng)。(2)賦值加強(qiáng)算法。(3)th算電腦和玩家的最佳攻擊位。(4)比較電腦和玩家的最佳攻擊位并決定電腦的最佳策略。(5)執(zhí)行檢查獲勝函數(shù)。Sub diannao()Dim i, j,

22、k, m, n As IntegerDim de As IntegerDim cab As IntegerDim pab As IntegerFor i = 0 To 9For j = 0 To 9pscore(ij) = 0cscore(i J) = 0NextNext初始化賦值數(shù)組For i = 0 To 191If cflag(i) = True Thencab = 0For j = 0 To 9For k = 0 To 9百度文庫(kù)讓每個(gè)人平等地捉升口我If table(j, k) = 1 ThenIf cwin(j, k, i) = True Thencab = cab + 1End

23、IfNextNextSelect Case cabCase 3For m = 0 To 9For n = 0 To 9If table(m, n) = 0 ThenIf cwin(m, n, i) = True Then cscore(m, n) = cscore(m, n) + 5End IfEnd IfNextNextCase 4For m = 0 To 9For n = 0 To 9If table(m, n) = 0 ThenIf cwin(m, n, i) = True Thenyuandian(m * 30 + 10, n * 30 + 10) table(m, n) = 1For

24、 de = 0 To 191If pwin(m, n, de) = True Thenpflag(dc) = Falsecheckwin()Exit SubNextEnd IfEnd IfNextNextEnd SelectEnd IfNextFor i = 0 To 191If pflag(i) = Tnje Thenpab = 0For j = 0 To 9For k = 0 To 9If table。,k) = 2 ThenIf pwin(j, k,i) = True Thenpab = pab + 1End IfEnd IfNextNextSelect Case pabCase 3Fo

25、r m = 0 To 9For n = 0 To 9If table(m, n) = 0 ThenIf pwin(m, n,i) = True Thenpscore(m, n) = pscore(m, n) + 30End IfEnd IfNext21百度文庫(kù)讓每個(gè)人平等地捉升口我NextCase 4For m = 0 To 9For n = 0 To 9If table(m, n) = 0 ThenIf pwin(m, n, i) = True Then yuandian(m * 30 + 10, n * 30 + 10) table(m, n) = 1For de = 0 To 191If

26、 pwin(m, n, de) = Tnie Thenpflag(dc) = Falsecheckwin()Exit SubEnd IfNextEnd IfEnd IfNextNextEnd SelectEnd IfNextEnd If231、賦值系統(tǒng)For i = 0 To 191If cflag(i) = True ThenFor j = 0 To 9If table。, k) = 0 ThenIf cwin(j, k, i) = True ThenFor m = 0 To 9For n = 0 To 9If table(m, n) = 1 ThenIf cwin(m, n, i) = T

27、rue Thencscore(j, k) = cscore(j, k) + 1End IfEnd IfNextNextEnd IfEnd IfNextNextEnd IfNextFor i = 0 To 191If pflag(i) = True ThenFor j = 0 To 9For k = 0 To 9If table(j, k) = 0 ThenIf pwin(j, k, i) = True ThenFor m = 0 To 9For n = 0 To 9If table(m, n) = 2 ThenIf pwin(m, n, i) = True Thenpscore(j, k) = pscore(j, k) + 1End If百度文郵-讓每個(gè)人平零地捉升口我NextNextEnd IfEnd IfNextNextEnd IfNext2、分值比較算法Dim a, b,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論