本科畢業(yè)論文:基于C#的五子棋畢業(yè)論文_第1頁(yè)
本科畢業(yè)論文:基于C#的五子棋畢業(yè)論文_第2頁(yè)
本科畢業(yè)論文:基于C#的五子棋畢業(yè)論文_第3頁(yè)
本科畢業(yè)論文:基于C#的五子棋畢業(yè)論文_第4頁(yè)
本科畢業(yè)論文:基于C#的五子棋畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本科畢業(yè)論文:基于c#的五子棋畢業(yè)論文 畢業(yè)設(shè)計(jì)(論文)題 目基于c#的五子棋游戲的設(shè)計(jì)與開發(fā) 系 別 軟件與服務(wù)外包學(xué)院專 業(yè) 軟件技術(shù)(游戲設(shè)計(jì)) 班 級(jí) * 學(xué)生姓名*學(xué) 號(hào) * 指導(dǎo)教師 * 2012年 4月基于c#的五子棋游戲的設(shè)計(jì)與開發(fā)摘要:隨著人們的生活節(jié)奏的變快,游戲已經(jīng)成為人們生活中不可缺少的一部分,它不僅能使人娛樂,放松人們的心情,也能夠開發(fā)人的智力。所以說休閑游戲的開發(fā)將會(huì)是大勢(shì)所趨,本文主要是通過對(duì)五子棋游戲的開發(fā)來提高自己的編程能力。 五子棋游戲是一種簡(jiǎn)單大眾的游戲,自從計(jì)算機(jī)實(shí)現(xiàn)以來,深受廣大電腦玩家的喜愛,現(xiàn)在流行的五子棋游戲軟件大多缺乏美觀的界面,和容易的操作方

2、法,電腦的ai值也不是很高。本文通過c#語言在計(jì)算機(jī)圖形方面的編程,設(shè)計(jì)了五子棋游戲軟件,使該軟件具有美觀友好的截面,在人機(jī)對(duì)弈時(shí),使電腦具有較高的智商。本游戲是以c#語言作為開發(fā)工具,采用搜索算法設(shè)計(jì)最優(yōu)落子點(diǎn)開發(fā)的游戲軟件。本文詳細(xì)地介紹了五子棋游戲軟件設(shè)計(jì)的全過程,描述了該軟件的功能,以及和其它五子棋程序的一些比較。 關(guān)鍵詞:五子棋、c#語言、軟件based on the c # gobang development and designabstract:with the faster pace of life, the game has become an indispensable

3、part of life, which not only makes fun, relax the mood, but also to the development of human intelligence. so the development of casual games will be the trend, this paper is on the development of gobang to improve their programming skills. gobang game is a simple and popular game, since the compute

4、r to achieve, by the love of computer players, but now most popular game soft gobang lack aesthetic interface, and easy method of operation, the value of the computer ai is not high. the adoption of the c# programming language in computer graphics, designed gobang game software to enable the softwar

5、e with a beautiful and friendly interface in both game, the computer has a higher iq. the game is based on c# language, using searching algorrithm to design best gobang. the detailed presentation of the whole process of gobang game software design, describes the software functions and procedures and

6、 other gobang other gobang some more. key words:gobang、c# language、software目錄前言1第一章 需求分析2 1.1本課題研究的意義2 1.2五子棋發(fā)展史2 1.3五子棋特點(diǎn)及規(guī)則2 1.4五子棋常用術(shù)語3 1.5五子棋攻防4 1.6開發(fā)工具選擇5 1.7 c#編程語言的介紹6 1.8 c#編程語言的特點(diǎn)6 1.9 visual studio 軟件簡(jiǎn)介7 1.9.1簡(jiǎn)介7 1.9.2 visual studio 2005的特點(diǎn)7第二章 系統(tǒng)分析9 2.1系統(tǒng)調(diào)研及可行性分析9 2.1.1 系統(tǒng)調(diào)研9 2.1.2 可行性分析9

7、 2.1.3 技術(shù)可行性分析10 2.2設(shè)計(jì)分析10 2.2.1游戲運(yùn)行說明11 2.2.2游戲規(guī)則11 2.2.3游戲操作12 2.3游戲玩法13 2.4主要模塊分析14 2.4.1下棋類的實(shí)現(xiàn)14 2.4.2游戲輸贏判斷類16 2.4.3悔棋類的實(shí)現(xiàn)18第三章 運(yùn)行測(cè)試20第四章 總結(jié)部分22致謝22參考文獻(xiàn)24 前言 五子棋是人們喜歡的一種棋類游戲,近來,隨著計(jì)算機(jī)的快速發(fā)展,以計(jì)算機(jī)作為對(duì)戰(zhàn)平臺(tái),各種棋類游戲如雨后春筍般紛紛冒出,使得那些喜愛下棋,有常??嘤跊]有對(duì)手的棋迷們能隨時(shí)過足棋癮,而且這類軟件個(gè)個(gè)水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過國(guó)際象棋世界冠軍?卡斯帕羅夫的“深藍(lán)”

8、便是最具說服力的代表。 當(dāng)我們與電腦對(duì)戰(zhàn)對(duì)時(shí),您知道這些軟件是怎樣像人腦一樣進(jìn)行思考的嗎?總的來說(我們假定您熟悉五子棋的基本規(guī)則),要讓電腦知道該在哪一點(diǎn)下子,就要根據(jù)盤面的形式,為每一可能落子點(diǎn)計(jì)算其重要程度,也就是當(dāng)這子落下后會(huì)形成什么模型,然后通覽全盤選出最重要的一點(diǎn),這便是最基本的算法。當(dāng)然,僅靠當(dāng)前盤面進(jìn)行判斷是遠(yuǎn)遠(yuǎn)不夠的,這樣下棋很容易掉進(jìn)玩家設(shè)下的陷阱,因?yàn)樗鼪]有考慮以后的變化。所以在此基礎(chǔ)上我們需要使用好的算法是電腦能預(yù)測(cè)出今后幾步的各種走法,以便做出最佳選擇,這也是我們下棋時(shí)常說的“想了幾步”。怎樣才能達(dá)到這個(gè)程度呢?這是本文所要討論的主要問題。作為一個(gè)五子棋游戲愛好者,在

9、使用了眾多的五子棋游戲軟件后,發(fā)現(xiàn)當(dāng)今大多數(shù)五子棋游戲軟件中電腦的ai值不是很高,難與人腦抗衡,這是基于以上的最基本算法擴(kuò)展而出的電腦最優(yōu)落子算法不夠優(yōu)秀而造成的。本人使用c#語言作為開發(fā)工具,在吸收別人所編的五子棋游戲軟件的基礎(chǔ)上,再融入自己的創(chuàng)新思想(最優(yōu)落子算法的改進(jìn)),編寫了這個(gè)五子棋游戲,軟件實(shí)現(xiàn)了人機(jī)對(duì)弈和雙人對(duì)弈的功能,游戲軟件界面美觀,操作容易,電腦的ai值也較高。第一章 需求分析1.1本課題研究的意義 越來越多的具有智能的機(jī)器進(jìn)入了人類的生活,人工智能的重要性如今顯而易見。自己對(duì)人工智能比較感興趣,而五子棋游戲程序的開發(fā)實(shí)現(xiàn)了這個(gè)課題,正好提供給我這樣一個(gè)研究的機(jī)會(huì),通過對(duì)人

10、工智能中博弈方面的研究(人機(jī)對(duì)弈),讓我在簡(jiǎn)單的人機(jī)對(duì)弈全局設(shè)計(jì),以及具體到相關(guān)算法上有了深入的了解。人工智能大致可以分成幾個(gè)任務(wù),這時(shí),這些學(xué)科之間的差別就變的很模糊。人工智能在機(jī)器人學(xué)、模式識(shí)別、物景分析、數(shù)據(jù)庫(kù)的智能檢索、機(jī)器下棋(實(shí)際上是博弈論問題)和家用電氣智能化等領(lǐng)域都有廣泛的應(yīng)用。而這個(gè)課題就是和人工智能中博弈論領(lǐng)域緊密相關(guān)的。 想要編寫五子棋,首先要了解五子棋的發(fā)展史,和規(guī)則,這樣才能在理解的基礎(chǔ)上更好的編寫出更優(yōu)秀的五子棋代碼。1.2五子棋發(fā)展史 五子棋是起源于中國(guó)古代的傳統(tǒng)黑白棋種之一?,F(xiàn)代五子棋日文稱之為“連珠”,英譯為“renju”,英文稱之為“gobang”或“fir

11、”five in a row的縮寫,亦有“連五子”、“五子連”、“串珠”、“五目”、“五目碰”、“五格”等多種稱謂。 五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問“陰陽易理”;它既有簡(jiǎn)單易學(xué)的特性,為人民群眾所喜聞樂見,又有深?yuàn)W的技巧和高水平的國(guó)際性比賽;它的棋文化源淵流長(zhǎng),具有東方的神秘和西方的直觀;既有“場(chǎng)”的概念,亦有“點(diǎn)”的連接。它是中西文化的交流點(diǎn),是古今哲理的結(jié)晶。 對(duì)于五子棋與圍棋的關(guān)系有兩種說法,一說早于圍棋,早在“堯造圍棋”之前,民間就已有五子棋游戲;一說源于圍棋,是圍棋發(fā)展的一個(gè)分支。在

12、中國(guó)的文化里,倍受人們的青睞。古代的五子棋的棋具與圍棋相同,縱橫各十七道。五子棋大約隨圍棋一起在我國(guó)南北朝時(shí)先后傳入朝鮮、日本等地。1.3五子棋特點(diǎn)及規(guī)則 五子棋的娛樂性強(qiáng)、規(guī)則簡(jiǎn)單、易學(xué)、流行性廣,普通人不需長(zhǎng)時(shí)間專門訓(xùn)練即可自如行棋,因此極受大眾喜歡。 五子棋規(guī)則為: 第一:五子棋行棋時(shí),黑棋先下第一子,由天元開始,后白棋在黑棋周圍的交叉點(diǎn)的落子。接著黑方再以天元中心的25個(gè)交叉點(diǎn)的范圍內(nèi)落盤面的第三子,之后黑白雙方相互順序子。 第二:最先在棋盤線交點(diǎn)橫向,縱向,斜向形成已方的五個(gè)棋子連續(xù)的一方為勝。 第三:出現(xiàn)禁手對(duì)方指出后將判負(fù),其中包括兩個(gè)或兩個(gè)以上的活三,活四,長(zhǎng)連均稱之為禁手。

13、第四:禁手只對(duì)黑棋有效,白棋無禁手。 第五:黑方禁手形成時(shí),白方需立即指出,黑方將被判負(fù)。若白方未發(fā)現(xiàn)黑方禁手存在而繼續(xù)應(yīng)子,其后指出黑方禁手不能判黑方負(fù)。 第六:黑方連五與禁手同時(shí)形成,因黑方已連成五即黑方已獲勝,故禁手規(guī)則失效。 第七:在對(duì)局中,在盤上落下的子又拿起來,此動(dòng)作稱為拔子,若拔子將被判為負(fù)。 第八:在對(duì)局中棋子掉落在棋盤上將被判負(fù)。若推子或蹭子,以盤面第一落點(diǎn)為準(zhǔn)。用手將棋子推正不算違犯規(guī)則。 第九:在對(duì)局中,一方自行中止比賽如:中途退場(chǎng),將被判負(fù)。 第十:在對(duì)局中對(duì)方宣布認(rèn)輸,本局獲勝。 第十一:超過比賽規(guī)定所用時(shí)間限制,將被判為負(fù):正式比賽期間,遲到時(shí)間超過比賽容許時(shí)間將被

14、判負(fù)。 第十二:如下至最終一子仍不分勝負(fù)則定為平局。 第十三:中盤期間雙方 同意和局提議,判定為平局。1.4五子棋常用術(shù)語二:二是五子棋的一切進(jìn)攻的基礎(chǔ);有分為活二和死二。活二:既再下一子可形成活三的二。死二:既再下一子可形成死三的二。三:三是五子棋最常見的攻擊手段。三分為活三、死三、眠三?;钊?為再下一子既可變成活四的三?;蛉譃檫B三、跳三。我們通常所說的三就是指活三而言。如果是死三,將特別指出。死三:既對(duì)方有棋子在同一條線相鄰交叉防守的三:死三分為三種。眠三:是死三的一種特性,它看上去相鄰點(diǎn)沒有對(duì)方棋子防守,很橡活三,由于受空間限制,不論如何發(fā)展不可能稱為活四,故稱為“眠三”。 反三:反三

15、不是指一種“三”的形狀,而是指再阻止對(duì)方進(jìn)攻的同時(shí)使自己成為一道活三的反攻,稱為反三。? 四:四的形狀有三種,它分為:活四,沖四、跳沖四。沖四;在同一條線上相連的相同的四個(gè)棋子,它與活四不同的是,其中的一端有對(duì)方的棋子進(jìn)行阻擋,它只有再在另一端下一手棋才可以形成“連五”。 跳沖四“它的形狀在“四”中是比較特殊的,一般分為兩種,它的特點(diǎn)是同一條線上的同色的四個(gè)棋子,有一個(gè)或兩個(gè)棋子與另外三個(gè)或兩個(gè)棋子之間有一個(gè)交叉點(diǎn)的間隔,它的下一手棋只有下在間隔的交叉點(diǎn)上才能形象哼“連五。因此,對(duì)方的棋子防守時(shí),也只能阻擋在間隔的交叉點(diǎn)上。 一子雙殺:指用同一手棋同時(shí)形成兩個(gè)勝點(diǎn)的方法。 追下取勝:是指白棋逼

16、迫黑棋形成禁手而取勝的方法。 自由獲勝:除了追下取勝以外的獲勝方法,稱之為自由獲勝。 禁手(forbidden):指黑方一子落下同時(shí)形成兩個(gè)以上的活三、沖四或形成長(zhǎng)連的棋形,是對(duì)局中對(duì)黑棋禁手使用的戰(zhàn)術(shù)或被判為負(fù)的行棋手段,白棋無禁手,如果黑子在落子的關(guān)鍵的第五子既形成五連的同時(shí),有形成禁手。此時(shí),因黑方已成連五,故禁手失效,黑方勝利。之所以這么規(guī)定也是為了規(guī)范比賽,其實(shí)我們業(yè)余的棋手,黑白棋子誰先下都不限制,只是先落子會(huì)有比較大的優(yōu)勢(shì),另一方始終處于防守的被動(dòng)狀態(tài)。所以哪一方先下子,他就有禁手,這是為了保持公平的一種手段。但是職業(yè)連珠五子棋雖然對(duì)黑棋采取了種限制但是先行的一方優(yōu)勢(shì)依然很大,在

17、高段位的比賽中還添加了一些規(guī)定,由于很少用到,就不必?cái)⑹隽恕?.5五子棋攻防 五子棋是一項(xiàng)對(duì)抗性很強(qiáng)的運(yùn)動(dòng),在開局進(jìn)入五手兩打后,就開始進(jìn)入了白刃戰(zhàn),互相爭(zhēng)奪先手,任何一方都不能掉以輕心,要盡量可能少犯錯(cuò)誤,甚至不犯錯(cuò)誤,否則將會(huì)導(dǎo)致速敗。眾所周知,連珠五子,連五為勝,有四才能有五,有三才能有四,以此類推。所以,在五子棋的對(duì)局中進(jìn)攻和防守都是從二和三開始的?!昂玫拈_始是成功的一半”,這條格言在五子棋里再合適不過了。五子棋的第年秒的選擇十分關(guān)鍵,五子棋實(shí)際上是通過選擇最佳的落點(diǎn),加上正確的落子次序,一步一步地占領(lǐng)各個(gè)要點(diǎn),最終獲得勝利。對(duì)局的早期,選點(diǎn)的著眼點(diǎn)主要是使本方的棋子保持聯(lián)系,為以后創(chuàng)

18、造盡可能多的成三、成四的機(jī)會(huì),同時(shí)盡量限制對(duì)成為好行。由于在五子棋對(duì)弈過程中,通過行棋落點(diǎn)來控制對(duì)方的落點(diǎn)是可能的,比如活三、沖四的應(yīng)點(diǎn)是可以預(yù)知的,完全有可能通過不斷走出這樣的先手來控制對(duì)方的著點(diǎn)直至勝利,所以,在對(duì)局的后期,就要在精確計(jì)算的前提下,盡在發(fā)動(dòng)攻勢(shì),以取得棋局的控制權(quán),否則一旦遺失戰(zhàn)機(jī),被對(duì)方搶先發(fā)動(dòng)攻勢(shì),就會(huì)成為被控制的一方。當(dāng)有多個(gè)攻擊點(diǎn)可供選擇時(shí),要選擇后續(xù)手段多,又不會(huì)被對(duì)方反先的著點(diǎn),如果是黑方,還特別要注意進(jìn)攻終被對(duì)方反擊時(shí)出線的各種禁手點(diǎn)的可能性。進(jìn)攻分為單攻棋和雙攻棋,單攻棋指單線既單向的攻棋子,包括三子攻棋和四子攻棋。而雙攻棋指雙方或雙行的攻棋。包括三、三攻棋

19、;四、三攻棋(沖四活三、沖四填四,沖五活三、填五沖四);四四攻棋(雙沖四、雙填五、填五沖四)。五子棋的取勝思路是由一個(gè)子開始的,目標(biāo)是運(yùn)用各種方法在棋盤上發(fā)展出五連乃至長(zhǎng)連去取勝。在這個(gè)發(fā)展過程中必然要經(jīng)過由一子到兩子,兩子到三子,三子到四子的過程。因此說,把各種形狀和各個(gè)方面上的二三四等子力結(jié)合爛熟于胸,做到舉一反三,是學(xué)習(xí)五子棋的基本功,更是能靈活運(yùn)用五種取勝技巧的基礎(chǔ)。1.6開發(fā)工具選擇 現(xiàn)在,市場(chǎng)上可以選購(gòu)的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。 在目前市場(chǎng)上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點(diǎn)和

20、特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動(dòng)作必需要耗費(fèi)數(shù)倍的工夫來處理,使得原來所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)程續(xù)語言的彈性,卻沒有便利的工具作配合,會(huì)使一些即使非常簡(jiǎn)單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間,而我在這幾種語言中選擇了c#。第一是因?yàn)閏#開發(fā)一些軟件比較方便快捷;第二是因?yàn)閏#剛學(xué)過,印象比較深,而且做這個(gè)游戲,剛好能加深一下印象,還能有個(gè)系統(tǒng)的復(fù)習(xí)。1.7 c#編程語言的介紹 c#讀做“c sharp”,中文譯音暫時(shí)沒有.專業(yè)人士一般讀“c sharp”,

21、現(xiàn)在很多非專業(yè)一般讀“c井”。 c#是一種精確、簡(jiǎn)單、類型安全、面向?qū)ο蟮恼Z言。說到c#,就不得不先簡(jiǎn)單介紹一下.net。到底什么是.net呢,按照微軟總裁兼首席執(zhí)行官steve ballrner把它定義為:.net代表一個(gè)集合,一個(gè)環(huán)境,它可以作為平臺(tái)支持下一代internet的可編程結(jié)構(gòu)。c#是.net的代表語言 c#是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的,由c和c+衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承c和c+強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏和模版,不允許多重繼承)。c#綜合了vb簡(jiǎn)單的可視化操作和c+的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷

22、的面向組件編程的支持成為.net開發(fā)的首選語言。1.8 c#編程語言的特點(diǎn) 第一:完全面向?qū)ο?第二:支持分布式,之所以有c#,是因?yàn)槲④浵嘈欧植际綉?yīng)用程序是未來的趨勢(shì),即處理過程分布在客戶機(jī)和服務(wù)器上。所以c#一出生就注定了能很好解決分布式問題。 第三:跟java類似,c#代碼經(jīng)過編譯后,成為一種il(中間語言)。在運(yùn)行時(shí),再把il編譯為平臺(tái)專用的代碼。 第四:健壯,c#在檢查程序錯(cuò)誤和編譯與運(yùn)行時(shí)錯(cuò)誤一點(diǎn)也不遜于java,c#也用了自動(dòng)管理內(nèi)存機(jī)制。 第五:c#不像java那樣完全摒棄了指針和手動(dòng)內(nèi)存管理。c#默認(rèn)情況下是不能使用指針的,程序員在有必要時(shí)可以打開指針來使用。這樣可以保證編程

23、的靈活性。 第六:安全性:c#的安全性是有.net平臺(tái)提供的。c#代碼編譯后成為一種il語言。是一種受控代碼,.net提供類型安全檢查等機(jī)制保證代碼是安全的。 第七:可移植性:由于c#使用類似java的中間語言機(jī)制。使得c#也跟java類似,可以很方便的移植到其他系統(tǒng)。在運(yùn)行時(shí),再把中間代碼編譯為適合特定機(jī)器的代碼。 第八:解釋性:c#也是一種特殊的解釋性語言。 第九:高性能:c#把代碼編譯成中間語言后,可以高效的執(zhí)行程序。 第十:多線程:與java類似,可以有一個(gè)主進(jìn)程分出多個(gè)執(zhí)行小任務(wù)的多線程。 第十一:組建模式:c#很適合組件開發(fā)。各個(gè)組件可以由其他語言實(shí)現(xiàn)的,然后集成在.net中。 c

24、#是在java流行起來后所誕生的一種新的語言。由于微軟在操作系統(tǒng)上占有很大的優(yōu)勢(shì)。在以往的開發(fā)中積累了不少經(jīng)驗(yàn),所形成的.net平臺(tái),所以c#在windows方面可以說比java具有更大的優(yōu)勢(shì)。如果單純從技術(shù)上來講,c#在網(wǎng)絡(luò)編程上可以與java匹敵。c#還在windows forms也有一定的優(yōu)勢(shì)。 c#是一種非常類似于c+的語言,風(fēng)格是更接近與java,不管是c+程序員還是java程序員,都可以很方便轉(zhuǎn)到c#上來。 c#目前主要是應(yīng)用在網(wǎng)絡(luò)編程上,其他領(lǐng)域比如數(shù)據(jù)庫(kù),窗體編程,都在逐漸增大。1.9 visual studio 軟件簡(jiǎn)介1.9.1簡(jiǎn)介 visual studio是目前最流行的

25、windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境。目前已經(jīng)開發(fā)到 11.0 版本,也就是visual studio 2012。1.9.2 visual studio 2005的特點(diǎn) visual studio是微軟公司推出的開發(fā)環(huán)境,visual studio可以用來創(chuàng)建windows平臺(tái)下的windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、只能設(shè)備應(yīng)用程序和office插件。 microsoft visual studio 2005是面向windows vista、windows 7、office 2007、web 2.0的下一代開發(fā)工具代號(hào)“orcas”,是對(duì)visual studio 20

26、05一次及時(shí)、全面的升級(jí)。vs2008引入了250多個(gè)新特性,整合了對(duì)象、關(guān)系數(shù)據(jù)庫(kù)、xml的訪問方式語言更加簡(jiǎn)潔。 使用visual studio 2005可以高效開發(fā)windows應(yīng)用。設(shè)計(jì)器重可以實(shí)時(shí)反映變更xaml中只能感知功能可以提高開發(fā)效率。同時(shí)visual studio 2005支持項(xiàng)目模板、調(diào)試器和部署程序。visual studio 2005可以高效開發(fā)web應(yīng)用,集成了asp.net ajax1.0,包含asp.net ajax項(xiàng)目模板,它還可以高效開發(fā)office應(yīng)用和mobile應(yīng)用。 圖1-1 visual studio 2005軟件界面 第二章 系統(tǒng)分析2.1系統(tǒng)調(diào)

27、研及可行性分析2.1.1 系統(tǒng)調(diào)研 正式開發(fā)五子棋游戲之前進(jìn)行調(diào)研是非常必要的,其必要性主要表現(xiàn)在以下幾個(gè)方面。 (1)明確用戶的要求,以根據(jù)調(diào)查結(jié)果進(jìn)行可行性分析,確認(rèn)系統(tǒng)的開發(fā)是否可行。 (2)提出新系統(tǒng)的人員并不都是系統(tǒng)研究人員,有些人對(duì)于其功能和處理數(shù)據(jù)的方法沒有明確的認(rèn)識(shí)。它們只是根據(jù)自己業(yè)務(wù)工作的需要提出了要求,系統(tǒng)開發(fā)人員要對(duì)此進(jìn)行詳細(xì)的調(diào)查和分析,確認(rèn)用戶的要求可以通過現(xiàn)有的計(jì)算機(jī)技術(shù)實(shí)現(xiàn),保證開發(fā)的管理信息系統(tǒng)的功能與用戶提出的要求相吻合??傊?必要對(duì)現(xiàn)行系統(tǒng)進(jìn)行詳細(xì)的調(diào)查,明確用戶需求,保證開發(fā)的新系統(tǒng)的功能與用戶的要求相吻合,避免耗費(fèi)大量的人力、物力、財(cái)力,新系統(tǒng)的開發(fā)卻

28、失敗的悲劇發(fā)生。2.1.2 可行性分析 可行性分析是在用戶的要求和系統(tǒng)調(diào)研的基礎(chǔ)上進(jìn)行的,對(duì)新系統(tǒng)的開發(fā)從社會(huì)、技術(shù)、經(jīng)濟(jì)、管理等方面進(jìn)行分析,并得出新系統(tǒng)的開發(fā)工作可行、不可行、需要修改、追加投資、暫緩開發(fā)、分步實(shí)施等方案和結(jié)論,最后完成可行性分析。 可行性分析一般可定義為:可行性分析是在建設(shè)的前期對(duì)工程項(xiàng)目的一種考察和鑒定,對(duì)擬議中的項(xiàng)目進(jìn)行全面與綜合的技術(shù)、經(jīng)濟(jì)能力的調(diào)查,判斷它是否可行。 可行性分析階段的主要工作包括以下幾個(gè)方面: 新系統(tǒng)目標(biāo)可行性分析: 分析新系統(tǒng)的目標(biāo)是否符合企業(yè)的現(xiàn)狀和發(fā)展的需要。 社會(huì)可行性分析: 社會(huì)可行性分析主要是指管理信息系統(tǒng)的開發(fā)是否符合國(guó)家法律政策,是

29、否能夠與社會(huì)大系統(tǒng)實(shí)現(xiàn)良好的對(duì)接。 技術(shù)可行性分析: 技術(shù)可行性分析是根據(jù)新系統(tǒng)的目標(biāo)來衡量是否具備所需要的技術(shù),包括系統(tǒng)開發(fā)人員數(shù)量和水平,硬件方面,軟件方面及其它應(yīng)用技術(shù)。 經(jīng)濟(jì)可行性分析 經(jīng)濟(jì)可行性分析主要是對(duì)開發(fā)新系統(tǒng)所投入的資金與系統(tǒng)投入使用后所帶來的經(jīng)濟(jì)效益進(jìn)行比較,確認(rèn)新系統(tǒng)是否會(huì)給企業(yè)帶來一定的經(jīng)濟(jì)效益。 管理可行性分析: 管理可行性分析主要是分析企業(yè)現(xiàn)行的管理體制和企業(yè)領(lǐng)導(dǎo)是否具有現(xiàn)代化的管理意識(shí)和管理水平。2.1.3 技術(shù)可行性分析 技術(shù)可行性分析主要包括四個(gè)方面:目前有關(guān)的技術(shù)能否支持所開發(fā)的新系統(tǒng);新系統(tǒng)開發(fā)人員的數(shù)量和水平,即人力資源;硬件和軟件資源。 (1)技術(shù)支持

30、: 首先根據(jù)新系統(tǒng)的目標(biāo),考慮目前有關(guān)的技術(shù)能否支持所開發(fā)的新系統(tǒng)。這里討論的技術(shù)必須是已經(jīng)普遍使用的,而不是待研究的或正在研究的。 對(duì)于本系統(tǒng), 本人是采用c#編寫的。而在開發(fā)五子棋的過程運(yùn)用到了,圖形的繪制(主要是對(duì)棋子的繪制,棋盤的繪制的)。還有c#種對(duì)聲音的播放方式(主要是用于下棋的時(shí)候的落子聲音,悔棋時(shí)的聲音,贏棋時(shí)的聲音,輸棋的聲音)。文件的保存和載入(主要用于對(duì)棋盤信息的儲(chǔ)存和打開)。 (2)硬件資源: 開發(fā)管理信息系統(tǒng)所需的硬件資源包含以下兩個(gè)方面: 系統(tǒng)開發(fā)人員在管理信息系統(tǒng)的開發(fā)過程中所需要的計(jì)算機(jī)設(shè)備及其有關(guān)的外部設(shè)備;管理信息系統(tǒng)開發(fā)成功投入使用后,使用單位所應(yīng)具備的計(jì)

31、算機(jī)設(shè)備及其有關(guān)的外圍設(shè)備。對(duì)硬件資源進(jìn)行可行性分析時(shí)主要考慮計(jì)算機(jī)的主機(jī)內(nèi)存、類型、功能、聯(lián)網(wǎng)能力、安全保護(hù)措施以及輸入/輸出設(shè)備,外存儲(chǔ)器和聯(lián)網(wǎng)數(shù)據(jù)通信設(shè)備的配置、功能、效率等指標(biāo)是否符合系統(tǒng)方案設(shè)計(jì)要求,同時(shí)還要考慮計(jì)算機(jī)的性能/價(jià)格比。本系統(tǒng)對(duì)計(jì)算機(jī)的要求不高,一般的硬件配置都能運(yùn)行此系統(tǒng)。2.2設(shè)計(jì)分析2.2.1游戲運(yùn)行說明 想要運(yùn)行游戲,可以用visual studio 2005 打開軟件,然后按f5鍵運(yùn)行。也可以打開五子棋文-fivestone-bin-debug-fivestone.exe運(yùn)行。2.2.2游戲規(guī)則圖2-2 主界面 如圖為游戲的主界面,左邊的方格為棋盤,游戲的規(guī)則

32、是在棋盤上下棋,只要由一方先在棋盤中有五個(gè)子連線,那么該方就為贏家。 圖2-3 幫助界面 詳細(xì)規(guī)則可點(diǎn)擊圖2-3中的規(guī)則查看詳細(xì)規(guī)則,點(diǎn)擊后會(huì)出現(xiàn)如圖2-4所示: 圖2-4 五子棋規(guī)則2.2.3游戲操作 (1)游戲開始 想開始游戲,可以直接點(diǎn)擊棋盤開始下棋。默認(rèn)是玩家先行。 如圖5-4也可以在在菜單欄中的設(shè)置里面選擇電腦先行。 圖2-5 設(shè)置界面 (2)游戲難度 如圖2-6,在級(jí)別中也可以設(shè)置電腦的強(qiáng)度,然后,則可以供不同程度的人來玩。這樣不僅能鍛煉玩家的游戲水平,也可以增加很多趣味性。 圖2-6 級(jí)別 (3)游戲保存 如果一盤棋沒有完成,然后由于玩家時(shí)間有限,急于去忙其他的事情,則可以,保存

33、該盤棋的進(jìn)度。然后下次運(yùn)行該程序的時(shí)候,再點(diǎn)擊文件,點(diǎn)擊載入然后選擇上次保存的進(jìn)度,則可以繼續(xù)下棋。 圖2-7文件 (4)悔棋 有的時(shí)候,會(huì)不小心點(diǎn)錯(cuò)地方,從而導(dǎo)致下錯(cuò)棋,本系統(tǒng)中還有個(gè)悔棋功能如圖2-8所示,如果在不小心下錯(cuò)棋的時(shí)候則單擊可以悔棋。 當(dāng)然這個(gè)功能還有一個(gè)另外的用法,單擊后退以后,再單擊前進(jìn),然后,你之前所下的棋子,會(huì)一步步出現(xiàn),這樣就可以欣賞剛才自己下棋的風(fēng)采了。 圖2-8 悔棋界面2.3游戲玩法 游戲的玩法,在操作里面已經(jīng)差不多介紹完畢,當(dāng)然,本系統(tǒng)還有個(gè)比較趣味的設(shè)置就是在級(jí)別里面的棋子兌換功能,如圖2-8所示,這樣在你即將輸?shù)舯荣惖臅r(shí)候,可以點(diǎn)擊棋子兌換,然后,就可以很

34、輕松的獲勝了。當(dāng)然這僅供娛樂,不建議使用。 圖2-9 棋子兌換 在幫助里面還有一個(gè)關(guān)于點(diǎn)擊后則會(huì)關(guān)于,沒有什么別的用途,只是介紹了一下自己的信息,如圖2-10所示 圖2-10 本人信息 2.4主要模塊分析 在本游戲中,最難實(shí)現(xiàn)的也是最主要的模塊就是在棋盤上繪制棋子的實(shí)現(xiàn)、棋子輸贏的判斷實(shí)現(xiàn)、悔棋類的實(shí)現(xiàn)。2.4.1下棋類的實(shí)現(xiàn) 下棋類的實(shí)現(xiàn)主要是通過,g.drawimageimage,x,y方法。image是圖片的名稱,然后x,y是要在棋盤繪制棋子的位置。 而首先,是要把圖片加載到resources.resx如圖2-11所示 圖2-11 資源 然后通過global:/.ources.然后加載r

35、esources.resx里面的圖片就可以了。string, qipan new string24, 24;/定義二維棋盤 /初始化棋盤 label0: console.clear;for int i 5; i size; i+ for int j 5; j size; j+ qipani, j ; /輸出棋盤 for int i 5; i size; i+ for int j 5; j size; j+ console.writeqipani, j;console.writen; /走棋 label2: /甲方走棋console.writeline;console.writeline請(qǐng)甲方走

36、棋棋盤為15x15;console.writex;x1 console.readline;/判斷輸入的坐標(biāo)值是否為字母foreachchar ch in x1 if ch a&ch z|ch a&ch z console.writeline你輸入的坐標(biāo)值非法!請(qǐng)正確輸入你的坐標(biāo)值; goto label2; /判斷輸入的棋子坐標(biāo)是否為空if x1 | x1 nullconsole.writeline; console.writeline你輸入的棋盤坐標(biāo)為空!; goto label2;console.writey;y1 console.readline;/判斷輸入的坐標(biāo)值是否為字母foreac

37、h char ch in y1 if ch a & ch z | ch a & ch z console.writeline你輸入的坐標(biāo)值非法!請(qǐng)正確輸入你的坐標(biāo)值; goto label2; /判斷輸入的棋子坐標(biāo)是否為空if y1 | y1 null console.writeline; console.writeline你輸入的棋盤坐標(biāo)為空!; goto label2;x int.parsex1;y int.parsey1;if x 16 | y 16 console.writeline; console.writeline你輸入的坐標(biāo)超出了范圍!; goto label2;if qipa

38、nx + 4, y + 4 qipanx + 4, y + 4 ; /清屏 console.clear; for int i 5; i size; i+ for int j 5; j size; j+ console.writeqipani, j; console.writen; else console.writeline; console.writeline此處已經(jīng)有棋子了; goto label2; 2.4.2游戲輸贏判斷類 當(dāng)每走一步棋以后,打電腦會(huì)把你所走的棋的位置計(jì)算出來,然后,計(jì)算,如果其在在上下方向,左右方向,斜方向,有五個(gè)顏色相同的棋子,那么則判斷該顏色的棋子獲勝。/判斷是否

39、可以連成五子/判斷上下 col_down 0; col_up 0; row_left 0; row_right 0; dia_left_down 0; dia_left_up 0; dia_right_down 0; dia_right_up 0;for m 1; m 4; m+ /判斷上下 if qipanx + 4, y + 4 qipanx - m + 4, y + 4 & qipanx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! col_up+; if qipanx + 4, y + 4 qipanx + m + 4, y + 4 & qipa

40、nx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! col_down+; /判斷左右 if qipanx + 4, y + 4 qipanx + 4, y - m + 4 & qipanx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! row_left+; if qipanx + 4, y + 4 qipanx + 4, y + m + 4 & qipanx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! row_right+; /判斷左對(duì)角線 if qipanx + 4, y

41、 + 4 qipanx - m + 4, y - m + 4 & qipanx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! dia_left_up+; if qipanx + 4, y + 4 qipanx + m + 4, y + m + 4 & qipanx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! dia_left_down+; /判斷右對(duì)角線 if qipanx + 4, y + 4 qipanx - m + 4, y + m + 4 & qipanx - m + 4, y + 4 ! & qipan

42、x - m + 4, y + 4 ! dia_right_up+; if qipanx + 4, y + 4 qipanx + m + 4, y - m + 4 & qipanx - m + 4, y + 4 ! & qipanx - m + 4, y + 4 ! dia_right_down+; /判斷甲方是否有構(gòu)成五子if dia_left_down 4 | dia_left_up 4 | col_up 4 | col_down 4 | row_right 4 | row_left 4 | dia_right_up 4 | dia_right_down 4 console.writelin

43、e甲方先構(gòu)成五子連線,恭喜甲獲勝!; console.writeline請(qǐng)選擇:; console.writeline1、 繼續(xù)下一局; console.writeline2、 結(jié)束棋局; judgement /.dline; switch judgement case 1: goto label0;default: goto label3; if col_down + col_up 4 | row_left + row_right 4 | dia_left_down + dia_left_up 4 | dia_right_down + dia_right_up 4 console.writeline甲方先構(gòu)成五子連線,恭喜甲獲勝!; console.writeline請(qǐng)選擇:; console.writeline1、 繼續(xù)下一局; console.writeline2、 結(jié)束棋局; judgement /.dline; switch judgement case 1: goto label0;default: goto lab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論