两个人做人爱视频免费,97久久精品人人搡人妻人人玩,欧洲精品码一区二区三区,999zyz玖玖资源站永久

我要投稿 投訴建議

游戲設計畢業論文

時間:2021-01-15 12:22:39 畢業論文范文 我要投稿

游戲設計畢業論文范文

  撰寫畢業論文是在校大學生最后一次知識的全面檢驗,是對學生基本知識、 基本理論和基本技能掌握與提高程度的一次總測試。對于讀軟件開發的畢業生來說更是如是,以下是一篇關于游戲設計畢業論文范文,希望對同學們寫畢業論文提供到一定的幫助。

游戲設計畢業論文范文

  摘要:隨著IT技術的發展,很多日常生活中的游戲都被搬到了計算機里供大家娛樂,尤其是博弈類的棋類游戲,如中國的象棋,圍棋,五子棋等,今年來人們對人工智能技術的研究成果使得斯算計在這些博弈游戲中能戰勝很多玩家。其次,五子棋作為一個棋類競技運動,在民間十分流行,為了熟悉五子棋規則及技巧,以及研究簡單的人工智能,決定用Java開發五子棋游戲。主要完成人機對戰的功能。在人機對弈中通過深度搜索和估值模塊來提高電腦旗手的智能。分析估值模塊中的影響精準性的幾個要素,以及提出一些提高精準性的辦法,以及對它們搜索的節點數進行比較,在這些算法的基礎山分析一些提高電腦AI方案,如遞歸算法、電腦學習等。算法的研究有助于理解程序結構,增強邏輯思維能力,在其他人工智能方面也有很大的參考作用。

  本文結合五子棋這個游戲的特點,將闡述單機版五子棋算法設計,突出人工智能在博弈方面的應用,旨在試驗人工智能里的一些搜索算法,最終確定人工智能在未來各學科里的重要應用性,人工智能是一門正在速度發展的新興的綜合性很強的邊緣科學,它的中心任務是如何使計算機去做那些過去只能靠人的智力才能做的工作,而選五子棋游戲的開發則是利用計算機來實現它的人工智能,從而培養我們從事軟件開發方面的能力.

  關鍵詞:五子棋 人能智能 電腦AI

  ABSTRACT

  With the development of IT technology,a lot Games in daily life have been moved to the computer for public entertainment,especially the game of chess-type games,the game of Go,gobang,etc,in recent years,artificial intelligence research makes the results that computer can overcome a lot of players in these Games。and then,as a sport,gobang is very popular,in order to become familiar with gobang rules and techniques,and the study of simple artificial intelligence,I decide to use the Java to develope gabang games and complete the functions including man-machine war。During the man-machine players,it improves intelligence of the computer players through depth search and valuation module.Analyzes Module Valuation of the precise elements,as well as number of increased precision,and compares their search for nodeswhich raises some computer learning.Algorithm of procedures contribute to the understanding of the structure,logical thinking ability,In other areas of artificial intelligence has great references.

  In this Paper,with the characteristics of Gobang,I will describe algorithm design on stand-alone version of Gobang,to highlight the application of artificial intelligence in the game,and test some search algorithms of artificial intelligence,and ultimately determine the important application of artificial intelligence in the various disciplines.AI is a new development is the speed highly integrated edge science, its central task is how to account .Computer to do that in the past to rely on human intelligence to do the job, and choose backgammon game development is the use of computers to achieve it .Artificial intelligence, in order to cultivate our ability to engage in software development.

  Keywords:Gobang;Artificial Intelligence;Computer AI

  第一章 引言

  1.1 課題背景

  五子棋是起源于中國古代的傳統黑白棋種之一。現代五子棋日文稱之為連珠,英譯為Renju,英文稱只為Gobang或FIR(Five in a Row 的縮寫),亦有連五子、五子連、串珠、五幕、五目碰等多種稱謂。

  五子棋起源于古代中國,發展在日本,風靡于歐洲。對于它于圍棋的關系有兩種說法,一說早于圍棋,早在“堯造圍棋”之前,民間就已有五子棋游戲;一說源于圍棋,是圍棋發展的一個分支。在中國的文化里,倍受人們的青睞。人世紀初五子棋傳入歐洲并速度風靡全球。通過一系列的變化,使五子棋這一簡單的游戲復雜化、規模化,而最終成為今天的職業連珠五子棋,同時也成為一種國際比賽棋。

  Java語言是當今最為流行的程序設計語言之一,作為一門非常優秀和極為健壯的編程語言,它同時具有的面向對象,與平臺無關,分布式應用,安全,穩定和多線程等優良的特征,使用Java語言不僅可以開發出功能強大的大型應用程序,而且Java語言本身突出的跨平臺的特性也使得它特別適合于Internet上的應用開發,可以這樣說,Java的出現使得所開發的應用程序“一次編寫,處處可用”的實現成為了可能。

  1.2 本課題研究的意義

  近來隨著計算機的快速發展,各種各樣的電腦游戲層出不窮,使得我們能有更多的娛樂項目,而棋類游戲能起到鍛煉人的思維和修身養性的作用,而且棋類游戲水平頗高,大有與人腦分庭抗禮之勢。

  越來越多的具有智能的機器進入了人類的生活,人工智能的重要性如今顯而易見。自己對人工智能比較感興趣,而五子棋游戲程序的開發實現了這個課題,正好提供給我這樣一個研究的機會,通過對人工智能中博弈方面的研究(人機對弈),讓我在簡單的人機對弈全局設計,以及具體到相關算法上有了深入的了解。人工智能大致可以分成幾個任務,這時,這些學科之間的差別就變的很模糊。人工智能在機器人學、模式識別、物景分析、數據庫的智能檢索、機器下棋(實際上是博弈論問題)和家用電氣智能化等領域都有廣泛的應用。而這個課題就是和人工智能中博弈論領域緊密相關的。

  這個題目核心是人工智能和Java編程。并且人工智能中的博弈部分,由于采用了搜索算法,其中很多被利用到各方面。它的概念、方法和技術,正在各行各業廣泛參透。智能已經成為當今各種新產品、新裝備的發展方向。所以,趁著這個機會,對人工智能中比較容易實現的人機博弈進行了解研究學習,也是很實用很有必要的。

  1.3 本課題的研究方法

  在進行游戲設計之前,首先決定的第一個問題,使用什么開發環境來編寫環境》自己雖然熟悉Java語言,但是實際開發項目實驗很少,所以決定用Myeclipse,然后啟動相應的工具,

  其次確定整個程序的結構框架。決定用Java應用程序開發,整個程序的功能實現流程是這樣的:實現基本的棋盤和棋子的類,添加判斷勝負條件,這部分是基礎,也是很重要的,電腦AI也是在這些基礎上添加上來的。這個題目的2個功能包括重要算法,電腦AI和勝負條件,勝負條件算量不大,有固定的模式難點是人工智能,可以這樣說,人工智能的好壞決定了這個題目的完成深度。所以,大部分時間花在AI算法的研究和改進上,對于算法我掌握的不多,研究了一些國內的五子棋算法,參考了一些游戲設計算法,詳細比較各種算法的優缺點,而且參考了現代五子棋比賽的各種規則和技巧,盡量聯系實際。

  第二章 課題相關基礎

  2.1 五子棋棋盤和棋子

  現代五子棋棋盤,經過國際棋聯的.多次修改,最終定位15X15路,既棋盤由橫豎各15條平行線交叉組成,共有225個交叉點;棋盤上共有五個星位,中間的星位稱為天元,周圍四點為小星,與圍棋盤略有不同。見圖2-1

  五子棋和圍棋相同,分黑白2種顏色,通常為散圓形,有一面凸起或二面凸起等形狀,一副棋子總數為225枚,一般的玩家都沒有這個限制。

  2.2規則及解釋

  1:黑棋先下,白棋隨后。從天元開始順序落子。

  2:最先在棋盤的橫向、豎向、斜向形成連續的相同色五個棋子的一方為勝利。

  3:黑棋禁手盼負、白棋無禁手包括“三、三”;“四、四”;“長連”。黑方只能用“四、三”去取勝。

  4:如分不出勝負,則定位平局。

  5:對局中撥子、中途退場均盼為負。

  6:五連與禁手同時形成,先五為勝。

  7:黑方禁手形成時,白方應立即指出。如果白方未發現或發現后不立即指正,反而繼續落子,則不能盼黑方負。

  五子棋是由兩個人在一盤棋上進行對抗的競技運動。在對局開始時,先由執黑棋的一方將一枚棋子落在“天元”上,然后由執白棋的一方在黑棋周圍的交叉點上落子。如此輪流落子直到某方首先在棋盤的直線,橫線或斜線上形成連續的五子或五子以上,則該方就算獲勝。但是五子棋的特點是限行的一方優勢很大。因此,在職業比賽中對黑方做了種種限制,以公平競爭。黑白雙方的勝負結果必須按照職業五子棋的規則要求來決定。

  2.3五子棋常用術語

  二:二是五子棋的一切進攻的基礎;有分為活二和死二。

  活二:既再下一子可形成活三的二,見圖2-2

  死二:既再下一子可形成死三的二,見圖2-3

  三:三是五子棋最常見的攻擊手段。三分為活三、死三、眠三。

  活三:為再下一子既可變成活四的三。或三分為連三、跳三。

  我們通常所說的三就是指活三而言。如果是死三,將特別指出。

  死三:既對方有棋子在同一條線相鄰交叉防守的三:死三分為三種,見圖2-4

  眠三:是死三的一種特性,它看上去相鄰點沒有對方棋子防守,很橡活三,但由于受空間限制,不論如何發展不可能稱為活四,故稱為“眠三”,見圖2-4

  反三:反三不是指一種“三”的形狀,而是指再阻止對方進攻的同時使自己成為一道活三的反攻,稱為反三。

  四:四的形狀有三種,它分為:活四,沖四、跳沖四。

  活四:在同一條線上相連的四個同色棋子成為“連五”,見圖2-5

  沖四;在同一條線上相連的相同的四個棋子,它與活四不同的是,其中的一端有對方的棋子進行阻擋,它只有再在另一端下一手棋才可以形成“連五”。

  跳沖四“它的形狀在“四”中是比較特殊的,一般分為兩種,它的特點是同一條線上的同色的四個棋子,有一個或兩個棋子與另外三個或兩個棋子之間有一個交叉點的間隔,它的下一手棋只有下在間隔的交叉點上才能形象哼“連五。因此,對方的棋子防守時,也只能阻擋在間隔的交叉點上,見圖2-6

  如圖2-7,黑棋在1點進攻,形成一子雙殺,這時白棋的妙手是子啊a位活三,它同時阻擋了黑棋的兩種取勝方法,當黑棋仍在c位跳沖四活三時,白棋即在b位阻斷黑棋沖四并形成反沖四,使黑棋的進攻功虧一簣。

  一子雙殺:指用同一手棋同時形成兩個勝點的方法。

  追下取勝:是指白棋逼迫黑棋形成禁手而取勝的方法。

  自由獲勝:除了追下取勝以外的獲勝方法,稱之為自由獲勝。

  禁手(Forbidden):指黑方一子落下同時形成兩個以上的活三、沖四或形成長連的棋形,是對局中對黑棋禁手使用的戰術或被判為負的行棋手段,白棋無禁手,如果黑子在落子的關鍵的第五子既形成五連的同時,有形成禁手。此時,因黑方已成連五,故禁手失效,黑方勝利。之所以這么規定也是為了規范比賽,其實我們業余的棋手,黑白棋子誰先下都不限制,只是先落子會有比較大的優勢,另一方始終處于防守的被動狀態。所以哪一方先下子,他就有禁手,這是為了保持公平的一種手段。但是職業連珠五子棋雖然對黑棋采取了種限制但是先行的一方優勢依然很大,在高段位的比賽中還添加了一些規定,由于很少用到,就不必敘述了。

  2.4 五子棋攻防

  五子棋是一項對抗性很強的運動,在開局進入五手兩打后,就開始進入了白刃戰,互相爭奪先手,任何一方都不能掉以輕心,要盡量可能少犯錯誤,甚至不犯錯誤,否則將會導致速敗。眾所周知,連珠五子,連五為勝,有四才能有五,有三才能有四,以此類推。所以,在五子棋的對局中進攻和防守都是從二和三開始的。“好的開始是成功的一半”,這條格言在五子棋里再合適不過了。

  五子棋的第年秒的選擇十分關鍵,五子棋實際上是通過選擇最佳的落點,加上正確的落子次序,一步一步地占領各個要點,最終獲得勝利。

  對局的早期,選點的著眼點主要是使本方的棋子保持聯系,為以后創造盡可能多的成三、成四的機會,同時盡量限制對成為好行。由于在五子棋對弈過程中,通過行棋落點來控制對方的落點是可能的,比如活三、沖四的應點是可以預知的,完全有可能通過不斷走出這樣的先手來控制對方的著點直至勝利,所以,在對局的后期,就要在精確計算的前提下,盡在發動攻勢,以取得棋局的控制權,否則一旦遺失戰機,被對方搶先發動攻勢,就會成為被控制的一方。

  當有多個攻擊點可供選擇時,要選擇后續手段多,又不會被對方反先的著點,如果是黑方,還特別要注意進攻終被對方反擊時出線的各種禁手點的可能性。

  進攻分為單攻棋和雙攻棋,單攻棋指單線既單向的攻棋子,包括三子攻棋和四子攻棋。而雙攻棋指雙方或雙行的攻棋。包括三、三攻棋;四、三攻棋(沖四活三、沖四填四,沖五活三、填五沖四);四四攻棋(雙沖四、雙填五、填五沖四)。

  五子棋的取勝思路是由一個子開始的,目標是運用各種方法在棋盤上發展出五連乃至長連去取勝。在這個發展過程中必然要經過由一子到兩子,兩子到三子,三子到四子的過程。因此說,把各種形狀和各個方面上的二三四等子力結合爛熟于胸,做到舉一反三,是學習五子棋的基本功,更是能靈活運用五種取勝技巧的基礎。

  第三章 人工智能的應用

  3.1人工智能研究的特點

  人工智能是一門只是的科學,一知識為對象,研究知識的獲取、表示和使用。

  人工智能的系統過程是數據處理->知識處理,數據->符號。符號表示的是知識而不是數值、數據。問題求解過程有啟發,有推導。人工智能是引起爭議最多的科學之一。

  問題焦點:當前人工智能的研究應該以人類的普遍思維規律為主,還是以特定只是的處理和運用為主?只能的本質是什么?機器能達到人的水平嗎?總而言之,人工智能研究是非常困難的。

  萬能的邏輯推理體系至今沒有創造出來,并不是因為人工智能專家的本事不夠,而是因為這種萬能的體系從根本上就是不可能的,他最大的弱點就是缺乏知識,缺乏人類在幾千年的文明史上積累起來的知識,在實際生活中,人是根據知識行事的,而不是根據在抽象原則上的推理行事的。

  即使就推理體系來說,它的主要技術是狀態空間搜索,而在執行中遇到的主要困難是“組合爆炸”,事實表明,單靠一些思維原則上是解決不了的,要擺脫困境,只有大量使用理性的知識。

  3.2人工智能的應用

  3.2.1 問題要求

  人工智能的第一大成就是下棋程序,在下棋程序中應用的某些技術,如向前看幾步,把困難的問題分解成一些較容易的子問題,發展成為搜索和問題歸納這樣的人工智能基礎技術。今年的計算機程序已能達到下各種方盤棋和國際象棋的錦標賽水平。但是尚未解決包括人類棋手具有的但尚未不能明確表達的能力。另一個問題是涉及問題的原概念,在人工智能中叫問題表示的選擇,人們常能找到某種思考問題的方法,從而使求解變易而解決問題。到目前為止,人工智能程序已能知道如何考慮它們要解決的問題,既搜索解答空間,尋找較優解答。

  3.2.2自然語言處理

  自然語言的處理是人工智能技術應用于實際領域的典型范例,經過多年艱苦努力,這一領域已獲得了大量令人注目的成果.目前該領域的主要課題是生成和理解自然語言。

  3.2.3 智能信息檢索技術

  信息獲得和精化技術己成為當代計算機科學與技術研究中迫切需要研究的課題,將人工智能技術應用于這一領域的研究是人工智能走向廣泛應用的契機和突破口。

  第四章 五子棋人工對戰部分總體設計方案

  4.1 本系統的功能圖

  本系統可以實現電腦自動下棋,掃描整個棋盤記錄連在一起的黑白棋子數,實現人與電腦有次序的下棋,判斷人與電腦的勝負。功能圖4-1

  4.2 Java源文件及其功能圖

  序號 文件名 主要功能 注備

  1 ChessFrame 創建游戲的主窗口和菜單 初始化棋盤

  2 ChessModel 構造棋盤模式及判斷輸贏 可以在文本框中顯示勝負結果

  3 FiveChessApple 主方法,程序入口 開啟游戲

  4 MainPanel 構造一個棋盤及在棋盤上處理鼠標事件 為下棋做準備

  5 WindowEvent 響應關閉 關閉游戲

  4.3 類ChessFrame

  表4-1成員變量

  成員變量描述 變量類型 名稱

  棋盤大小方案 String[] strsize

  模式方案 String[] strmode

  輸贏標記 true iscomputer

  檢驗輸贏情況標記 true checkcomputer

  棋盤寬度 int width

  棋盤高度 int height

  類ChessModel引用 ChessModel cm

  類MainPanel引用 MainPanel mp

  表4-2方法

  方法名稱 返回類型 功能 注備

  ChessFrame( ) 構造五子棋游戲的主窗體 構造函數

  public JMenu makeMenu(Object parent, Object items[], Object target) JMenu 構造五子棋游戲的主菜單 成員方法

  public JMenuItem makeMenuItem(Object item, Object target) JMenuItem 構造五子棋游戲的菜單項 成員方法

  public JRadioButtonMenuItem makeRadioButtonMenuItem(

  Object item, Object target) JRadioButtonMenuItem 構造五子棋游戲的單選按鈕式菜單項 成員方法

  4.4類MainPanel

  表4-3成員變量

  成員變量描述 變量類型 名稱

  棋盤寬度 int width

  棋盤高度 int height

  類ChessModel的引用 ChessModel cm

  表4-4方法

  方法名稱 返回類型 功能 注備

  MainPanel(ChessModel mm) 根據棋盤模式設定面板的大小 構造函數

  public void setModel(ChessModel mm) void 根據棋盤模式設定棋盤的寬度和高度 成員方法

  public void paintComponent(Graphics g) void 根據坐標計算出棋盤方格棋子的信息 成員方法

  public void draw(Graphics g, int i, int j, int v) void 根據提供的棋子信息(顏色、坐標)畫棋子 成員方法

  public void mousePressed(MouseEvent evt) void 響應鼠標的點擊事件,根據鼠標的點擊來下棋,根據下棋判斷勝負等 成員方法

  public void mouseMoved(MouseEvent moveevt) void 響應鼠標的拖動事件 成員方法

  第五章 結論

  程序運行結果如下:

  本設計的優點是運用人工智能的算法,使計算機模擬人思考五子棋的過程,通過該課題,使我了解到一個編程語言最強大的地方不是它容易學,或者難學,而是它擁有一個強大的庫。Java是一個完全面向對象的語言,Java的命名規則是容易讓人接受的。而且容易被編程人員記住。經過幾周的實踐訓練,對Java的綜合應用能力有了較大的提高,另外對Java的特點有了更深層次的認識。這次實踐中使用的代碼雖然不長,但類與類之間也有很強的邏輯關系,這就是面向對象語言的最大優勢,這樣可使我們更輕松的運用Java去實現五子棋游戲的人工智能化。雖然效果不是很好,但親手做過之后還是很有成就感的

  參考文獻:

  [1][美]Nils J Nilsson.人工智能[M].北京:機械工業出版社,2007:[131-150]

  [2]王永慶.人工智能原理與方法[M].西安:西安交通大學出版社,2005:[45-53]

  [3] 葉核亞.Java2程序設計實用教程[M].北京:電子工業出版社,2007:[64-212]

  [4](美)Thomas Petchel著Java 2游戲編程[M] .北京:清華大學出版社,2005:[67-89]

  [5]許南山,從磊,孫風平.并行實現有自學能力的五子棋AI[J]計算機工程與應用.2003:13期

  [6]廉中友.人工智能技術導論[M].西安:西安電子科技大學出版社,2000:[ 120-157]

  [7]張孝祥.Java就業培訓教程[M].北京:清華大學出版社,2003:[12-51]

  [8]陳國君等編著.Java程序設計基礎[M].北京:清華大學出版社.2006:[ 24-50]

  [9]宏偉 何豐泉.五子棋連珠棋初步[M].哈爾濱科技出版社.1999:[33-68]

【游戲設計畢業論文】相關文章:

游戲設計畢業論文開題報告08-28

游戲教學設計02-07

《游戲》教學設計05-07

畢業論文設計總結09-11

設計畢業論文評語01-20

中班精品游戲活動設計《角色游戲》04-05

游戲設計開題報告02-11

《平衡游戲》教學設計02-14

《長凳游戲》教學設計12-18

主站蜘蛛池模板: 石林| 唐海县| 广河县| 太仆寺旗| 宜州市| 北辰区| 云和县| 鸡西市| 秦安县| 潮州市| 正镶白旗| 延边| 新密市| 静乐县| 青田县| 连云港市| 称多县| 金坛市| 和顺县| 昂仁县| 铜川市| 灵寿县| 灵川县| 沂源县| 隆尧县| 黎平县| 双牌县| 海淀区| 分宜县| 海阳市| 崇信县| 类乌齐县| 洮南市| 云浮市| 巴林左旗| 宁国市| 香格里拉县| 和龙市| 沂南县| 邵阳市| 海淀区|