LOGO.指导教师:五子棋蓝牙版小组:组长:组员:项目编写背景项目开发进程项目功能及项目效果所运用的技术、开发工具项目组各成员完成的内容完成项目的情况项目完成后的感想及遇到问题解决后的收获汇报步骤.项目编写背景五子棋是一个适合各个年龄段人的一款益智游戏,android五子棋的程序有很多,但是有蓝牙功能的五子棋几乎没有。蓝牙是一种支持设备短距离通信的无线电技术,成本低。当我们平时无聊时可以打开这个程序和同学、朋友来一次简单的对弈。基于这些情况,我们选择这个有挑战的项目。为什么说有挑战?因为android模拟器不支持蓝牙,开发蓝牙那部分时,费了很多劲,在手机上调试很难发现问题具体出在哪儿。.项目编写背景但是我们始终坚信做出一个支持蓝牙的五子棋是很有必要的。.项目开发进程2012年5月4日:选取项目,对整个项目进行整体构思,并合理安排任务2012年5月5日:进行界面的设计,各个Activity之间的切换,着手GameView的编写。5月6号至5月8号:完成图片的美化及所有界面之间的切换,GameView编写完成能够完成简单的对弈。.项目进程5月9号-5月11号:编写蓝牙功能,实现背景音乐及音效。5月12号-5月13号:完成PPT的制作,再从头实现,补充程序中的不足。.项目功能及项目效果蓝牙模式:人人对战(核心)普通模式:人人对战.打开android五子棋(蓝牙版)进入此界面。a、点击开始:进入模式选择界面。b、点击设置:进入背景音乐及音效的设置。c、点击退出或者是按返回键:会弹出一个询问您是否退出的对话框,确定则退出程序,取消则停在当前页面。项目功能描述及项目效果1、开始界面.模式选择界面。a、点击蓝牙模式:进入蓝牙模式的对弈界面,在模拟器上运行会弹出一个Toast提示当前手机不支持蓝牙。b、点击普通模式:进入普通的人人对战的五子棋对弈界面。c、返回:退回到开始界面。项目功能描述及项目效果2、模式选择.蓝牙模式,刚进入蓝牙模式就弹出权限请求的对话框。a、点击是:打开蓝牙。再点击手机上的菜单键,会弹出一个有两个选项的选项菜单,一个用于连接蓝牙设备,一个用于设置本手机能被其他设备搜索到。b、点击否:会看到提示“蓝牙被禁止,正在退出...”。项目功能描述及项目效果3、蓝牙对弈.点击选项菜单:如果手机上有已经配对的蓝牙设备,会直接显示在ListView中,也可以点击扫描蓝牙设备,搜索新的蓝牙设备,搜到了蓝牙设备点ListView可连接到该设备。项目功能描述及项目效果4、扫描蓝牙设备.音乐音效设置界面。a、点击音乐开:背景音乐开起。b、点击音效开:音效开起c、返回:退回到开始界面。项目功能描述及项目效果5、设置界面.普通模式。a、每结束一局游戏,会更新输赢局数,并提示“点击继续游戏”。b、重玩:清空画布。c、退出:退回到模式开始界面。项目功能描述及项目效果6、普通模式.1、GameView类继承于SurfaceView,实现了五子棋对弈的核心功能。、2、MusicService继承与Service,是背景音乐的服务类。3、BluetoothChessService类接受聊天信息,其中AcceptThread线程类,用于检测其他蓝牙设备的连接。4、DeviceListActivity类,初始化设备列表,将已配对的设备显示在列表中。5、BluetoothChessView是蓝牙五子棋的视图类,与GameView类类似,只是增加了蓝牙功能。项目核心类的功能.在9X9的游戏棋盘中我们把它想象成一个二维数组,黑方下棋子后填充当前点的数组的值1,白方下棋子后填充当点的数组的值2,没有下棋子的点在数组中值为0,黑白双方每走一步,则实际上在给这个二维数组赋值。所以我们根据这个二维数组的值就可以计算出五子连珠,也可以绘制出棋盘上的黑白棋子。玩家点击屏幕后拿到一个屏幕的xy坐标然后除以棋盘每一格的宽高就可以得到在二维数组中的索引根据XY这两个索引就可以知道棋子下在了这个二维数组中的哪里项目核心算法.所运用的技术和开发工具运用的技术:java、android开发工具:Eclipse辅助开发工具:photoshop.项目组的各成员完成的内容XX:组长:对项目的方向有总体把握,合理安排项目任务,与组员之间进行很好的沟通,对组员反应的问题及时解决。程序员:完成项目的蓝牙及五子棋对弈功能,XX1:组员:认真地配合组长,切实的完成组长安排的任务积极的和组长沟通,提出自己意见建议,遇到问题及时解决,解决不了的及时向组长反应并配合组长解决。程序员:添加多个界面,完成各界面设计,完成了多个Activity之间的切换,完成音乐背景及音效功能。.项目完成后的感想及遇到问题解决后的收获感想:这是自己在android培训中所做的第三个项目,也是与同学共同完成的第二个项目,与前一个相比,我们更有默契,分工安排更合理,分工按照我们各自的特点分工使我们这次项目做得事半功倍,没有存在各做各的,我们沟通很好。一个项目最重要的团队合作精神我们具备了。.项目完成后的感想及遇到问题解决后的收获遇到的问题:在做音乐背景时,本来打算用线程(Thread)但是虽然最后实现了播放,但是无法控制结束线程的功能,最后我选择使用了(Mediaplayer+Service),在音效的使用中我们选择了没有接触过的SoundPool,在其他同学的帮助下,经过努力和反复的实践成功了。GameView:在做游戏的主显示界面GameView时,我们用的是二维数组存储黑白子(0:没有棋子,1:白子,2:黑子),然后再根据数组中的内容绘制棋子,开始我们不知道怎么让赋值与绘制同步,到网上查阅了很多资料,最后的解决方法是:将给数组赋值放到onTouchEvent()中,绘制棋子的过程放到一个线程里不停地刷新。.项目完成后的感想及遇到问题解决后的收获蓝牙方面:在两个连接上的设备之间发送和接收消息,我们要发送所点击的坐标对应数组的两个下标,我们是将两个int数转换为字符串发送,接收方将接收到的字符串分离为两个整形数,这样达到解决的目的。收获:从这些遇到的问题及解决的方式来看,我认为我收货最大的就是我们做事情应该站在巨人的肩上,吸取前辈的优点,归纳总结改进来变成自己的东西。积极的去查询资料,在困难中学会的东西会让你记忆深刻。所以我们不能害怕困难,应该面临困难,逆流而上,相信你会觉得你的所有付出是值得的,打败困难后的喜悦是你想象不到的。.致谢Theend谢谢大家