当前位置:文档之家› 五子棋毕业论文 2011

五子棋毕业论文 2011

目录

绪论 (1)

1 五子棋手机游戏概述 (3)

1.1 五子棋简介 (3)

1.2 手机游戏的优点 (3)

1.3 五子棋术语 (3)

2 开发环境与工具介绍 (5)

2.1 开发环境与运行环境 (5)

2.1.1 开发环境 (5)

2.1.2 运行环境 (5)

2.2 工具介绍 (5)

2.2.1 Android简介 (5)

2.2.2 Java简介 (6)

3 需求分析与总体设计 (8)

3.1 需求分析 (8)

3.2 系统设计思想 (8)

3.3 系统总体设计 (8)

3.4 系统功能模块及流程 (9)

3.4.1 系统主要功能模块 (9)

3.4.2 系统主要流程 (10)

3.5 玩家视图与操作 (10)

3.5.1 欢迎界面 (10)

3.5.2 游戏帮助界面 (11)

3.5.3 游戏主界面 (12)

4 详细设计 (15)

4.1 欢迎界面设计 (15)

4.2 帮助界面设计 (16)

4.3 游戏主界面设计 (17)

4.4 棋盘类 (21)

4.5 玩家类 (29)

5 人机智能算法分析 (33)

5.1 知识准备 (33)

5.1.1 极大极小树 (33)

5.1.2 深度优先搜索 (33)

5.1.3 剪枝方法 (34)

5.2 算法思想 (35)

5.2.1 算法的主要设计思路 (35)

5.2.2 算法的主要流程 (37)

5.2.3 第一次搜索 (38)

5.2.4 第二次搜索 (42)

5.2.5 第三次搜索 (44)

6 软件测试 (47)

6.1 软件测试方案 (47)

6.2 软件功能测试用例 (47)

7 结论 (49)

参考文献 (50)

致谢 (51)

手机五子棋游戏设计

摘要

手机游戏被业内人士称为继短信之后的又一座“金矿”。从2003年到2010年的市场销售额年均复合增长率为62.4%。可以看出,手机游戏将经历一个黄金发展时期。3G的普及、手机显示性能的提高、手机屏幕的扩大和较高的分辨率,解决了传统手机行业的很多弊端,手机休闲娱乐应用将成为PC休闲娱乐之后又一重要业务增长点。同时Android采用了键盘形式的按键,可以完成更复杂的操作。Android虽然基于Java,但是其虚拟机是基于寄存器的(这与普通的Java基于堆栈不同),速度得到很大的提升,这为Android平台上开发游戏提供了坚强的后盾。

本文将着眼于目前呼声最高的手机操作系统Android系统,设计一款能够提供人机对战和人人大战两种游戏模式的手机五子棋游戏。凭借Android平台提供的非常完美的控件和精美的布局框架设计出一个内容清楚、指示明白、屏幕美观和有亲切感的游戏界面。同时根据我们平常下棋的方式,设计一款操作简单,功能齐全的棋牌游戏。通过对极大极小树思想,深度搜索方法和Alpha---Beta剪枝方法的学习研究,设计出一种计算速度快且具有一定智能水平的人工智能算法。

【关键词】五子棋 Android 人工智能

Mobile Phone Renju Game Design

Abstract

Mobile games since the industry was called after a text message "goldmine" again. From 2003 to 2010 annual sales surged 62.4 percent from compound rate for. Can see,mobile games will experience a golden period of development. 3G phone displays the popularization and performance improvement,the expansion of the phone's screen,and a higher resolution,solve the traditional mobile phone industry's many drawbacks,mobile entertainment applications will be after PC entertainment another important business growth. Meanwhile Android also USES a keyboard forms of buttons that can do more complex operation. Android though,but its based on a Java virtual machine (which is based on the register with the ordinary Java stack-based different),speed,it got a lot of ascension for the Android platform games provide a strong backing.

This article will focus on the highest mobile phone calls to current operating system Android system,design a paragraph can provide the man-machine against and everyone war two game mode mobile renju game. With Android platform provides very perfect control and exquisite layout framework design a content clearly,directives understand,and the screen is beautiful and kindness of the game interface. And according to the way our normal chess,design of a simple operation,complete function of a chess game. Through the minimax tree search methods and ideas,depth pruning methods study,design a kind of calculation speed is quick and have certain intelligence level of artificial intelligence algorithm.

【Key words】renju Android Artificial intelligence

绪论

随着社会的发展,目前全球的手机用户数量已经超过了PC机的数量,而且手机的数量正在快速增长,其中智能手机所占的比例越来越大,特别是随着3G 技术发展时代的到来,移动互联网将是一个巨大的市场,许多国际大公司以及国内的大公司都在抢占智能手机领域的市场份额。这期间,出现的智能手机可谓五花八门,种类繁多,但是真正好用,受用户喜爱的智能手机并不多。

当互联网巨头Google宣布依靠android系统进军手机操作系统领域之后,三年来Android一路高歌,快速的获得众多用户和厂商的认同。随着Android手机终端的逐渐热销,Android也引起众多手机应用程序开发商的关注,Android 的出现带给了智能手机领域更多的机遇和挑战,由于Android基于Linux内核且具有开源、免费的特性,它迅速得到广大爱好者以及许多厂商的支持,基于Android所开发的手机游戏拥有巨大潜力已成为行业共识[1]。

3G的普及、手机显示性能的提高、手机屏幕的扩大和较高的分辨率,解决了传统手机行业的很多弊端,同时Android也采用了键盘形式的按键,可以完成更复杂的操作。Android虽然基于Java,但是其虚拟机是基于寄存器的(这与普通的Java基于堆栈不同),速度得到很大的提升,这为Android平台上开发游戏提供了坚强的后盾]2[。

随着移动开发技术的不断升级和终端设备成本的下降,近年来,手机在普通消费人群中得到了极大的普及。凭借其便于携带、沟通迅捷、功能多样、私密性强等独有优势,手机已经成为普通民众不可替代的随身工具。其益智、趣味和休闲的特点迎合了消费者的娱乐需要,手机游戏的开发推广已经成为手机生产商和运营商重要的业务增长点,游戏软件产业价值不断提升。手机游戏是手机的一种高附加值操作软件,游戏编程是手机软件编程的重要组成,同时也持续推动手机软件技术升级进步。

中华民族是一个有着几千年悠久历史和璀璨文化的国家,而棋类娱乐却早已突破了纯游戏的范畴而成为中国传统文化的一个分支。五子棋起源于中国古代的传统黑白棋种之一,现代五子棋日文称之为“连珠”,英译为Renju,英文称之为“Gobang”或“FIR”(Five in a Row 的缩写),中文亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋的棋文化源渊流长,具有东方的神秘和西方的直观,是中西文化的交流点,是古今哲理的结晶。

现在人们压力日益增大,需要劳逸结合才能获得更高的工作效率,工作之余的娱乐对每一个人来说都是必不可少的。五子棋这种娱乐方式简单易学又具有深奥的技巧,非常富有趣味性和消遣性。在经过不断发展后,五子棋已经成为棋盘娱乐的一个重要的组成部分,它能够增强思维能力、开发智力,是人们休闲娱乐

的不错选择。

近来随着计算机和手机的快速发展,各种各样的游戏层出不穷,使得人们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。现在的五子棋游戏软件基本上可以分为两类:一类是网络五子棋游戏软件,另一类是单机版五子棋游戏软件。很少有手机版的五子棋游戏软件。为了满足手机人群的需求,本文设计了这款手机版的五子棋游戏软件,可以供人们闲暇时间随时随地地进行娱乐,提高自己的五子棋水平,实用性强。

本课题主要研究在android手机上开发一款集人机对战和人人大战两个游戏模式于一身的五子棋游戏。游戏界面部分凭借android平台提供的非常完美的控件和精美的布局框架设计出一个内容清楚、指示明白、屏幕美观和有亲切感的游戏界面。在人机对战中通过极大极小树原理、深度搜索方法、剪枝方法等理论来模拟一个运行效率快,具有一定智能的对手来同游戏玩家一较高下。人人对战部分主要是提供一个界面美观的平台来供游戏双方更好的切磋棋艺。此外,本软件还必须具备如下基本功能:

①显示一个十五行十五列的五子棋棋盘。

②在棋盘上面对应位置通过触屏点击下子,棋盘上将在相应的位置上显示棋

子,并且棋子在纵横交点上。

③可以自动判断游戏是否结束,判断胜负,是否黑方或者白方已经胜出,并

且通过提示信息来提醒玩家。

④在游戏上方会有一个游戏信息,这个游戏信息是用来提示当前游戏状态和

当前是黑白双方的哪一方下子,玩家可以根据这个提示来相应的下棋,而不会导致不清楚轮到哪一方下棋的情况出现。

⑤可以重新开始游戏,悔棋,认输和退出游戏界面的功能。

⑥要有帮助界面。

1 五子棋手机游戏概述

1.1 五子棋简介

五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row 的缩写) ,亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。

1.2 手机游戏的优点

●庞大的潜在用户群

现在全球超过十亿部移动电话正在被使用,并且这个数目还在逐渐增加。在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数还要多。虽然这些手机只有小部分是支持Java游戏的手机,但是这个数目正在快速地提高并且在几年内Java手机将要成为行业标准。移动游戏潜在的市场比其它任何平台(比如Playstation和GameBoy)都要大。

●便携性

GameBoy比其他任何控制台游戏卖出的多的一个原因就是其的便携性。与现在的游戏控制台或个人电脑相比,手机可能不是一个好的游戏设备,但是人们基本上是随时随地都把它们带在身边,在人们离开家或者想玩的时候,可以不受任何时间地点限制地玩自己选择的游戏。

●支持网络

因为移动电话是网络设备,所以可以实现多人游戏。

1.3 五子棋术语

黑方:执黑棋一方的简称。

白方:执白棋一方的简称。

胜局:有一方获胜的对局。

和局:分不出胜负的对局。

终局:对局结束。

阳线:直线,棋盘上可见的横纵直线。

交叉点:阳线垂直相交的点,简称“点”。

阴线:斜线,由交叉点构成的与阳线成45°夹角的隐形斜线。

落子:棋子直接落于棋盘的空白交叉点上。

轮走方:即“行棋方”,有权利落子的黑方或白方。

连:同色棋子在一条阳线或阴线上相邻成一排。

长连:五枚以上同色棋子在一条阳线或阴线上相邻成一排。

五连:只有五枚同色棋子在一条阳线或阴线上相邻成一排。

成五:含有五枚同色棋子所形成的连,包括五连和长连。

四:一条阳线或阴线上连续相邻的5个点上只有四枚同色棋子的棋型。

活四:有两个点可以成五的四。

冲四:只有一个点可以成五的四。

死四:不能成五的四。

三:一条阳线或阴线上连续相邻的5个点上只有三枚同色棋子的棋型。

活三:再走一着可以形成活四的三。

连活三:连的活三(同色棋子在一条阳线或阴线上相邻成一排的活三)。简称“连三”。

跳活三:中间隔有一个空点的活三。简称“跳三”。

眠三:再走一着可以形成冲四的三。

死三:不能成五的三。

二:一条阳线或阴线上连续相邻的5个点上只有两枚同色棋子的棋型。

活二:再走一着可以形成活三的二。

连活二:连的活二(同色棋子在一条阳线或阴线上相邻成一排的活二)。简称“连二”。

跳活二:中间隔有一个空点的活二。简称“跳二”。

大跳活二:中间隔有两个空点的活二。简称“大跳二”。

眠二:再走一着可以形成眠三的二。

死二:不能成五的二。

三三:一子落下同时形成两个活三。也称“双三”。

四四:一子落下同时形成两个冲四。也称“双四”。

四三:一子落下同时形成一个冲四和一个活三]3[。

2 开发环境与工具介绍

2.1 开发环境与运行环境

2.1.1 开发环境

Intel(R) Pentium(R) 4 CPU 2.40GHz,1G内存,160G硬盘

Microsoft Windows XP Professional Service Pack 3

JDK 1.60

Eclipse 3.5

2.1.2 运行环境

Android手机操作系统2.2版本。

2.2 工具介绍

2.2.1 Android简介

Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。Android系统具有开放性、应用程序无界限、应用程序是在平等的条件创建的、应用程序可以轻松地嵌入网络和应用程序可以并行运行等特点。Android的系统架构共分为4层,由高到低分别是应用层、应用框架层、系统运行库层和linux内核层。

从技术角度而言,Android与iphone相似,采用Webkit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查收邮件、搜索网址和观看视频节目等。Android比iphone等其它手机更强调搜索功能,界面更强大,可以说是一种融入了全部web应用的平台。随着版本的更新,从最初的触屏到现在的多点触摸,从普通的联系人到现在的数据同步,从简单的google map到现在的导航系统,从基本的网页浏览到现在的HTML 5,这都说明Android已经逐渐稳定,而且功能越来越强大。此外,Android平台不仅支持Java、C、C++等主流的编程语言,还支持ruby、python等脚本语言,甚至google专为Android的应用开发了simple语言,这使得Android有着非常广泛的开发群体]4[。

Android应用程序由四个模块构造而成:Activity,Intent,Content Provider,Service。当然也不是每个Android应用程序都必须由这四部分组成,可以根据开发者的需求进行组合。但是任何一个应用程序模块都必须在AndroidManfest.xml 文件中声明使用到的这些模块。

Activity是最基本的模块。我们称之为“活动”。简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如,监听系统事件(按键事件、触摸屏事件等),为用户显示指定的View,启动其他Activity 等。所有应用的Activity都继承于Android.app.Activity类,该类是Android提供

的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能,这种设计在其他领域也较为常见。

Android用Intent这个特殊类实现在Activity与Activity之间的切换。Intent 类用于描述应用的功能。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN、VIEW、PICK、EDIT等,而动作对应的数据则以URI的形式表示。

数据是应用的核心。在Android中,默认使用鼎鼎大名的SQLite作为系统数据库。但是在Android中,使用方法有点小小的不一样。在Android中,每一个应用都运行在各自的进程中,当一个应用需要访问其他应用的数据时,也就是数据需要在不同的虚拟机之间传递,这样的情况操作起来可能有些困难(正常情况下,你不能读取其他应用的db文件),ContentProvider正是用来解决在不同的应用包之间共享数据的工具。

Service即“服务”的意思,既然是服务,那么Service将是一个生命周期长而且没有用户界面的程序。比如一个正在从播放列表中播放歌曲的媒体播放器,在这个媒体播放器应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者会认为在导航到其他屏幕时音乐应该还在播放。在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法连接到一个service上(如果这个service当前还没有处于启动状态,则将启动它)。当连接到一个service之后,还可用service提供的接口与它进行通讯。以媒体播放器为例,我们还可以执行暂停、重播等操作]5[。

2.2.2 Java简介

Java是Sun公司在1995年推出的新的编程语言,它是一种简单的、面向对象的、分布式的、解释的、安全的、可移植的、性能优异的多线程语言。它以其强安全性、平台无关性、硬件结构无关性、语言简洁、面向对象的特点,在网络编程语言中占据了无可比拟的优势,成为实现电子商务系统的首选语言。

Java具有如下特点:

●简单性

Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,开发者只需要知道一些概念就能够编写出一些应用程序。Java程序相对较小,其代码能够在小机器,例如手机上运行,这应该是大家经常可以看到的。

●面向对象语言

Java的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量和相应的方法,实现了模块化和信息的隐藏;而类则是提供了对象的原型,并且通过继承的机制,子类可以使用父类所提供的方法,以实现代码的复用。

●健壮性

Java语言被病毒感染和破坏得最少。大部分病毒程序常用的方法就是通过巧妙地运用地址变量如指针来获取计算机的资源,而Java正好放弃了难学和危险的指针功能,从而使Java更安全。

●多线程

设计Java的目标之一,就是为了满足人们对创建交互式网上程序的需要。多线程就是为实现这个目标而设计出来的,它使用Java编写出来的应用程序可以同时执行多个任务。多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。

●自动内存管理

可以说自动内存管理是Java健壮性的体现,内存管理是很多种应用程序内的关键因素。在网络上的其他地方读取大量的数据,之后把该数据写入硬盘上的数据库内,一般的设计就是把数据读入内存中的某种集合内,对这些数据执行某些操作,之后把数据写入数据库。在数据写入数据库后,在下一批处理之前,临时存储数据的集合必须清空旧数据,或者被删除后再建。这种操作可能执行很多次,在像C++这些不提供自动垃圾搜集的语言中,手工清空或删除集合数据结构逻辑上的一点点缺陷就可能导致大量的内存被错误地收回或丢失。Java的自动内存管理正好解决这一点,它使程序员不用再为内存管理写大量的代码]6[。

3 需求分析与总体设计

3.1 需求分析

手机屏幕尺寸分为物理尺寸和显示分辨率两个概念。物理尺寸是指屏幕的实际大小。大的屏幕同时,要配备高的分辨率,也就是在这个尺寸下可以显示多少个像素,显示的像素越多,可以表现的余地自然就越大。现在手机行业发展迅速,不同大小屏幕的手机迅速发展,鉴于不同手机屏幕尺寸不同,在设计游戏的时候必须满足:软件的界面简洁明了,操作简单容易。软件具有的人工智能算法原理要简单并且运行要快速。游戏是需要快速反应的,手机处理器的频率直接要求需要使用简单实用的智能算法。

在设计本游戏时考虑到用户需要的是一个操作简便界面简单的游戏软件。同时要提供人人大战和人机对战两个游戏模式。特别是人机部分,要考虑到此软件是在手机上运行,手机的很多性能都不如电脑,因此在人工智能算法的设计上应该在尽可能的缩短系统搜索时间的同时还要保证要有一定的智能水平,不然对玩家来说没有一定的挑战性,也就缺少了吸引力。此外,通过软件功能的分析,根据五子棋爱好者的需求,得出还有如下需求信息:

①具有重新开始的功能;

②具有认输功能;

③具有悔棋功能;

④具有提示轮到哪一方下棋的功能;

⑤具有退出游戏的功能;

⑥具有判断胜负的功能。

3.2 系统设计思想

本次设计主要是设计一个能够在Android手机上运行的五子棋游戏。根据一般玩手机游戏的流程,玩家一般是先进入一个欢迎界面,进行选择操作后再进入游戏的主界面开始游戏。本游戏软件也将遵循该流程,玩家打开游戏软件后将先进入欢迎界面,选择游戏模式,然后进入游戏的主界面开始游戏。进入游戏的主界面后,系统将根据玩家所选的游戏模式给玩家设置对手玩家。游戏过程中,棋盘上方的提示信息会提示玩家轮到哪一方下子,玩家也可以进行悔棋、认输等操作。

3.3 系统总体设计

根据系统设计思想,得出系统总体设计模型为:

图1 系统总体设计模型

3.4 系统功能模块及流程

3.4.1 系统主要功能模块

根据需求分析和系统设计思想,可以将此手机五子棋游戏分为以下几个功能模块:

游戏界面初始化模块:装载界面图片,画出棋盘,清空棋盘,清空游戏双方落子集合等等功能。

主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块中,主要担当一个调度者的角色。

玩家落子模块:即用户在指定落子区域单击后,程序会计算该子的坐标,并且在相应位置画出相应的棋子。

分析盘面得出最佳下子位置模块:是本次设计的核心部分,即人工智能模块。

电脑落子模块:在分析出来的最优位置上画出相应的棋子。

胜负判断模块:根据预先设定的规则,判断游戏胜负。

悔棋功能模块:通过点击悔棋按钮可以进行悔棋。

认输功能模块:通过点击认输按钮可以认输。

图2 系统主流程图

3.5 玩家视图与操作

3.5.1 欢迎界面

欢迎界面主要由游戏名称、游戏模式选择、开始按钮和退出按钮组成。游戏名称是本人自己制作的一个艺术字图片,而游戏模式的选择则由Android平台提供的单项选择的组件完成。点击开始按钮时,系统将根据所选的游戏模式进入相应的游戏,如果玩家还没选择游戏模式就点击了确定按钮,系统会弹出一个提示框来提示玩家选择游戏模式。点击退出按钮,系统将会弹出一个退出提示的对话框来供玩家确定是否退出游戏。以下是欢迎界面图:

图3 游戏的欢迎界面图

3.5.2 游戏帮助界面

游戏的帮助界面主要包括五子棋简介,五子棋下棋规则和返回欢迎界面的

按钮。以下是帮助界面图:

图4 帮助界面示意图

3.5.3 游戏主界面

游戏的主界面由游戏信息提示,黑白两色的棋钵,棋盘,开始按钮,悔棋按钮,认输按钮和返回按钮组成。

提示信息将由Android平台提供的文本框控件显示出来,提示信息主要用来提示玩家当前的游戏信息,如当前的游戏状态、轮到哪个玩家落子和游戏的胜负信息等等。黑白两色的棋钵代表正在下棋的黑白两方,游戏没有开始的时候,黑白两色的棋钵都是可见的,当游戏开始后,轮到黑方下棋时,只有黑色的棋钵可见,而白色的棋钵不可见,同理,当只有白色棋钵可见的时候,则表示轮到白方下棋了。棋盘由背景图片和线条组成,背景图片由系统进行加载,而线条则是在

进入游戏界面的同时条用相关函数画出来的。点击开始按钮,进入游戏状态。点

击悔棋按钮可以进行悔棋。在人机对战模式中,玩家点击悔棋按钮就可以进行悔棋;而在人人大战模式中玩家点击悔棋按钮则会弹出一个悔棋提示的对话框来请求另一玩家的同意,如果另一个玩家同意则可以悔棋,否则游戏继续。点击认输按钮,系统将会弹出一个认输的提示框来提示游戏由于一方的认输而结束。点击返回按钮,将会弹出一个返回提示的对话框,点击确定则返回到游戏的欢迎界面,点击取消则继续停留在游戏的主界面。以下为游戏的主界面示意图:

图5 游戏主界面示意图

图6 游戏开始后的界面示意图

4 详细设计

4.1 欢迎界面设计

本设计遵循的是要设计一个操作简明的手机游戏,所以界面一定要方便简洁。所以本设计中的欢迎界面只加载了一个自己制作的五子棋游戏的主题图片,和一个单项选择框用来选择游戏模式,还有一个开始按钮和一个退出按钮,如果玩家没有选择游戏模式就点击了开始按钮,则会弹出请选择游戏模式的提示。点击退出按钮则会弹出退出提示的对话框。游戏界面的主要代码是:

public class WelcomeActivity extends Activity {

TextView modeText;

RadioGroup modeChosing;

RadioButton man_machine,man_man;

Button sure,exit,help;

Dialog dialog;

public int mode;

private static int level;

ChessBoard chessBoard;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/b315476562.html,yout.welcome);

modeText = (TextView) findViewById(R.id.text2);

modeText.setTextColor(Color.BLACK);

modeChosing = (RadioGroup) findViewById(R.id.RadioGroup01);

man_machine= (RadioButton) findViewById(R.id.RadioButton01);

man_man = (RadioButton) findViewById(R.id.RadioButton02);

man_machine.setTextColor(Color.BLACK);

man_man.setTextColor(Color.BLACK);

sure = (Button) findViewById(R.id.button5);

exit = (Button) findViewById(R.id.button6);

modeChosing.setOnCheckedChangeListener(new OnCheckedChangeListener() {

public void onCheckedChanged(RadioGroup group,int checkedId) {

// TODO Auto-generated method stub

mode = checkedId;

}

});

dialog = new

AlertDialog.Builder(WelcomeActivity.this).setTitle("退出提示")// 设置标题

.setMessage("是否退出游戏")// 设置内容

.setPositiveButton("确定",// 设置确定按钮

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int whichButton) {

WelcomeActivity.this.finish();

}

}).setNeutralButton("取消",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int whichButton) {

}

}).create();

// 创建按钮

sure.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if ((mode == man_machine.getId())) {

setLevel(1);

Intent intent = new Intent();

intent.setClass(WelcomeActivity.this,

MainActivity.class);

startActivity(intent);

WelcomeActivity.this.finish();

} else if(mode==man_man.getId()){

setLevel(2);

Intent intent = new Intent();

intent.setClass(WelcomeActivity.this,

MainActivity.class);

startActivity(intent);

WelcomeActivity.this.finish();

}else {

Toast toast=Toast.makeText(WelcomeActivity.this,"请选择游戏模式!", Toast.LENGTH_LONG);

toast.setGravity(Gravity.CENTER, 0, 0);

toast.show();

}

}

});

exit.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

dialog.show();

}

});

}

public static void setLevel(int level) {

WelcomeActivity.level = level;

}

public static int getLevel() {

return level;

}

}

4.2 帮助界面设计

本游戏的帮助界面设计比较简单,只包括五子棋简介,五子棋规则和一个返回按钮,点击返回按钮可以返回到游戏的欢迎界面。以下是帮助界面的主要代码:package gobang.activity;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.view.View.OnClickListener;

public class GameHelp extends Activity{

Button exitButton;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

相关主题
文本预览
相关文档 最新文档