基于C++的棋类游戏开发-论文_第1页
基于C++的棋类游戏开发-论文_第2页
基于C++的棋类游戏开发-论文_第3页
基于C++的棋类游戏开发-论文_第4页
基于C++的棋类游戏开发-论文_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计)基于C/C++的棋类游戏开发作者声明本毕业论文(设计)是在导师的指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。对本毕业论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。毕业论文(设计)成果归内蒙古财经大学所有。特此声明。签名:年月日摘要本论文介绍了基于C/C++的五子棋游戏的设计与实现。首先,简要介绍了五子棋游戏的背景,其中包括游戏规则和它在计算机科学中的重要性。然后,详细阐述了游戏的设计与方法,包括开发环境、系统设计概述、游戏规则设计、界面设计、AI行为逻辑设计以及数据结构与算法选择,并给出了游戏得到源代码示例图。在实现部分,进行了编码实现细节和功能演示与测试。并对游戏的性能进行了评估与分析,分析了实现过程中遇到的问题和解决方法,最后总结了论文的结果。整个论文的研究内容涵盖了五子棋游戏的各个方面,为基于C/C++的五子棋游戏的设计与开发提供了有益的参考。关键词:五子棋;剪枝算法;规则;C++;游戏AbstractThispaperintroducesthedesignandimplementationofafive-in-a-rowgamebasedonC/C++.First,abriefbackgroundonthegameofbackgammon,includingtherulesofthegameanditsimportanceincomputerscience.Then,thedesignandmethodsofthegameareelaboratedindetail,includingthedevelopmentenvironment,systemdesignoverview,gamerulesdesign,interfacedesign,AIbehaviorlogicdesign,datastructureandalgorithmselection,andthesourcecodeexamplediagramofthegameisgiven.Intheimplementationpart,thecodingimplementationdetailsandfunctionaldemonstrationsandtestswerecarriedout.Theperformanceofthegameisevaluatedandanalyzed,theproblemsandsolutionsencounteredintheimplementationprocessareanalyzed,andtheresultsofthepaperaresummarized.Theresearchcontentofthispapercoversallaspectsofbackgammongames,whichprovidesausefulreferenceforthedesignanddevelopmentofbackgammongamesbasedonC/C++.Keywords:Gobang;Traversalalgorithm;Rule;C++;Game目录TOC\o"1-2"\h\z\u一、绪论 5(—)研究背景和动机 5(二)研究内容和目标 5二、需求分析 6(—)五子棋游戏简介 6(二)已有的五子棋游戏实现方法 6(三)功能需求 7三、设计与实现方法 8(—)开发环境 8(二)系统设计概述 8(三)游戏规则设计 9(四)界面设计 14(五)AI行为逻辑 18(六)数据结构与算法选择 21四、系统实现 22(一)编码实现细节 22(二)功能演示与测试 27五、性能评估 30(—)程序性能评估指标 30(二)测试用例设计 30(三)测试结果与分析 30六、结论 31(—)总结论文主要内容 31(二)研究成果的意义和贡献 31(三)对未来工作的展望 32参考文献 32致谢 34基于C/C++的棋类游戏开发一、绪论五子棋作为一种经典的棋类游戏,在全球范围内广受欢迎。其简单的规则和悠久的历史使得它成为了一种受人喜爱的休闲娱乐方式,同时也是人工智能领域中的重要研究对象。随着计算机技术的不断发展,基于C/C++编程语言的五子棋游戏开发已成为了一个重要的研究领域。本论文旨在介绍我们设计与实现的一款基于C/C++的五子棋游戏,探讨其背后的算法与技术,并对其性能进行评估与分析。(—)研究背景和动机经典的五子棋游戏一般需要两名玩家在现实中实现对弈。这种对弈方式既限制了时间与地点,同时也限制了五子棋的传播与推广。所以基于计算机的五子棋游戏通过提供人机对弈的方式,以及各种不同难度的AI对手,不仅增加了游戏的趣味性与可玩性,同时也方便了两名玩家实时对弈。并且,通过基于C/C++的五子棋游戏开发,不仅可以加深我们对编程语言的理解和应用,还可以通过对算法和数据结构的选择来提高用户的舒适度和游戏的各种性能以及功能。(二)研究内容和目标本论文的主要目标是设计与实现一款功能完善、性能优良的基于C/C++的五子棋游戏:实现五子棋游戏的基本规则和逻辑,设计并实现友好操作的游戏交互界面。开发多种游戏模式,包括人机对战和双人对战以及各种AI难度。本论文旨在设计与实现一款基于C/C++的五子棋游戏,通过探讨其算法和技术,以及评估其性能,来回答以下问题:如何设计一款用户友好、功能完善的五子棋游戏界面?如何实现五子棋游戏的核心逻辑和规则,并提供多种游戏模式选择?如何评估并优化游戏的性能,提高其运行效率和响应速度?对游戏性能进行评估与分析,并进行必要的优化。二、需求分析(—)五子棋游戏简介五子棋起源于中国,是全国智力运动会竞技项目之一,是一种双人对弈的纯策略型棋类游戏。双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连珠者获胜。五子棋容易上手,老少皆宜,而且趣味横生,引人入胜。它不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性(二)已有的五子棋游戏实现方法在计算机游戏设计中,已经有了许多五子棋游戏的设计与实现方法被提出和应用。这些方法包括但不限于:基于命令行界面的实现:使用文本界面显示棋盘和游戏状态,玩家通过键盘键入坐标来进行对弈。图形用户界面的实现:利用各类图形库(如SDL、Qt等)实现可视化的游戏界面,为用户提供了更直观更明显的交互体验。人机对战的实现:设计各种难度的人工智能对手,让玩家可以和计算机之间进行对战。网络对战的实现:使用网络通信技术来让两名玩家之间进行对战,实现线上对战功能。在以上设计实现方法中,人机对战和图形用户界面是最为常见的两种方式。前者可以增加游戏的挑战性和趣味性,后者可以提供更直观的用户交互界面。(三)功能需求1.游戏界面绘制棋盘:绘制标准的15x15的棋盘,包括行、列标识。显示落子位置:在棋盘上显示已落子的位置。2.游戏操作落子:玩家可以在空白处落子,轮流进行。判断胜负:当有一方在横、竖、斜方向上连成五个子时,判定该方获胜。3.游戏设置可选择游戏模式:单人模式(与AI对战)和双人模式(玩家之间对战)。4.游戏状态开始新游戏:允许玩家开始新的游戏。5.用户界面面设计应简洁、直观,易于操作和理解。提供友好的用户交互,如鼠标点击或键盘操作。图1程序运行流程图三、设计与实现方法(—)开发环境本五子棋游戏的开发环境主要包括以下部分:操作系统:Windows10编程语言:C/C++集成开发环境(IDE):QtCreator以上环境的选择是基于其稳定性、易用性和广泛性。QtCreator提供了强大的集成开发环境和调试工具,便于团队协作和代码管理。图2集成环境工具图(二)系统设计概述本论文设计和实现了一款基于C/C++的五子棋游戏,目标在与为用户提供友好便捷的游戏界面和各种游戏模式的选择。设计合理的游戏规则,以确保游戏的公平性和趣味性。其中包括明确棋盘的大小、落子规则、胜利条件等方面。设计直观简洁的游戏界面,其中包括主菜单、游戏界面、交换按钮等,让玩家能够轻松地操作游戏,并享受游戏过程中的视听体验。建立清晰的有条理的程序结构,使代码易于维护和扩展。合理划分模块、函数和类,来保证代码的可读性和可维护性。选择恰当的数据结构和算法来实现游戏的逻辑与规则,以此来提高游戏的性能。通过优化算法来减少计算复杂度,并确保游戏运行流畅。通过合理的设计与方法的选择,我们的目标在于实现一款功能完整、性能优良的五子棋游戏,为玩家提供良好的游戏体验,并在代码实现上注重可维护性和扩展性,以便进一步的优化和功能拓展。(三)游戏规则设计游戏规则设计是五子棋游戏开发的核心部分。本游戏遵循传统的五子棋规则,即两名玩家轮流在棋盘上放置黑子和白子,首先形成连续的五子相连的一方获胜。此外,游戏还支持悔棋,重新开始等基本功能,提供了良好的游戏体验。1.计算机自动落子位置通过函数aiPiece()根据当前棋局状态选择最优的落子位置,并进行落子操作。首先检查当前棋盘上是否只有一个棋子,如果是,则随机选择一个相邻位置进行落子,以增加游戏的随机性。如果棋盘上有多于一个棋子,则进行以下步骤:检查游戏是否已经结束,如果已经结束,则直接返回,不再进行后续操作。根据设定的搜索深度(depthcfg),使用迭代加深搜索算法(IDA*)从底层开始搜索最优的落子位置。迭代加深搜索算法是一种深度优先搜索算法,每次搜索的深度逐步增加,直到找到最优解或者达到最大搜索深度为止。搜索过程中,如果发现了杀棋(即能立即获胜的落子),则提前结束搜索。在搜索完成后,选择搜索结果中分数最高的落子位置作为最优落子位置,并进行落子操作。如果是黑棋(BLACK_PLAYER),则在棋盘上放置黑棋;如果是白棋(WHITE_PLAYER),则放置白棋。更新下一步落子的玩家,并重绘棋盘。最后检查游戏是否已经结束,如果结束则返回,否则继续游戏。图3AI落子代码图2.胜负判断通过函数checkWinner()遍历棋盘上的每一个位置,检查是否出现了五连棋或者棋盘已经填满。fullPieces变量用于标记棋盘是否已经填满。初始值为true,表示棋盘已经填满,如果在遍历过程中发现有一个位置为空(即没有棋子),则将fullPieces设置为false,表示棋盘尚未填满。遍历棋盘的每一个位置,检查是否出现了五连棋或者棋盘已经填满:如果某个位置有五连棋(水平、垂直、左对角线或右对角线),则游戏结束。将endGame标志设为true,并根据获胜方(白棋或黑棋)发出游戏结束的信号,同时打印获胜方的信息。如果棋盘已经填满且没有出现五连棋,则游戏也结束,但结果是平局(和棋)。发出游戏结束的信号,并打印中间结果信息。如果游戏已经结束(无论是获胜方还是平局),则返回true,否则返回false,表示游戏尚未结束。图4AI胜负判断代码图3.悔棋功能通过repentance_chess()的函数,进行悔棋操作。首先调用了BoardWidget对象的repentance()函数来执行悔棋操作。如果悔棋成功(即棋局中存在可悔棋的步骤),则会打印一条调试信息表示悔棋成功;如果悔棋失败(即棋局中没有可悔棋的步骤),则会弹出一个消息框提示用户。无论是成功还是失败,最后都会调用board->update()函数来更新棋盘的显示状态。通过repentance()的函数,用于执行悔棋操作。首先将endGame设置为false,表示游戏未结束。接着,函数检查steps向量的大小是否小于2,如果小于2,表示没有足够的步骤可以悔棋,此时函数返回false,表示悔棋失败。如果steps向量的大小大于等于2,说明存在足够的步骤可以进行悔棋。函数使用一个循环来两次执行以下操作:获取steps向量中最后一个元素(即最后一步棋的位置)。计算该位置在棋盘数组中的索引,并将该位置的棋子类型设置为NO_PIECE,表示该位置没有棋子。将该步棋从steps向量中移除。最后,函数返回true,表示悔棋操作成功。图5悔棋代码图1图6悔棋代码图24.重新开始功能通过reset_game()的函数,重置游戏状态,重新开始游戏。首先通过调试信息输出提示信息,指示游戏正在重新开始。接着,函数调用board对象的initBoard()方法,用于初始化棋盘,重置棋盘状态。然后,函数使用一个循环来移除水平布局horizon_layout中的所有子项。在循环中,首先通过takeAt(0)方法获取水平布局中的第一个子项,并将其从布局中移除。然后,检查该子项是否为控件,如果是,则将其父对象设置为NULL,以防止删除子项后界面不消失。最后,删除子项对象。接着,函数删除旧的board对象,释放其内存空间。最后,函数创建一个新的BoardWidget对象,并通过initGame(board)方法对新的棋盘进行初始化。图7重新开始代码图5.成绩记录功能通过定义类GameRecord,用于表示游戏记录。构造函数接受四个参数,分别为玩家姓名、游戏难度、游戏结果和游戏结束时间,用于初始化GameRecord对象的属性。saveToFile函数用于将游戏记录保存到文件中,接受一个参数filePath,表示保存的文件路径。该函数打开指定路径的文件,并将游戏记录以逗号分隔的形式写入文件中,每个记录占据一行。loadFromFile函数用于从文件中加载游戏记录,接受一个参数filePath,表示加载的文件路径。该函数打开指定路径的文件,逐行读取文件内容,将每行内容解析为游戏记录,并将解析后的记录存储在QList<GameRecord>中,最后返回该列表。在保存和加载游戏记录时,使用了QFile和QTextStream类来进行文件操作,并使用了QStringList类来解析记录中的各个字段。图8成绩记录代码图(四)界面设计界面设计是提高用户体验的重要一环。游戏界面采用图形用户界面设计,利用EASYX实现了直观、美观的游戏界面。界面包括棋盘、棋子、游戏状态显示等元素,用户可以通过鼠标与游戏进行交互。1.棋盘绘制通过绘图事件函数paintEvent()。用于绘制游戏棋盘。在paintEvent()函数中:首先创建了一个QPainter对象painter,用于绘制图形。启用了反走样以及文字反走样,以提高绘制的质量。使用fillRect()方法填充了整个窗口的背景颜色。设置了字体和画笔的属性。绘制了棋盘网格和棋子。绘制了五个标记点。最后,根据游戏步骤的数量,在最后一个落子位置上绘制了当前步数。图9棋盘绘制代码图1图10棋盘绘制代码图2图11棋盘绘制代码图32.菜单绘制通过在GameWidget类的构造函数中,进行了如下操作:设置窗口标题。创建了一个BoardWidget对象,即游戏棋盘。添加了背景音乐,并设置了音乐的属性,包括循环播放和音量。将音乐播放器移到一个新的线程中,并启动音乐播放线程。调用initGame()函数初始化游戏。在initGame()函数中,进行了如下操作:设置棋盘的游戏模式。如果游戏模式是人机对战(gamemode==2),则创建了四个按钮:重启游戏、悔棋、认输和重置游戏,以及一个显示历史记录的按钮。并且将这些按钮添加到水平布局中,并连接了相应的槽函数。如果游戏模式是人人对战或者单机模式,则同样创建了相同的按钮,并且进行了相同的处理。将水平布局和棋盘添加到主布局中。图12菜单绘制代码图1图13菜单绘制代码图23.交互功能通过BoardWidget类中的鼠标移动事件处理函数QMouseEvent进行落子。当鼠标在棋盘上移动时,会执行以下操作:获取鼠标当前位置event->pos()并将其转换为相对于棋盘起始位置的坐标pos。将坐标pos做一定的调整,使其指向棋盘格子的中心位置,即加上半个格子的宽度和高度。判断调整后的坐标是否在棋盘范围内,如果超出范围则不做任何操作。计算出调整后的坐标在当前格子内的偏移量,并将其作为绘制的图标的位置。调用setTrackPos()函数设置跟踪点的位置,通常用于在界面上显示一个指示当前鼠标所在位置的标记。图14交互功能代码图(五)AI行为逻辑通过实现了一个智能评估器,用于下棋AI的决策,通过搜索可能的下一步,并评估每一步的得分,从而选择最优的下一步行动。定义了黑白棋的Zobrist表,其中zobrist_black[N][N]和zobrist_white[N][N]是用来存储黑白棋每个位置的Zobrist哈希值的表格。Zobrist哈希是一种用于棋盘状态的哈希函数,可以用来快速计算局面的哈希值,用于博弈树搜索等算法中。这里使用了64位的随机数来表示每个位置的哈希值。定义了一个Key-val分值表patterns,其中包含了一些棋局中不同形式的棋型以及对应的分值。每个元素是一个Pattern结构体,包含了棋型字符串和对应的分值。这个表格用于评估局面的得分,根据棋盘上不同的棋型给予不同的分值,从而辅助AI进行决策。图15Key-val分值表图图16AI逻辑图1图17AI逻辑图2图18AI逻辑图3(六)数据结构与算法选择数据结构和算法的选择直接影响到游戏的性能和效率。在本游戏中,棋盘状态采用二维数组进行存储,方便快速地进行棋子的放置和检测。通过Alpha-Beta剪枝算法计算下一步最佳落子点,包括搜索深度限制和缓存优化。以下是Alpha-Beta剪枝算法的核心部分,用于计算下一步最佳落子点。aiJudge::pointaiJudge::alphaBetaPlay(std::vector<point>&state,boolnowcolor,intdepth,intalpha,intbeta,intmaxdepth):定义了一个名为alphaBetaPlay的方法,用于执行Alpha-Beta剪枝搜索。if(depth==maxdepth):如果搜索深度达到最大深度maxdepth,则返回当前局面的评估结果作为下一步的落子点。std::stack<point>nextPossibleStep=getPossibleNextStep(state,nowcolor);:获取当前局面下可能的下一步落子点集合。pointmaxV={nowcolor,-1,-1,-INF},minV={nowcolor,-1,-1,INF};:定义maxV和minV分别用于存储当前搜索层的最大和最小值,初始化为负无穷和正无穷。intnowval=evluateState(state,nowcolor);:评估当前局面的得分。while(nextPossibleStep.size()){...}:遍历可能的下一步落子点。pointtpstep=nextPossibleStep.top();nextPossibleStep.pop();:获取并弹出下一个可能的落子点。state.push_back(tpstep);:将当前落子点加入到状态中。inttkey=getZobristKey(state);:获取当前局面的Zobrist哈希键值。if(!zobrist_list.count(tkey)){...}:如果当前局面的Zobrist哈希键值未被缓存,则根据当前局面的得分和当前落子点更新Zobrist缓存表。pointval=alphaBetaPlay(state,!nowcolor,depth+1,alpha,beta,maxdepth);:递归调用alphaBetaPlay方法,在子节点上进行搜索。state.pop_back();:撤销当前落子点,回溯到上一层。if(depth%2==0){...}else{...}:根据当前层的奇偶性,更新`alpha`和beta,并更新maxV或minV。if(alpha>=beta)break;:如果当前节点的值已经大于等于父节点的beta或者小于等于父节点的alpha,则进行Alpha-Beta剪枝。if(depth%2==0)returnmaxV;elsereturnminV;:如果当前层为偶数层(Max层),则返回maxV,否则返回minV。图19Alpha-Beta图四、系统实现(一)编码实现细节游戏的编码实现主要分为以下几个模块:1.游戏逻辑模块负责实现游戏的规则和逻辑,包括棋盘状态的维护、棋子的放置、胜负的判断等功能。图20游戏逻辑模块图2.用户交互模块处理用户输入事件,包括鼠标点击、键盘输入等,与游戏逻辑模块进行交互。图21用户交互模块图3.界面绘制模块利用QT实现游戏界面的绘制,包括棋盘、棋子、游戏状态显示等元素。图22界面绘制模块图4.AI模块实现不同难度级别的人工智能对手,采用Alpha-Beta剪枝算法进行搜索和决策。图23AI模块图在编码实现的过程中,我们注重了代码的可拓展性和可维护性,将不同功能的代码建立起独立的模块,然后通过接口进行交互。同时,我们也注重代码的规范性和可读性,采用了一致的命名规则和代码注释,方便其他开发者理解我们的代码。(二)功能演示与测试为了验证游戏的稳定性和合理性,我们进行了充分的功能演示和测试。在功能演示过程中,我们测试了游戏的基本功能,包括棋盘绘制、落子逻辑、游戏规则和判断胜负等。并且,我们还测试了游戏的可玩性和用户交互体验,其中包括了界面的直观度、交互的灵活性等。1.通过鼠标点击选择游戏模式图24游戏模式选择图2.如果选择了PVE则继续进行先后手选择图25先后手选择图3.如果选择了PVE则继续进行AI难度的选择图26AI难度选择图4.PVP模式下立即进入游戏的主要菜单及棋盘,PVE模式则要在难度选择之后进入图27主界面图5.主要交互功能区位于棋盘正上方通过鼠标点击进行交互。他们按顺序分别为重新开始游戏,悔棋,认输,重新开始以及成绩展示。图28交互功能区6.游戏过程中如果落子失误,可以通过单机Repentance进行悔棋操作,回退到上一步进行落子。图29悔棋功能图1图30悔棋功能图27.一旦有一方形成五子连珠将会立即弹出提示胜利方图31游戏结束图8.游戏决出胜负后会记录本次成绩,通过点击ShowRecords显示成绩图32成绩记录图我们同样进行了性能测试,比如游戏在不同场景下的运行效率和资源占用情况。通过对游戏的性能进行评估与分析,我们优化了代码和算法,提高了游戏的运行效率和用户交互体验。综上所述,我们通过功能演示和测试验证了游戏的稳定性稳定性、合理性和游戏性能,确保了游戏的质量和可靠性。五、性能评估(—)程序性能评估指标在评估游戏性能时,我们主要关注以下几个准则:1.运行时间测量游戏启动和运行所需的时间,其中包括了界面初始化、界面绘制、AI计算等各个阶段的耗时。2.内存占用测量游戏运行过程中所占用的内存大小,其中包括程序本身的内存占用和运行时所需的额外内存。3.CPU占用测量游戏对CPU资源的占用情况,其中包括CPU利用率和处理器核心的负载均衡情况。4.帧率测量游戏界面的流畅度,即每秒钟刷新的画面帧数。通过对以上标准的评估,我们全面的了解游戏的性能表现,并及时发现和解决潜在的性能问题,提高游戏的运行效率和用户交互体验。(二)测试用例设计为了评估游戏的性能,我们设计了一系列测试用例,涵盖了游戏启动、棋盘操作等方面。具体测试用例包括:1.游戏启动时间测试测量游戏从启动到主菜单界面加载完所需的时间。2.棋盘操作响应时间测试测试玩家在棋盘上放置棋子的响应时间。通过设计各种的测试用例,我们全面地评估了游戏在不同场景下的性能表现,发现并解决了潜在的性能问题。(三)测试结果与分析根据测试用例的执行结果,我们对游戏的性能进行了全面的分析。具体分析内容包括:1.各项性能指标的统计结果运行时间、内存占用、CPU占用和帧率等指标的统计数据。2.性能瓶颈的识别根据测试结果,分析了游戏性能存在的瓶颈和问题。3.优化建议根据性能分析结果,提出针对性的优化建议,包括代码优化、算法改进等方面。通过对测试结果的深入分析,我们发现和解决了游戏性能存在的问题,优化游戏的运行效率和用户交互体验。六、结论本论文旨在设计与实现一款基于C/C++开发的五子棋游戏,并对其进行全面的解释、分析与评估。并通过对游戏的规则设计、界面设计、以及数据结构和算法选择等方面的研究,我们取得了一定的研究成果并获得了一些有益的启示。(—)总结论文主要内容在本论文中,我们首先介绍了五子棋游戏的背景和相关工作,包括游戏简介、已有的实现方法以及相关算法和技术的综述。然后,我们详细阐述了游戏的设计与方法,包括开发环境、系统设计概述、游戏规则设计、界面设计、程序结构设计以及数据结构与算法选择。接着,我们展示了游戏的实现过程,包括编码实现细节以及功能演示与测试。最后,我们对游戏的性能进行了评估与分析,并提出了一些潜在的改进空间和展望。(二)研究成果的意义和贡献通过本论文的研究与实现,我们成功地设计并实现了一款功能完善、性能优良的基于C/C++的五子棋游戏。该游戏不仅具备了传统五子棋游戏的基本功能,还提供了友好的用户界面、多种游戏模式选择以及人工智能对手,为玩家提供了丰富的游戏体验。同时,我们对游戏的性能进行了全面的评估与分析,为游戏的进一步优化提供了一定的参考和指导。(三)对未来工作的展望尽管我们已经取得了一定的成果,但仍然存在许多潜在的改进空间和未来工作的可能。我们可以进一步优化游戏的算法和性能,并增加更多的游戏功能和特色,提升游戏的用户体验。同时,我们也可以开展更深入的研究,探索五子棋游戏在人工智能领域的应用和发展前景,为相关领域的研究和实践做出更多的贡献。综上所述,本论文的研究成果对于推动基于C/C++的五子棋游戏的发展具有一定的意义。参考文献[1]赵杰,李亚文,杨滨峰.基于Qt和博弈算法的五子棋游戏设计[J].商洛学院学报,2023,37(06):43-50.DOI:10.13440/j.slxy.1674-0033.2023.06.007.[2]谢远.智能决策系统[D].武汉工程大学,2023.DOI:10.27727/ki.gwhxc.2022.000693.[3]何星,段华琼.基于C语言的五子棋游戏的设计与实现[J].信息与电脑(理论版),2021,33(24):118-120.[4]贺胜,段华琼.基于C语言的五子棋游戏的设计与实现[J].信息与电脑(理论版),2021,33(22):108-110.[5]李昊.五子棋人机博弈算法优化研究与实现[D].大连海事大学,2021.DOI:10.26989/ki.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论