嵌入式WinCE课程设计报告(黑白棋)_第1页
嵌入式WinCE课程设计报告(黑白棋)_第2页
嵌入式WinCE课程设计报告(黑白棋)_第3页
嵌入式WinCE课程设计报告(黑白棋)_第4页
嵌入式WinCE课程设计报告(黑白棋)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、 # # # 嵌入式系统课程设计报告专业:计算机科学与技术班级:09级7班小组成员学号姓名学号姓名汪锦洼林桂妹福建师范大学数学与计算机学院六月二口一二年目录TOC o 1-5 h z HYPERLINK l bookmark6第一章:概述31.1研究动机31.2研究进度31.3专题成果概述3 HYPERLINK l bookmark8第二章:实验平台的构建42.1Wince的烧写42.2MicrosoftActiveSync的同步11 HYPERLINK l bookmark30第三章:系统设计143.1界面要求143.2功能要求14 HYPERLINK l bookmark32第四章:实作完

2、成144.1界面设计144.2代码实现154.3程序调试23 HYPERLINK l bookmark74第五章:所遇问题与解决办法24 HYPERLINK l bookmark76第六章:心得与未来展望246.1心得246.2未来展望25第一章:概述.研1究动机随着网络技术的日新月异和计算机的普及,当今的计算机技术也走上了平民化和娱乐化的时代,计算机技术再也不是只能由少数人掌握的深不可测的学问;同时个人计算机也由原来单纯的数值计算和工业应用逐渐转变成像电视机一样的家庭娱乐中心,伴随着这种巨大的转变计算机软件的发展也走向了娱乐化。尤其是游戏产业的发展已经成为信息产业中发展势头最猛烈最具前景的一

3、个分支,而游戏厅也渐渐被网吧挤出了正常的营业市场,游戏除了单纯的个人娱乐功能之外,也逐渐向互动的方向发展。游戏的功能不断按照玩家的需求和爱好扩展延伸进化,如今运行在各种平台上不同名称,不同内容,不同形式的游戏不仅仅为广大游戏爱好者提供了丰富的选择,而且为游戏开发商带来了丰厚的回报,游戏产业吸引着许多程序员去开发更多更新的游戏。基于游戏发展的历史和前景,我们决定用C#语言开发一款小游戏,游戏内容来自网络上日渐流行的一种智力游戏黑白棋。黑白棋作为一款经典的棋类博弈游戏,经久不衰,具有很强的趣味性,深受广大游戏爱好者的喜爱。那么开放一款基于WinCE的黑白棋游戏,具有很高的实用价值。.研2究目的随着

4、消费类电子产业的蓬勃发展,越来越多的嵌入式电子产品走进了千家万户。各式各样的嵌入式系统出现在了众多的行业和应用中,其中WinCE产品在市场上最受青睐。本课题的黑白棋游戏设计就是基于WinCE平台的。本程序使用面向对象的C#语言,开发于可以运行于WinCE环境下的游戏程序。人机对弈、双人游戏等功能,其中人机对弈包含难度选择和先后手选择。.专3题成果概述黑白棋游戏设计所完成的就是一个游戏软件系统。其一般的功能包括:开始新局,对弈方式选择,先手选择,棋力设置,限时设置,双方子数计数、帮助信息,关于黑白棋的介绍等,要求设计一个黑白棋游戏软件,通过计算机实现各个功能。其具体设计要求为:1、位图的导入和棋

5、盘的生成。2、记录双方对弈时间的计时器与记录双方子数的计数器。3、选择人机对战与人人对战的函数及控制堆栈难度的主函数。 第二章:实验平台的构建 # #的烧写 # #首先,将烧进开发板 # #输入待拨电话的详细信息:国家哋医():电话号码():连接时使用(X):得如下视图: EthernetBootLoaderConfiguration:0)2)3)4)5)6)IPaddress:Subnetmask:Bootdelay:3secondsDHCP:(Disabled)ResettofactorydefaultconfigurationDownloa

6、dnewimageatstartupBootdeviceorder:SMSC-CFProgramSMSCMACaddress核启动existingflashresidentimageno训E新创建一个基于的平台PlatforVizard一Step1XWelcometotheNewPlatformWizardThiswizardguidesyouthroughtheprocessofcreatinganOSdesignforaWindowsCE-basedplatform.AnOSdesigndefinesthecharacteristicsofaWindowsCEOS.Youcancreate

7、anOSdesignbychoosingadesigntemplateandoneormoreboardsupportpackages(BSPs).ABSPincludesanOEMadaptationlayer(OAL)anddevicedrivers.Thiswizardhelpsyou:ChooseaBSP.Chooseadesigntemplate.AdditemstoyourOSdesignorremoveitemsfromit.Tocontinue,clickNext.NevPlatforVizard-Step3BoardSupportPackages(BSPs)ABSPconta

8、insasetofdevicedriversthatareaddedtoyourOSdesign.X阳创灿】刪闊也制副地问血砲n匚EMULATOR:X86匚INTELPXA27XDEVPLATFORM:ARMVI匚SAMSUNGSMDK2410:ARMV4ISelectoneormoreBSPsforyourOSdesign.ABSPfortheEmdoorSystemsXSBase270.TheplatformusestheOSthatisbuiltfortheARMvAarchitectureandcontainstheARMinstructionsetwithThumbInterwork

9、ingenabled.AvailableBSPs: # #XAvailabledesigntemplates:CustomDeviceDigitalMediaReceiverEnterpriseTerminalEnterpriseWebPadGatewayIndustrialControllerInternetApplianceChoosethedesigntemplatethatismostcloselyalignedwiththepurposeofyourtargetdevice.Providesthestartingpointforabrowser-basedconsumerIntern

10、etappliancewithafixeddisplaysuchasaCRTorLCDdisplayandakeyboard.Note:OnlyBSPssupportedbyinstalledCPUsairdispl&ydinth亡list.NevPlatfor*Vizard-Step4DesignTemplateAdesigntemplateisapredefinedselectionofCatalogitems. #IPPhoneMobileHandheldS亡t-T叩BoxTinyKernelWindowsThinClient # # # design. # # #TheInternet

11、standardprotocoLversion6.Items:LocalAreaNetwork(LAN)7WiredLocalAreaNetworkWirelessLocalAreaNetwork(802.11PersonalAreaNetwork(PAN)Bluetooth:IrDARemoteDeskt叩ConnectionAudioplaybackredirectionCut/CopWP&st亡clipboardredirectionFileStorageredirectionRemoteDesktopProtocol(RDP)Serialandparallelportredirecti

12、onSmartCardredirectionii-J=NotalCletoPlatforBuilderStart11File%itViewFrojectPlatformT:过巨etBuildProjectBuildOSToolsWindowHelpGettingStartedVhatsN已典OrdineCommunityResourcesDownloadsSupportHomePl删。回団CEDevice三兀ICatalog+_|BSPs+_ICore0+_IDevice+_IPlatfor白ThirdF自6BSFTouropirYourself新建顶目.NETFramework3.5项目类型

13、(E):模板(D:VisualStudio已安装的模板養的模板,畐搜索联机檯板用于智能设备应用程序的项目在下一对话框中选择目标平台、Framework版本和模板名称:reversi位置(D:C:Documentsand5ettingsAdministrator面空创逹解决方案的目录(囚解决方案名称(ED:reversi喧智能设备项目确定-取消+_jInputDevices+偽EmdoorKEYPADDriver+MainstonellTouch_jNetworking-_jLocalAreaNetworkingLANdevi+EmdoorLAN91Cl11DriverPCCard然后进行编译。

14、istonell(FPGAJPCCARD然后进仃编译。lwi目ISecureDigitalControllerDriver-巳Serial打开:200建项目数据库R.epurtingWCFWorkflrHA1测试VisualC#WindowsWeb智能设备卜Office数据库ReportingWCFWorkflow测试Hi口i.=iI厂亠亠-囲wjfCatalogitems+_|DeviceDrivers-真EmdoorSystemsXSBase270:ARMVI-_jDeviceDrivers-_jDirect3DMobileRX-ScaleDirect3DMobile-_jEmdoorOE

15、MDriver吗EmdoorCANBUSDriver吗EmdoorIDEDriver吗EmdoorLEDDriver吗EmdoorMOTORDriverEmdoorSystemsXSBase270:ARMVIReleasev 打包生成将自己的程序和的安装程序复制到生成内核的目录下,然后在平台5的.添加如下文件Jd:WINCE500-_|CommonFiles_jXSBase270+_|HardwareSpecific-_jProjectSpecificFil雪cesysgen.batproject.bib=1project.dat=1project,db雪project.reg然后点击【再次将

16、自己的程序;UseofthissourcecodeissubjecttothetermsoftheMicrosoF;licenseagreement(EULA)underuhichyoulicensedthisSOFTWARE;IfyoudidnotacceptthetermsoftheEULA,youarenotauthor;thissourcecode.ForacopyoFtheEULA,pleaseseetheLICENS;installmedia.MODULES;NamePathFILES;NamePathreuersi.exeFW.cab$(_FLATRELEASEDIR)reuer

17、si.exeNK-】_FLaRELEASEDirFect的安装程序复制到生成内核的目录下,然后点击【】T【】,接着到目录下找到文件。 # 生成系统在前面配置的超级终端中,选择 # # # #启动() #rom_offset=0 x0.INFO:FlashErase:erasingflashA6600000toA7E3FFFF.Pleasewait.INFO:FiashWrite:writingtoflash.INFO:FiashWrite:verifyingthedatawrittentoflash.ROMHDRatAddress86600044hINFO:FlashErase:erasing

18、flashA6540000toA657FFFF.Pleasewait.INFO:FiashWrite:writingtoflash.INFO:FiashWrite:verifyingthedatawrittentoflash.当写入成功后h开发板会自动重启pr此时就装好了Win系统DoirnloMdsccrosfOf的同步LrgtoviesytCi86601000(physical0 x101000)在中配置网络连接文件(E)编辑(E)查看(址)高级I仝慎丨戸7=雇|凰41新逹连接我的连接LAN9U0U1新建连接键入连揺名称(I):选择连接类型僚.:O拨号连接)直緩连緩Q)O虚拟专用网络(PP

19、TP)(址)O虚拟专用网貉(L2TP)O以太网上的PPPPPPoEj(P) # # # #网络连接 设备3区设备n手动摆铐(用户提洪拨号由匚拨号前使用缓喘窗口(E)停止位饥)无O控制面板设备属性我的连接选择设备(呈):coms:-我的连接显性设备属性我的连接属性端口设置|拨号选项文件(E编辑(场:查看蟹)高甄迥)文件編辑(旦查看泌)高甄迥)xW|7|iff|厂拨号后使用终疏窗口邑)连接首选项波特率迫)数据位)奇偶校验(巳.流控制(E)配置鲨:网络连接Tgip遇置安全设置(E)|凰弘新逹连接我的连接新逹连接我的连接119200!0i无匚LAN91C111Ethernet*设置EQQIIP地址名称

20、服务器IP地址可以自动分配给本计算O通过DHCP菽得IP地址Q)机.如果您所在的网络不能自动分配IP地址,谙向网络管理员申谙一于地址,然后将该地址键入给定的空格内.劇指定一亍ip地址(3:ip地址(包):192.16S.0.57子网掩码心):默认网关(旦):192.16S.0.123:ie第三章:系统设计.1界面要求/菜单栏;/子数计数器;/棋盘设计。.2功能要求/选择人机对战;/选择双人对战;/选择初级、中级、高级难度;/认输功能;/黑白子数统计;/游戏帮助;/退出游戏。第四章:实作完成.界1面设计 #4.代2码实现usingSystem;namespaceReve

21、rsipublicclassBoardpublicstaticreadonlyintBlack=-1;publicstaticreadonlyintEmpty=0;publicstaticreadonlyintWhite=1;publicintBlackCountgetreturnthis.blackCount;publicintWhiteCountgetreturnthis.whiteCount;publicintEmptyCountgetreturnthis.emptyCount;publicintBlackFrontierCountgetreturnthis.blackFrontierC

22、ount;publicintWhiteFrontierCountgetreturnthis.whiteFrontierCount;publicintBlackSafeCountgetreturnthis.blackSafeCount;publicintWhiteSafeCountgetreturnthis.whiteSafeCount;privateintblackCount;privateintwhiteCount;privateintemptyCount;privateintblackFrontierCount;privateintwhiteFrontierCount; # private

23、intblackSafeCount;privateintwhiteSafeCount;privateint,squares;privatebool,safeDiscs;publicBoard()this.squares=newint8,8;this.safeDiscs=newbool8,8;inti,j;for(i=0;i8;i+)for(j=0;j8;j+)this.squaresi,j=Board.Empty;this.safeDiscsi,j=false;this.UpdateCounts();publicBoard(Boardboard)this.squares=newint8,8;t

24、his.safeDiscs=newbool8,8;inti,j;for(i=0;i8;i+)for(j=0;j8;j+)this.squaresi,j=board.squaresi,j;this.safeDiscsi,j=board.safeDiscsi,j;this.blackCount=board.blackCount;this.whiteCount=board.whiteCount;this.emptyCount=board.emptyCount;this.blackSafeCount=board.blackSafeCount;this.whiteSafeCount=board.whit

25、eSafeCount;publicvoidSetForNewGame()inti,j;for(i=0;i8;i+) #for(j=0;j8;j+)this.squaresi,j=Board.Empty;this.safeDiscsi,j=false;this.squares3,3=White;this.squares3,4=Black;this.squares4,3=Black;this.squares4,4=White;this.UpdateCounts();publicintGetSquareContents(introw,intcol)returnthis.squaresrow,col;

26、publicvoidMakeMove(intcolor,introw,intcol)this.squaresrow,col=color;intdr,dc;intr,c;for(dr=-1;dr=1;dr+)for(dc=-1;dc=1;dc+)if(!(dr=0&dc=0)&IsOutflanking(color,row,col,dr,dc)r=row+dr;c=col+dc;/Flipem.while(this.squaresr,c=-color)this.squaresr,c=color;r+=dr;c+=dc;this.UpdateCounts();publicboolHasAnyVal

27、idMove(intcolor)intr,c;for(r=0;r8;r+) # for(c=0;c8;c+)if(this.IsValidMove(color,r,c)returntrue;returnfalse;publicboolIsValidMove(intcolor,introw,intcol)if(this.squaresrow,col!=Board.Empty)returnfalse;intdr,dc;for(dr=-1;dr=1;dr+)for(dc=-1;dc=1;dc+)if(!(dr=0&dc=0)&this.IsOutflanking(color,row,col,dr,d

28、c)returntrue;returnfalse;publicintGetValidMoveCount(intcolor)intn=0;inti,j;for(i=0;i8;i+)for(j=0;j=0&r=0&c8&this.squaresr,c=-color)r+=dr;c+=dc;if(r7|c7|(r-dr=row&c-dc=col)|this.squaresr,c!=color)returnfalse; #/Otherwise,returntrue;returntrue;privatevoidUpdateCounts()/Resetallcounts.TOC o 1-5 h zthis

29、.blackCount=0;this.whiteCount=0;this.emptyCount=0;this.blackFrontierCount=0;this.whiteFrontierCount=0;this.whiteSafeCount=0;this.blackSafeCount=0;inti,j;boolstatusChanged=true;while(statusChanged)statusChanged=false;for(i=0;i8;i+)for(j=0;j8;j+)if(this.squaresi,j!=Board.Empty&!this.safeDiscsi,j&!this

30、.IsOutflankable(i,j)this.safeDiscsi,j=true;statusChanged=true;intdr,dc;for(i=0;i8;i+)for(j=0;j8;j+)boolisFrontier=false;if(this.squaresi,j!=Board.Empty)for(dr=-1;dr=1;dr+)for(dc=-1;dc=0&i+dr=0&j+dc8&this.squaresi+dr,j+dc=Board.Empty)isFrontier=true;if(this.squaresi,j=Board.Black)this.blackCount+; #

31、if(isFrontier)this.blackFrontierCount+;if(this.safeDiscsi,j)this.blackSafeCount+;elseif(this.squaresi,j=Board.White)this.whiteCount+;if(isFrontier)this.whiteFrontierCount+;if(this.safeDiscsi,j)this.whiteSafeCount+;elsethis.emptyCount+;privateboolIsOutflankable(introw,intcol)intcolor=this.squaresrow,

32、col;inti,j;boolhasSpaceSide1,hasSpaceSide2;boolhasUnsafeSide1,hasUnsafeSide2;hasSpaceSide1=false;hasUnsafeSide1=false;hasSpaceSide2=false;hasUnsafeSide2=false;for(j=0;jcol&!hasSpaceSide1;j+)if(this.squaresrow,j=Board.Empty)hasSpaceSide1=true;elseif(this.squaresrow,j!=color|!this.safeDiscsrow,j)hasUn

33、safeSide1=true;for(j=col+1;j8&!hasSpaceSide2;j+)if(this.squaresrow,j=Board.Empty)hasSpaceSide2=true;elseif(this.squaresrow,j!=color|!this.safeDiscsrow,j)hasUnsafeSide2=true;if(hasSpaceSide1&hasSpaceSide2)|(hasSpaceSide1&hasUnsafeSide2)|(hasUnsafeSide1&hasSpaceSide2)returntrue;hasSpaceSide1=false;has

34、SpaceSide2=false;hasUnsafeSide1=false; hasUnsafeSide2=false;for(i=0;irow&!hasSpaceSide1;i+)if(this.squaresi,col=Board.Empty)hasSpaceSide1=true;elseif(this.squaresi,col!=color|!this.safeDiscsi,col)hasUnsafeSide1=true;for(i=row+1;i=0&j=0&!hasSpaceSide1)if(this.squaresi,j=Board.Empty)hasSpaceSide1=true

35、;elseif(this.squaresi,j!=color|!this.safeDiscsi,j)hasUnsafeSide1=true;i-;j-;i=row+1;j=col+1;while(i8&j=0&j8&!hasSpaceSide1)if(this.squaresi,j=Board.Empty)hasSpaceSide1=true;elseif(this.squaresi,j!=color|!this.safeDiscsi,j)hasUnsafeSide1=true;i-;j+;i=row+1;j=col-1;while(i=0&!hasSpaceSide2)if(this.squaresi,j=Board.Empty)hasSpaceSide2=true;elseif(this.squaresi,j!=color|!this.safeDiscsi,

温馨提示

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

最新文档

评论

0/150

提交评论