贪吃蛇需求规格使用说明

合集下载

贪吃蛇设计文档.doc

贪吃蛇设计文档.doc

贪吃蛇游戏的设计文档目录一、需求分析 ................................................. 错误 ! 未定义书签。

1.功能需求 . .............................................. 错误 ! 未定义书签。

2.非功能需求错误 ! 未定义书签。

. ............................................二、系统设计 ................................................. 错误 ! 未定义书签。

1. 实际思路 . ............................................... 错误 ! 未定义书签。

2,结构设计 . .............................................. 错误 ! 未定义书签。

(1), main(), 主函数; . ................................ 错误 ! 未定义书签。

(2), init() , 图形化驱动函数 . ......................... 错误 ! 未定义书签。

(3), help(), 帮助信息函数 . ............................ 错误 ! 未定义书签。

(4), drawfence(), 周围墙壁函数 . ....................... 错误 ! 未定义书签。

(5), printscore(), 得分显示函数 . ...................... 错误 ! 未定义书签。

(6), playgame(), 游戏控制函数 . ........................ 错误 ! 未定义书签。

(7), gameover(), 游戏结束函数 . ........................ 错误 ! 未定义书签。

_贪吃蛇游戏_说明书

_贪吃蛇游戏_说明书

湖南工业大学课程设计任务书2012 — 2013 学年第一学期计算机与通信学院学院(系、部)通信工程专业班级姓名学号课程名称:面向对象程序设计设计题目:贪吃蛇游戏完成期限:自2013 年 1 月7 日至2013 年 1 月13 日共 1 周内容及任务一、设计的主要技术参数(1) 游戏中共有贪吃蛇的长度和走向;(2) 随机生成食物(3) 通过响应定时器来实时更新。

二、设计任务(内容)(1) 随机生成贪吃蛇和食物;(2) 控制贪吃蛇的走动;(3) 食物消除判定,已经碰壁判定。

三、设计工作量一周进度安排起止日期工作内容1月7日-1月7日综合我们所学的知识,讨论设计的课题,制定用户需求。

1月8日-1月8日针对用户需求进行组员间的分工。

进一步熟悉自己的模块。

1月8日-1月12日一起完成开发,查找可能的漏洞,修改程序,直至完成程序。

1月13日-1月13日完成设计文档和课程设计说明书。

主要参考资料1.谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.2. Visual C++从入门到精通[M].北京:人民邮电出版社,2010指导教师(签字):年月日系(教研室)主任(签字):年月日面向对象程序设计设计说明书贪吃蛇游戏起止日期:2013 年1 月7 日至2013 年1 月13 日学生姓名班级学号成绩指导教师(签字)计算机与通信学院2013年1 月13日目录一、需求分析 (4)1.1、选题 (4)1.2、功能 (4)1.3、重要的MFC (4)二、概要设计 (4)2.1、设计思路 (4)2.2、程序框图 (5)三、详细设计 (6)四、调试分析 (8)五、用户使用说明 (8)六、测试结果 (9)七、附录或参考资料 (10)一、需求分析1.1、选题接到课程设计任务后,我们对曾经非常感兴趣的几款经典小游戏作了分析并筛选,然后发现使用MFC类库都可以完成这些游戏的编译,但是我们刚刚学习,还不能完全掌握MFC类的使用和复杂的算法,但是我们相信通过一个简单的贪吃蛇游戏可以让我们对MFC得到充分的锻炼。

贪吃蛇需求规格说明书

贪吃蛇需求规格说明书

贪吃蛇需求规格说明书开发小组成员:目录一.引言-----------------------------------------------------------------------------------------------31.1编写目的-----------------------------------------------------------------------------------31.2编写原则-----------------------------------------------------------------------------------31.3参考资料-----------------------------------------------------------------------------------31.4适用范围-----------------------------------------------------------------------------------3 二.系统概述----------------------------------------------------------------------------------------32.1业务背景-----------------------------------------------------------------------------------32.2用户类别与特征-------------------------------------------------------------------------32.3用户文档-----------------------------------------------------------------------------------42.4设计和实现上的限制-------------------------------------------------------------------42.5运行环境-----------------------------------------------------------------------------------4 三.功能需求----------------------------------------------------------------------------------------43.1系统用例图--------------------------------------------------------------------------------43.2项目名称-----------------------------------------------------------------------------------4 四.非功能需求-------------------------------------------------------------------------------------64.1系统质量要求-----------------------------------------------------------------------------64.2安全性需求--------------------------------------------------------------------------------74.3环境需求-----------------------------------------------------------------------------------74.4保密性和私密性的需求---------------------------------------------------------------74.5其他需求----------------------------------------------------------------------------------7 五.外部接口需求---------------------------------------------------------------------------------85.1用户界面----------------------------------------------------------------------------------85.2硬件接口----------------------------------------------------------------------------------95.3软件接口----------------------------------------------------------------------------------9一、引言软件需求规格说明书记录系统或系统一部分完整软件需求。

贪吃蛇游戏的说明

贪吃蛇游戏的说明

贪吃蛇游戏说明一、游戏简介主要功能:(1)通过游戏设置的等级设置进入游戏,在游戏过程中可以选择速度快慢程度来选择游戏的难易度。

(2)可以选择有边界阻碍和无边界阻碍的。

界面功能:(3)游戏的的窗口菜单是自定义的,简单设计了几个菜单项,方便选择开始游戏,离开游戏,速度快慢,有无边界。

(4)在游戏界面的右下方有一个显示当前的得分情况,方便便用户来了解自己的战绩。

操作功能:其中游戏的主操作键是↓↑→←。

不仅可以通过菜单来进行操作,还可以通过快捷键开操作(crtrl+N --- New Game,ctrl+Q--- Exit)二、实现步骤1、设置30×40的界面和颜色,设置控制台窗口标题,然后自定义菜单2、设置一些主要的功能,游戏的开始,离开,难易度和有无墙壁(代码参考)3、设置蛇和豆子的位置大小和颜色4、在设置时考虑蛇移动的方向,通过在蛇头没有撞到自身和边界的前提下,判断蛇是否吃到食物,若吃到了食物,则需要将吃到的食物作为蛇头,否则需要在原来蛇头的下一个坐标作为蛇头,而蛇尾需要被去除,同时加分。

三、游戏截图(无墙壁)(有墙壁)四、代码(其中标记的地方是参考的)function snake(cmd)global SNAKE WALL LEVEL BOARD DIRECTION RUNNING FOOD BONUS PAUSEif ~nargincmd = 'init';endif ~(ischar(cmd)||isscalar(cmd))return;endswitch cmdcase'init'scrsz = get(0,'ScreenSize');f = figure('Name','Snake',...'Numbertitle','off',...'Menubar','none',...'Color',[.95 .95 .95],...'DoubleBuffer','on',...'Position',[(scrsz(3)-400)/2 (scrsz(4)-300)/2 400 300],...'Colormap',[.1 .71 0;.3 .4 .4;0 0 0;1 1 0],...'CloseRequestFcn',sprintf('%s(''Stop'');closereq;',mfilename),...'KeyPressFcn',sprintf('%s(double(get(gcbf,''Currentcharacter'')))',mf ilename));FileMenu = uimenu(f,'Label','&File');uimenu(FileMenu,'Label','NewGame','Accelerator','N','Callback',sprintf('%s(''NewGame'')',mfilenam e));uimenu(FileMenu,'Label','Exit','Accelerator','Q','Separator','on','Ca llback',sprintf('%s(''Stop'');closereq',mfilename));LevelMenu = uimenu(f,'Label','&Level');uimenu(LevelMenu,'Label','1','Callback',sprintf('%s(''Level'')',mfile name))uimenu(LevelMenu,'Label','2','Callback',sprintf('%s(''Level'')',mfile name))uimenu(LevelMenu,'Label','3','Callback',sprintf('%s(''Level'')',mfile name))uimenu(LevelMenu,'Label','4','Callback',sprintf('%s(''Level'')',mfile name),'checked','on')uimenu(LevelMenu,'Label','5','Callback',sprintf('%s(''Level'')',mfile name))WallMenu = uimenu(f,'Label','&Wall');uimenu(WallMenu,'Label','Nowall','Callback',sprintf('%s(''Wall'')',mfilename),'checked','on')uimenu(WallMenu,'Label','Wall','Callback',sprintf('%s(''Wall'')',mfil ename))% Create The axesaxes('Units','normalized',...'Position', [0 0 1 1],...'Visible','off',...'DrawMode','fast',...'NextPlot','replace');% Add the boardBOARD = image(getTitle,'CDataMapping','scaled');axis imageset(gca,...'XTick',NaN,...'YTick',NaN)text(40,30,'0',...'FontUnits','normalized', ...'FontSize',0.03, ...'FontName','FixedWidth',...'FontWeight','bold',...'Color',[1 1 1],...'VerticalAlignment','baseline', ...'HorizontalAlignment','right',...'Tag','Score');SNAKE = [14,20;14,19;14,18;14,17;14,16];WALL = zeros(30,40);LEVEL = 4;case 28 % leftif SNAKE(2,2)~=mod(SNAKE(1,2)-2,40)+1DIRECTION = cmd;endcase 29 % rightif SNAKE(2,2)~=mod(SNAKE(1,2),40)+1DIRECTION = cmd;endcase 30 % upif SNAKE(2,1)~=mod(SNAKE(1,1)-2,30)+1DIRECTION = cmd;endcase 31 % downif SNAKE(2,1)~=mod(SNAKE(1,1),30)+1DIRECTION = cmd;endcase'Level'% Change of Levelset(get(get(gcbo,'Parent'),'Children'),'checked','off') set(gcbo,'checked','on')LEVEL = length(get(gcbo,'Label'));case'Wall'% Change of Wallset(get(get(gcbo,'Parent'),'Children'),'checked','off') set(gcbo,'checked','on')WALL = zeros(30,40);switch get(gcbo,'Label')case'No wall'case'Wall'WALL([1 30],:) = 1;WALL(:,[1 40]) = 1;endfeval(mfilename,'Stop')case'ShowScore'% Change of Show Scoreswitch get(gcbo,'checked')case'on'set(gcbo,'checked','off')set(findobj(gcbf,'Tag','Score'),'Visible','off') case'off'set(gcbo,'checked','on')set(findobj(gcbf,'Tag','Score'),'Visible','on') endcase'NewGame'set(findobj(gcbf,'Tag','Score'),'String','0')SNAKE = [14,20;14,19;14,18;14,17;14,16];DIRECTION = 29; % rightBONUS = 0;PAUSE = false;feval(mfilename,'Food')feval(mfilename,'Start')case'Start'% Start GameRUNNING = true;bonusCounter = 0;foodCounter = 0;while(RUNNING)if ~PAUSESNAKE = circshift(SNAKE,1);SNAKE(1,:) = SNAKE(2,:);switch DIRECTIONcase 28 % leftSNAKE(1,2) = mod(SNAKE(1,2)-2,40)+1;case 29 % rightSNAKE(1,2) = mod(SNAKE(1,2),40)+1;case 30 % upSNAKE(1,1) = mod(SNAKE(1,1)-2,30)+1;case 31 % downSNAKE(1,1) = mod(SNAKE(1,1),30)+1;end% Check if snake hits any barrierif WALL(SNAKE(1,1),SNAKE(1,2)) || ...sum(ismember(SNAKE(2:end,1),SNAKE(1,1))+... ismember(SNAKE(2:end,2),SNAKE(1,2))==2)pause(.3)delete(findobj(gcbf,'Tag','Bonus'))feval(mfilename,'Stop')set(BOARD,'CData',getGameOver)else% Check if snake eats bonusif isequal(SNAKE(1,:),BONUS)% Update scorescorehandle = findobj(gcbf,'Tag','Score'); set(scorehandle,'String',...num2str(LEVEL*ceil(bonusCounter/3)+... str2double(get(scorehandle,'String')))) bonusCounter = 1;endif BONUSbonusCounter = bonusCounter-1;if bonusCounter<=0delete(findobj(gcbf,'Tag','Bonus'))BONUS = 0;endend% Check if snake eats foodif isequal(SNAKE(1,:),FOOD)% Snake Grows!SNAKE(end+1,:) = SNAKE(end,:);% Update scorescorehandle = findobj(gcbf,'Tag','Score'); set(scorehandle,'String',...num2str(LEVEL+str2double(get(scorehandle,'String'))))% Spawn new foodfeval(mfilename,'Food')if ~BONUS % only update if no bonus existbonusCounter = bonusCounter+15;foodCounter = foodCounter+1;endif foodCounter==4 % Spawn new bonus every fourth Food feval(mfilename,'Bonus')foodCounter = 0;endendfeval(mfilename,'DrawBoard')endendpause(.3/LEVEL)endcase {112 32} % Pause GamePAUSE=~PAUSE;if PAUSE && RUNNINGset(BOARD,'CData',getPause)endcase'Stop'% Stop GameRUNNING = false;set(BOARD,'CData',getTitle)case'Food'% Put food onto game boardCData = WALL;for i=1:size(SNAKE,1)CData(SNAKE(i,1),SNAKE(i,2)) = 1;endind = find(CData'==0);ind = ind(ceil(rand*length(ind)));FOOD = [ceil(ind/40) mod(ind-1,40)+1];case'Bonus'% Put bonus onto game boarddelete(findobj(gcbf,'Tag','Bonus'))CData = WALL;for i=1:size(SNAKE,1)CData(SNAKE(i,1),SNAKE(i,2)) = 1;endCData(FOOD(1,1),FOOD(1,2)) = 1;ind = find(CData'==0);ind = ind(ceil(rand*length(ind)));BONUS = [ceil(ind/40) mod(ind-1,40)+1];text(BONUS(2),BONUS(1),'\heartsuit',...'Color',[1 0 0],...'FontUnits','normalized',...'FontSize',.065,...'HorizontalAlignment','Center',...'VerticalAlignment','Middle',...'Tag','Bonus')case'DrawBoard'% Draw the Game BoardCData = WALL;for i=1:size(SNAKE,1)CData(SNAKE(i,1),SNAKE(i,2)) = 2;endCData(FOOD(1),FOOD(2)) = 4;set(BOARD,'CData',CData)endfunction [ico,map]=getIcon()% create simple icon matrixico = ones(13)*3;ico(:,1:4:13) = 1;ico(1:4:13,:) = 1;ico(6:8,6:8) = 2;ico(6:8,10:12) = 2;ico(10:12,10:12) = 2;map = [0 0 0;.5 .5 .6;[148 182 166]/255;];function title = getTitle()title = zeros(30,40);title([42 43 47 48 72 73 77 78 104 105 106 107 108 134 135 136 137 138 ... 164 165 166 167 168 222 223 224 225 226 227 228 252 253 254 255 256 ... 257 258 282 283 312 313 344 345 346 347 348 374 375 376 377 378 404 ... 405 406 407 408 464 465 466 494 495 496 522 523 527 528 552 553 557 ... 558 582 583 587 588 612 613 614 615 616 617 618 642 643 644 645 646 ... 647 648 672 673 674 675 676 677 678 727 728 729 730 731 732 733 734 ... 735 736 737 738 757 758 759 760 761 762 763 764 765 766 767 768 787 ... 788 789 790 791 792 793 794 795 796 797 798 824 825 826 854 855 856 ... 882 883 887 888 912 913 917 918 972 973 974 975 976 977 978 1002 ... 1003 1004 1005 1006 1007 1008 1032 1033 1037 1038 1062 1063 1067 ... 1068 1092 1093 1097 1098 1122 1123 1124 1125 1126 1152 1153 1154 ... 1155 1156]) = 3;function gameover = getGameOver()gameover = zeros(30,40);gameover([95 96 97 98 99 100 101 102 103 104 109 110 111 112 113 114 ... 125 126 127 128 129 130 131 132 133 134 139 140 141 142 143 144 155 ... 156 163 164 167 168 175 176 185 186 193 194 197 198 205 206 215 216 ... 219 220 221 222 223 224 229 230 231 232 233 234 245 246 249 250 251 ...252 253 254 259 260 261 262 263 264 335 336 337 338 339 340 341 342 ... 343 344 347 348 349 350 351 352 353 354 365 366 367 368 369 370 371 ... 372 373 374 377 378 379 380 381 382 383 384 395 396 399 400 415 416 ... 425 426 429 430 445 446 455 456 457 458 459 460 461 462 463 464 467 ... 468 469 470 471 472 473 474 485 486 487 488 489 490 491 492 493 494 ... 497 498 499 500 501 502 503 504 575 576 577 578 579 580 581 582 583 ... 584 587 588 589 590 591 592 593 594 595 596 605 606 607 608 609 610 ... 611 612 613 614 617 618 619 620 621 622 623 624 625 626 635 636 647 ... 648 651 652 655 656 665 666 677 678 681 682 685 686 695 696 697 698 ... 699 700 701 702 703 704 707 708 711 712 715 716 725 726 727 728 729 ... 730 731 732 733 734 737 738 741 742 745 746 755 756 785 786 817 818 ... 819 820 821 822 823 824 827 828 829 830 831 832 833 834 835 836 847 ... 848 849 850 851 852 853 854 857 858 859 860 861 862 863 864 865 866 ... 887 888 891 892 917 918 921 922 935 936 937 938 939 940 941 942 943 ... 944 949 950 953 954 955 956 965 966 967 968 969 970 971 972 973 974 ... 979 980 983 984 985 986 995 996 999 1000 1003 1004 1025 1026 1029 ... 1030 1033 1034 1055 1056 1059 1060 1063 1064 1067 1068 1069 1070 ... 1071 1072 1075 1076 1085 1086 1093 1094 1097 1098 1099 1100 1101 ... 1102 1105 1106]) = 1;function pause = getPause()pause = zeros(30,40);pause([41 42 43 44 45 46 47 48 49 50 71 72 73 74 75 76 77 78 79 80 101 ... 102 103 104 105 106 107 108 109 110 131 132 136 137 161 162 166 167 ... 193 194 195 223 224 225 283 284 285 313 314 315 341 342 346 347 371 ... 372 376 377 401 402 406 407 431 432 433 434 435 436 437 461 462 463 ... 464 465 466 467 491 492 493 494 495 496 497 551 552 553 554 555 556 ... 581 582 583 584 585 586 616 617 646 647 671 672 673 674 675 676 677 ... 701 702 703 704 705 706 707 731 732 733 734 735 736 737 791 792 796 ... 797 821 822 826 827 853 854 855 856 857 883 884 885 886 887 913 914 ... 915 916 917 971 972 973 974 975 976 977 1001 1002 1003 1004 1005 ... 1006 1007 1031 1032 1036 1037 1061 1062 1066 1067 1091 1092 1096 ... 1097 1121 1122 1123 1124 1125 1151 1152 1153 1154 1155]) = 1;。

贪吃蛇游戏程序的设计说明

贪吃蛇游戏程序的设计说明

测控技术与仪器专业课程设计题单班级0982011 学生某某课程名称计算机课程设计课题贪吃蛇游戏程序设计设计要求 1.学习游戏设计有关知识。

2.设计贪吃蛇游戏程序。

3.调试并修改程序。

4.完成课程设计论文。

课题发给日期2011年6月25日课程设计完成日期2011年7月09日指导教师余某某评语:贪吃蛇游戏学生:某某班级:0882011指导老师:余某某摘要:编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙,在围墙随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

作为一个完整的程序,必须考虑人机交流与用户体验。

游戏的界面不能太丑,更不能连个简单的界面都没有。

游戏应该有个比较漂亮的界面,在有必要硬件支持和软件的支持下,游戏开发者必须最大限度的使游戏美观。

游戏的美观是一方面,游戏的在素质是另一方面。

一个游戏的优劣,最终由玩家决定。

在游戏与玩家见面之前,游戏开发者要设计一种让玩家投入的游戏模式,并且在一定的游戏规则下进行。

关键词:贪吃蛇流程图c语言源程序目录1 前言 (1)2 课设容 (3)2.1课设目的 (3)2.2设计功能 (3)2.3结构设计 (7)3结论 (11)参考文献 (15)附录A (16)1 前言C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。

作为一位当代的大学生更要很好的利用它,学好一门设计语言,实现学以至用。

制作C程序报告,可以巩固和加深自己对C语言课程的基本知识的理解和掌握,并且能够掌握C语言编程和程序调试的基本技能。

贪吃蛇小游戏

贪吃蛇小游戏

贪吃蛇小游戏贪吃蛇是一款非常经典的小游戏,目标是控制一条蛇在屏幕上移动,并吃掉尽可能多的食物,同时避免碰到墙壁或自己的身体。

游戏的规则和玩法如下:目标:控制蛇移动,尽可能多地吃到食物,直到蛇的身体变得足够长,或者碰到了障碍物结束游戏。

规则:1. 蛇的身体由一系列相连的方块组成,初始长度为1个方块。

2. 在游戏开始时,一些食物会随机出现在屏幕上。

3. 玩家需要控制蛇的移动,通过吃掉食物来增加蛇的长度。

4. 蛇的移动方向由玩家控制,可以使用方向键或手指滑动屏幕来控制蛇的方向。

5. 如果蛇碰到了墙壁或自己的身体,游戏结束。

6. 当蛇吃掉食物时,分数会增加,同时蛇的身体会变长。

7. 食物会在蛇吃掉后重新随机生成在屏幕上。

8. 玩家可以在游戏结束后选择重新开始或退出游戏。

玩法:1. 控制蛇的移动方向,使其移动到食物的位置,吃掉食物。

2. 当蛇吃掉食物后,蛇的身体会变长,而且速度也会加快。

3. 玩家需要注意蛇的身体,避免碰到自己的身体或墙壁。

4. 玩家可以使用不同的策略,例如在蛇的身体周围留出一些空间,或者追逐食物的最短路径。

5. 在游戏过程中,玩家需要注意蛇的长度和速度,以便更好地控制蛇的移动方向。

术语和技巧:1. 食物:游戏中的目标,玩家需要控制蛇移动到食物的位置,吃掉食物来增加分数和蛇的长度。

2. 蛇的身体:由一系列相连的方块组成,初始长度为1个方块,吃掉食物后会变长。

3. 移动方向:玩家可以使用方向键或手指滑动屏幕来控制蛇的移动方向。

4. 碰撞检测:当蛇碰到墙壁或自己的身体时,游戏结束。

5. 策略:玩家可以使用不同的策略来控制蛇的移动方向,例如在蛇的身体周围留出一些空间,或者追逐食物的最短路径。

6. 长度和速度:随着蛇的长度增加和速度加快,玩家需要更好地控制蛇的移动方向,避免碰到自己的身体或墙壁。

总结:贪吃蛇是一款简单而有趣的小游戏,玩家需要控制蛇的移动方向,吃掉尽可能多的食物,同时避免碰到墙壁或自己的身体。

贪吃蛇游戏-概要设计

贪吃蛇游戏-概要设计

《项目名称》概要设计说明书2010-01目录1 概述 (1)1.1 编写目的 (1)2 需求概述 (1)2.1 目标与需求 (1)2.2 环境描述 (1)3 总体设计 (1)3.1 总体解决方案 (1)3.1.1 软件体系结构 (1)3.1.1.1显示层类图 (2)3.1.1.2控制层类图 (2)3.1.1.3业务层类图 (2)3.1.1.4实体层类图 (2)3.1.2控制层顺序图 (3)3.1.3显示层顺序图 (4)4 接口设计 (4)4.1 内部接口设计 (4)1 概述1.1 编写目的本文档的编写目的是:详细定义贪吃蛇游戏的总体功能;给出系统的结构设计,作为过程设计和程序编写的依据。

2需求概述2.1 目标与需求在游戏中,玩家操控一条蛇,它会不停前进,玩家只能操控蛇的头部朝向(上下左右),吃掉食物,并要避免触碰到自身或者墙壁。

每次贪食蛇吃掉一件食物,它的身体便增长一些,蛇的身体越长,游戏得分越高,直到蛇碰到墙壁或者自身时候,游戏结束。

2.2 环境描述jre1.5版本或以上Windows xp3 总体设计3.1 总体解决方案设计贪吃蛇时采用面向对象的设计方法。

3.1.1 软件体系结构整个贪吃蛇游戏由显示层、控制层、业务层、实体层组成。

软件体系结构图如下。

图1软件体系结构图显示层:将蛇、食物、墙通过加载相应的图片形式化显示出来。

控制层:接收键盘事件,调用相关事件处理方法,以及计算游戏分数等方法实体层:包含蛇、食物、墙数据(坐标,长度等)业务层:具体的事件处理方法,以及对实体层数据进行更新的具体方法以下为各层的核心类。

3.1.1.1显示层类图parse图2显示层类图显示层只有一个边界类parse。

3.1.1.2控制层类图mainProcess图3控制层类图控制层只有一个mainProcess一个控制类。

3.1.1.3业务层类图keyPressed图4业务层类图业务层只有一个类keyPressed。

3.1.1.4实体层类图图5实体层类图包含Food、Snake和Wall 3个实体类。

手机游戏模拟器之贪吃蛇游戏项目要求书(ARM环境)

手机游戏模拟器之贪吃蛇游戏项目要求书(ARM环境)

修改履历目录1 项目概要 (4)1.1 项目名称 (4)1.2 项目要求 (4)1.3 功能描述 (4)1.4 项目目标 (4)1.5 开发环境 (5)1.6 关键技术 (5)1.7 开发体制 (5)1.8 开发阶段 (6)2 系统结构图 (6)2.1 系统结构图 (6)2.2 游戏界面 (7)3 动作要求 (7)3.1 键盘动作 (7)3.2 游戏动作 (7)4 显示要求 (8)4.1 游戏信息界面显示 (8)4.2 游戏图形界面显示 (8)5 项目设计 (8)5.1 设计框架 (8)5.2 模块要求 (9)6 设计思路 (9)6.1 设计思路 (9)6.2 数据结构 (9)7 设计要求 (10)1项目概要1.1项目名称手机游戏模拟器之Greedy Snake1.2项目要求编写C语言程序实现Greedy Snake游戏,Greedy Snake游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内(随机)出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计1分;接着又出现食物,等待被蛇吃掉。

食物被吃掉2次后,游戏难度增加1级,蛇移动的速度变快。

如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体)游戏结束。

1.3功能描述Greedy Snake游戏功能1)按键控制上、下、左、右四个方向;2)在字符显示屏上显示游戏信息,包括游戏时间、游戏分数、游戏等级;3)在图形显示屏上显示游戏界面,包括游戏名称、游戏活动区域、蛇身及其食物;4)实现蛇铺食过程,并相应的改变游戏信息。

注1:自行设计游戏界面及游戏等级,游戏等级可以通过提高蛇移动的速度或增加墙壁的数量来实现,(要求至少通过提高蛇移动的速度来增加游戏难度)。

注2:原理图上对应的模块:LCD1:显示游戏信息。

LCD2:显示游戏界面及游戏过程。

KP1 :四个方向键。

1.4项目目标1)掌握嵌入式开发流程;2)了解嵌入式开发必备知识;3)掌握uC-OS II操作系统;4)熟练应用C语言,学习嵌入式调试手法;5)培养快速学习新的知识,并在项目中使用的能力。

贪吃蛇详细设计说明书

贪吃蛇详细设计说明书

贪吃蛇_详细设计说明书编写人:完成日期:X年X月X日文档名称:详细设计规格说明书1项目名称:贪吃蛇游戏项目负责人:XXX XXX编写 TEST __X___年_X_月___X_日校对所有小组成员 __2015___年___6__月___13_日审核所有小组成员 ____2015_年___6__月___13_日批准 XXX _2015____年___6__月___14__日开发单位 __XXX班_____组员: XXX XXX目录1.引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (2)1.4参考资料 (3)2.系统的结构 (4)2.1 每个模块的名称、标识符如下所示: (4)2.2模块之间的关系: (5)3.模块1(标识符)设计说明 (6)3.1模块描述 (6)3.2功能 (7)3.3性能 (7)3.4输入项 (8)3.5输出项 (8)3.6设计方法(算法) (8)3.7流程逻辑 (11)3.8接口 (12)3.9存储分配 (12)3.10注释设计 (12)3.11限制条件 (12)3.12测试计划 (13)3.13尚未解决的问题 (13)1.引言1.1编写目的本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的要求和说明。

软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。

本说明书预期的读者是软件开发小组的产品实现人员。

1.2背景说明:系统名称:贪吃蛇游戏任务提出者:手机策划人员开发者:软件开发小组的产品实现人员用户:Android操作系统手机用户运行该程序系统的计算中心:Android操作系统手机芯片1.3定义1. 节:一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。

节是蛇身上最小的单位。

2. 链表:用来保存每一段的状态,链表的元素单位是节。

且链表的第一个元素表示蛇的头部。

3. 坐标系:以左上角那点为(0,0),向右则x递增,向下则y递增1.4参考资料1.《软件工程导论》张海藩著清华大学出版社2.《数据库系统原理教程》刘韬著人民邮电出版社3.《C程序设计》谭浩强清华大学出版社4.《成功的软件开发》(原书第二版)(蔡愉祖、邓本江等译)机械工业出版社)5.《实用软件文档写作》肖刚著清华大学出版社6.计算器的电路设计及算法研究[D]. 邱钊. 电子科技大学,2011.7.基于Java EE的网络销售系统的设计与实现[D]. 刘丹.湖南大学,20128.需求规格说明书《》软件开发小组2015/49.用户操作手册(初稿)《》软件开发小组2015/52.系统的结构2.1 每个模块的名称、标识符如下所示:1.Ground类1) private int TYPE;2) public int[][] rocks=new int[Global.WIDTH][Global.HEIGHT];3) public void setGround(int type){} 根据不同的Type值将rocks的不同下标的元素设为1,其他元素为0。

贪吃蛇设计说明书

贪吃蛇设计说明书

贪吃蛇设计说明书摘要本贪吃蛇(Snake)游戏仿照以往的贪吃蛇游戏,尽管在图形界面方面存在一定的缺陷,但能够基本实现游戏的功能。

本游戏分为10个级别,玩家通过方向键对蛇的运动进行控制,如果蛇吃到食物,得分加10分,并且到一定的程度级别会上升。

此外,用户可以根据需要选择速度、界面以及播放的音乐,并且在游戏中保存了以往前三名玩家的记录,供玩家参考。

关键字:主页面,快捷键,方向键,解决方案目录第一章:ATM系统概述1.1系统的主要任务1.2 基本要求1.3 主要功能1.4 设计方法及涉及知识点1.4.1 设计方法1.4.2 涉及知识点1.5 系统开发的目的第二章:系统分析2.1分析问题和定义类,给出类的定义和联系,2.2系统开发平台的选择2.3程序设计语言的选择2.4 操作平台第三章:总体设计3.1系统的结构图(总图)3.2函数模块说明(每个函数的原型、功能说明)3.3系统运行界面截图第四章:系统评价4.1系统的特点4.2系统的缺点4.3将来可能提出的要求第五章:小结第六章:参考文献第一章 ATM系统概述1.系统的主要任务本游戏主要提供给玩家进行娱乐。

2.基本要求1.要求利用面向对象的方法以及C#程序设计语言来完成该系统的设计;2.要求在设计的过程中,建立清晰的类的层次;3.在系统中建立相关的类,每个类中都要有各自的属性和方法;4.程序运行结果正确,操作方面,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。

3.主要功能该系统具备以下功能:控制蛇运动方向:用键盘上的↑、↓、←、→控制蛇的运动方向。

当蛇向一个方向运动时,它的反向键被锁定。

不能通过连续按住某个方向键而加快蛇的运动。

若在游戏中,蛇头碰了墙或是自己的身体,则游戏结束。

蛇吃食物:蛇每吃一个食物增长一节,并且得分加10分,总共为100节。

蛇每增长10节游戏上升一个级别。

游戏结束:如果在游戏过程中,蛇头碰墙或是碰到了自己的身体,则游戏结束。

如果在游戏过程中,用户选择退出游戏,则提醒用户游戏正在进行,是否要退出。

C++贪吃蛇项目:1.1.贪吃蛇游戏需求

C++贪吃蛇项目:1.1.贪吃蛇游戏需求
游戏排行: 在游戏排行功能中,玩家可以查看当前的游戏排行,排行榜中总共显示 5 名玩家的排行,如有 新的记录产生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。
读取存档: 玩家在游戏过程中可以选择保存游戏。保存后的游戏会显示在游戏存档记录中。玩家选择游戏 存档功能后,可以选择已经存档的一条游戏记录。继续游戏。
退出: 玩家选择退出菜单后,游戏保存排行榜与游戏存档到磁盘中。然后退出整个游戏。
三、游戏规则
1.游戏启动后会显示游戏地图。并在地图中显示一条长度为 4 的蛇(身子 3+蛇头 1) 2.玩家通过键盘上的上下左右光标键控制蛇的移动方向。通过空格键保存游戏 3.系统会随机在地图中生成食物供蛇来吃。 4.蛇通过不断吃食物得分。并加长蛇的身体 5.在蛇的移动过程中蛇头不能触碰蛇身子和四周墙壁 6.如果玩家得分达到一个更高级别。系统自动增加蛇的移动速度 7.当玩家赢得游戏后,会与排行榜中的前 5 名玩家的游戏记录比较,如果排名能够进入前五名,
则更新排行榜,使当前玩家成为入榜选手。 8.记分规则:累计吃掉的食物个数即为玩家最终获得的分数。
四、游戏界面效果
1、主界面
2、开始游戏界面
3、设置难度
4、游戏排行 5、读取存档
一、游戏说明贪吃蛇游戏项目源自这是一款经典的小游戏,游戏玩家通过控制蛇头方向吃米,使得蛇变长,从而获得积分。游戏玩 家还可以查看游戏排行榜、游戏存档、设置难度等 。
二、游戏功能说明
开始游戏: 用键盘上的上下左右键控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇 的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的 尾巴,等到了一定的分数,就能过关,然后继续玩下一关。 设置难度: 在设置功能中,玩家可以自定义游戏的起始难度。共分为 10 个级别。

贪吃蛇功能说明书(初稿)

贪吃蛇功能说明书(初稿)

贪吃蛇功能说明书(初稿)贪吃蛇(单词版)软件功能说明书1 开发背景“贪吃蛇”这个游戏对于80,90后的⼈来说是童年的记忆,可以将其说为是⼀个时代的经典,实现了传统贪吃蛇的游戏功能;现在⼈们对英语的重视程度越来越深,现在的⼩孩⼦在幼⼉园的时候就接受了简单的英语教学,熟记较多的英语单词对英语的学习起着巨⼤的积极作⽤,市⾯上的英语单词背记软件对于初⾼中学⽣来说易于接受,但是对于⼩学及以下的学⽣来说,这些软件的使⽤普遍率不⾼,年龄较⼩的孩⼦很难使⽤这些软件保持较长时间的集中⼒背单词。

基于这样的现实情况,【探路者团队】开发了贪吃蛇(单词版)的益智游戏软件。

该软件既可以实现贪吃蛇的游戏功能,⼜在原始功能的基础上增加单词拼写功能,使⽤户在娱乐的同时进⾏英语单词的学习。

2 开发⽬标开发本软件⼀⽅⾯是为了让80,90后⽤户重温童年的美好记忆,另⼀⽅⾯也是为了增加对英语学习兴趣较弱、意志⼒薄弱的中⼩学⽣学习英语的兴趣和动⼒,在游戏中记忆单词拼写。

本软件在使⽤过程中按照提供单词的顺序,“吃掉”软件当前提供的单词,并按照拼写顺序依次“吃”相应的字母才能完成此单词的任务,不提供⽤户跳过此单词进⾏下⼀单词的功能。

本软件只⽀持蛇头进⾏上下左右四个⽅位移动,暂不⽀持360°全⽅位移动蛇头。

3 软件⽤户本软件的应⽤⼈群主要是喜欢玩贪吃蛇,并且想通过游戏记单词的⼈群。

⽬前主要⽬标是学龄前⼉童,后期我们会对词库进⾏增加,以适合更多的⼈群。

4 软件功能描述4.1 贪吃蛇游戏基本功能4.1.1 运动功能⽤户可通过使⽤键盘上的上下左右⽅位键控制蛇的移动⽅向,蛇在控制的⽅向上进⾏直线前进。

4.1.2 吃⾷物功能当界⾯任意位置出现⾷物,⽤户使⽤⽅位键控制蛇移动到⾷物周围,当蛇头碰到⾷物时则表⽰贪吃蛇吃到此⾷物,界⾯上会在任意位置出现下⼀个⾷物,⽤户再次控制蛇去吃这⼀⾷物。

4.1.3 死亡判定功能当蛇头在前进⽅向上撞到墙壁或蛇头吃到蛇⾝时,给出死亡判定,并给出⽤户本次游戏得分,在下⼀次⽤户使⽤软件进⾏游戏时会将本次成绩加⼊到成绩排名列表中。

贪吃蛇程序设计说明书

贪吃蛇程序设计说明书

贪吃蛇程序设计说明书贪吃蛇游戏程序设计说明书题目:贪吃蛇游戏学校:系别:专业班级:姓名:学号:指导老师:日期:一、设计题目:贪吃蛇是一款经典的休闲游戏,一条蛇在密闭的围墙内,随机出现一个食物,通过控制方向键操作小蛇不停的朝着食物前进,直到吃掉食物。

每吃一个食物,小蛇都会长长一截,随之难度增大;当小蛇头撞到墙或自己时,小蛇死亡。

二、功能设计:本游戏要求实现以下几个功能:(1)用上、下、左、右键控制游戏区蛇的运动方向,使之吃食而使身体变长;(2)用户可以调节蛇的运行速度来选择不同的难度;(3)游戏分多个难度级别;(4)用户可自选颜色;(5)记录成绩前五名的游戏玩家;(6)增加背景音乐;(7)提高障碍物和游戏级别。

三、程序模块图:贪吃蛇游戏初始化图模块控制模块设置模块帮助模块墙体蛇身食物移动食物死亡变长绩等级音效四、算法流程图:是否否是否是开始初始化界面和蛇身放置食物获取按键开始运动碰到边界蛇吃到食蛇长大蛇死亡继续结束五、函数原型与功能1.主函数:void main()启动程序,触动其他函数。

2.初始化:void init ()设置背景框大小、蛇体初始值,随机产生食物。

3.随机产生食物:void setfoodcrd()设置食物生成坐标,0表示食物被吃。

4.画食物:void showfood()用矩形框来画食物5.画蛇:void showsnake()根据蛇的坐标和节数,循环用矩形框来画蛇。

6.蛇移动:void snakemove()根据按键,重设坐标7.改变蛇的方向:void changeskdir()响应用户的运动方向8.判断蛇是否死亡:void judgeslod判断蛇是否碰到自己或墙。

9.判断蛇是否吃到食物:void judgefood()判断是否吃到食物,吃食后变0,蛇增长一节。

10.结束游戏:void gameover()结束话语,并执行下一步。

六、基本代码#include#include#include#pragma comment(lib,"Winmm.lib")#include "MyTimer.h"#define SIZEMAX 100 /*蛇最大长度*/#define SPEED 100 /*初始速度*/#define len 20 /*蛇宽度*/#define lm 10 /*蛇每次移动距离*/#define initlen 600 /*初始化窗口正方形的长度*/ #define Min_snakelen 2 /*蛇的最小长度*/ typedef struct {int x,y;}DIR;int snakelen=Min_snakelen; /*蛇的长度*/int isfood=1; /*食物状态*/int isover=0; /*游戏状态*/int ispause=1; /*暂停状态*/int ismusic=1; /*音乐播放状态*/char dir; /*记录蛇运动的方向*/char c='d';DIR snake[500],food; /*定义蛇节点和食物的类型*/int speed=SPEED;void drawmap() /*画地图函数*/ {IMAGE img;char str[10];loadimage(&img,"贪吃蛇.jpg"); /*游戏界面*/ putimage(0,0,&img);loadimage(&img,"7.jpg"); /*侧栏提示*/putimage(600,0,&img);sprintf(str,"%d",snakelen);setfont(30,0,"宋体");setbkmode(TRANSPARENT);outtextxy(620,10,"操作说明:");setfont(20,0,"宋体");outtextxy(615,50,"awsd控制方向键");outtextxy(615,80,"p键暂停");outtextxy(615,110,"o键继续");outtextxy(615,200,"esc键退出");outtextxy(615,140,"l键暂停音乐");outtextxy(615,170,"k键继续播放");outtextxy(730,250,str);outtextxy(620,250,"蛇当前长度");}void init() /*初始化蛇函数*/ {int i;IMAGE img;snake[0].x=9*len+lm;snake[0].y=4*len+lm;loadimage(&img,"1.jpg");putimage(snake[0].x-lm,snake[0].y-lm,&img); for(i=1;i<snakelen;i++)< p="">{snake[i].x=len*(9-i)+lm;snake[i].y=len*4+lm;loadimage(&img, "2.jpg");putimage(snake[i].x-lm,snake[i].y-lm, &img); }}void showsnake() /*画蛇函数*/{int i;IMAGE img;loadimage(&img, "1.jpg");putimage(snake[0].x-lm,snake[0].y-lm , &img); loadimage(&img, "2.jpg");for(i=1;i<snakelen;i++)< p="">putimage(snake[i].x-lm,snake[i].y-lm, &img); }void snakemove() /*画动蛇函数*/{int i;int mx=snake[0].x;int my=snake[0].y;switch(dir){case 'a':mx-=len;break;case 'd':mx+=len;break;case 'w':my-=len;break;case 's':my+=len;break;default:break;}for(i=snakelen-1;i>=0;i--){snake[i+1].x=snake[i].x;snake[i+1].y=snake[i].y;}snake[0].x=mx;snake[0].y=my;showsnake();}int ceshiover() /*检测游戏结束函数*/{int i;if(snake[0].x<0||snake[0].x>30*len-lm||snake[0].y<0||snake[0].y>30*len-lm) return 1;for(i=1;i<snakelen;i++)< p="">{if(snake[0].x==snake[i].x&&snake[0].y==snake[i].y) return 1;}return 0;}int foodinsnake() /*检测食物是否在蛇上函数*/ {for(int i=0;i<snakelen;i++)< p="">if(food.x==snake[i].x&&food.y==snake[i].y)return 1;elsereturn 0;}void showfood() /*画食物函数*/{IMAGE img;do{food.x=(rand()%30)*len+lm;food.y=(rand()%30)*len+lm;}while(foodinsnake());loadimage(&img, "3.jpg");putimage(food.x-lm,food.y-lm , &img);isfood=0;}void kmusic(){if(ismusic==0)mciSendString("pause mymusic",NULL,0,NULL);if(ismusic==1)mciSendString("resume mymusic",NULL,0,NULL);}void playbkmusic() /*播放背景音乐函数*/{mciSendString("open 超级玛丽.mp3 alias mymusic", NULL, 0, NULL);mciSendString("play mymusic repeat", NULL, 0, NULL);}void playgame() /*玩游戏函数*/{c='d'; //蛇开始向右移动isover=0;snakelen=Min_snakelen;dir='d';IMAGE img;MyTimer t; //定义精确延时对象int T=200; // 延长时间drawmap(); //画游戏地图init(); //画小蛇初始位置while(!isover){if(ispause){snakemove();FlushBatchDraw(); //批量绘图EndBatchDraw(); //结束批量绘图if(snake[0].x==food.x&&snake[0].y==food.y){ snakelen++;isfood=1;}if(isfood)showfood();if(snakelen<35)T=200-3*snakelen;t.Sleep(T);BeginBatchDraw(); // 开始批量绘图模式,防止闪烁问题drawmap();loadimage(&img, "3.jpg"); // 加载食物图片putimage(food.x-lm,food.y-lm , &img);};//按键控制if(kbhit())c=getch();switch(c){case 'a':if(dir!='d'){dir=c;}break;case 'd':if(dir!='a'){dir=c;}break;case 'w':if(dir!='s'){dir=c;}break;case 's':if(dir!='w'){dir=c;}break;case 27: exit(0); break; //游戏退出case 'p': ispause=0;break; //p暂停case 'o': ispause=1;break; //o继续游戏case 'l': ismusic=0;break; //l暂停音乐case 'k': ismusic=1;break; //k继续播放default:break;}kmusic(); //音乐控制播放//判断游戏结束if(ceshiover())isover=1;//判断是否重新再来HWND wnd = GetHWnd(); //获取窗口句柄if(isover)if (MessageBox(wnd, "游戏结束。

C语言贪吃蛇游戏需求分析说明书

C语言贪吃蛇游戏需求分析说明书

项目需求规格说明书当前版本号:1.0最后更新日期:作者:目录1.引言 (3)1.1. 目的 (3)1.2. 背景 (3)1.3. 参考资料 (3)1.4. 开发人员 (3)2. 任务概述 (3)2.1目标 (3)2.2 假定与约束 (4)3.游戏总体需求说明 (5)3.1. 功能需求 (5)3.2. 性能需求 (5)3.3 界面需求 (6)3.4 运行环境需求 (6)1.引言1.1.目的本文档分析和说明贪吃蛇游戏的总体需求①:展示游戏的结果,以及游戏的价值;②:总结反思,为后续游戏做的更好进行复盘。

③:明确游戏的功能、性能、界面等方面的需求,为游戏的开发和设计提供指导;1.2.背景项目委托单位:开发单位:主管部门:1.3.参考资料1、贪吃蛇游戏现有版本2、相关书籍与文档3、网络上的相关资源和资料4、严蔚敏. 数据结构(c语言版). 清华大学出版. 2007年.5、谭浩强. C程序设计(第4版). 清华大学出版社. 2010年6月.1.4.开发人员2. 任务概述2.1目标①开发的意图:为了提供一款经典有趣的游戏,让玩家可以通过控制蛇的移动来获取食物并不断增加长度,增强反应能力和策略思维。

②应用目标:主要是娱乐和休闲。

通过游戏,玩家可以在放松身心的同时享受游戏带来的挑战和成就感。

③作用范围:贪吃蛇游戏适用于各种游戏平台,包括电脑、手机、平板等。

它可以在个人设备上单人游戏,也可以通过网络连接与其他玩家进行多人对战。

④背景资料:贪吃蛇游戏最早出现于20世纪70年代末期,是一款经典的电子游戏。

最初的贪吃蛇游戏是在黑白屏幕上展示,玩家通过操纵一个小蛇吃食物,并随着吃食物的数量增加而变长。

随着游戏的发展,贪吃蛇游戏在不同的平台上得到了广泛的推广和发展,衍生出了各种版本和变种。

如今,贪吃蛇游戏仍然受到许多玩家的喜爱,并成为了经典的游戏之一。

⑤软件系统与其它系统的关系:贪吃蛇软件系统通常是一个独立的游戏系统,与其他系统没有直接的依赖关系。

贪吃蛇游戏报告

贪吃蛇游戏报告

贪吃蛇游戏功能分析报告一.程序基本功能
1.1双击程序图标,进入游戏画面如图1.1所示。

图1.1 游戏主页面
1.2点击开始,进入游戏后如图1.2上方有分别有上下左右方向键,点击方向键可控制方向。

图1.2方向键位置
1.3游戏开始后,黄色为贪吃蛇头部点击方向键控制方向与页面上黄色小点为食物向其移动,向上如图1.3,向下如图1.4,向左如图1.5,向右如图1.6。

图1.3贪吃蛇向上图1.4贪吃蛇向下
图1.5贪吃蛇向左图1.6贪吃蛇向右
1.4当贪吃蛇头部撞到绿色的边框为游戏失败,游戏失败后自动回到游戏主页并在页面中间显示得分如图1.7。

图1.7游戏结束后得分页面。

贪吃蛇 策划书3篇

贪吃蛇 策划书3篇

贪吃蛇策划书3篇篇一《贪吃蛇策划书》一、游戏概述1. 游戏名称:贪吃蛇2. 游戏类型:休闲益智类游戏3. 游戏目标:玩家通过控制蛇的移动,吃掉食物使蛇变长,同时避免碰到墙壁或自己的身体,挑战更高的分数。

4. 游戏规则:蛇初始长度为一定值,通过吃掉食物来增加长度。

食物会随机出现在游戏区域内。

蛇的移动方向由玩家控制,可以通过方向键或触摸屏幕来操作。

当蛇碰到墙壁或自己的身体时,游戏结束。

游戏结束后,根据玩家的得分进行排名。

二、游戏界面设计1. 游戏区域:展示蛇和食物的区域,背景可以选择简洁的颜色或图案。

2. 得分显示:实时显示玩家的得分。

3. 游戏状态显示:显示游戏的开始、暂停、结束等状态。

4. 操作按钮:提供开始游戏、暂停游戏、重新开始等操作按钮。

三、游戏玩法设计1. 单人模式:玩家独自控制蛇进行游戏,挑战自己的最高分。

2. 多人模式(可选):支持多人在线对战,玩家可以与其他玩家竞争得分。

3. 关卡模式(可选):设置不同的关卡,每个关卡有特定的目标和难度。

四、游戏难度设计1. 随着蛇的长度增加,速度逐渐加快,增加游戏难度。

2. 食物出现的频率和位置可以根据难度级别进行调整。

3. 可以设置障碍物或特殊道具,增加游戏的挑战性和趣味性。

五、游戏音效设计1. 背景音乐:选择轻松愉快的音乐,营造游戏氛围。

2. 吃食物音效:当蛇吃掉食物时,播放相应的音效,增加游戏的趣味性。

3. 碰撞音效:当蛇碰到墙壁或自己的身体时,播放碰撞音效,提示玩家游戏结束。

六、游戏开发计划1. 确定游戏开发团队和分工。

2. 制定游戏开发时间表,包括各个阶段的时间节点。

3. 进行游戏原型设计和开发。

4. 进行游戏测试和优化。

5. 发布游戏并进行推广。

七、游戏盈利模式1. 广告收入:在游戏中展示广告,获取广告收益。

2. 内购道具:提供一些付费道具,如加速道具、复活道具等,增加游戏收入。

3. 付费:提供付费版本,获取收益。

八、游戏推广计划1. 利用社交媒体、游戏论坛等渠道进行宣传推广。

贪吃蛇小游戏需求分析

贪吃蛇小游戏需求分析

“贪吃蛇”游戏需求分析一、需求分析:贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力,尤其是在开发人的智力方面,很受人们的欢迎。

本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。

具体需求概要如下:1.初始化游戏界面为600*600大小,并于坐标为(250,250)处显示游戏名称“贪吃蛇”,等待鼠标响应以开始游戏;2.在程序中用格子初始蛇长及蛇的位置,用W、S、A、D控制方向为上下左右进行游戏。

游戏过程中,每吃到一次食物用For 循环使蛇移动的speed增加,分数加10,蛇长加一格;3.蛇头咬到蛇尾or蛇头接触活动区域外围则Game over,显示累计分数,游戏结束。

二、运行环境:该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。

本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下:操作系统:windows xp 软件环境:安装VC++6。

三、设计概要:1.初始化模块:屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇”;2.游戏界面模块:设计绿色的边框,边框内用黑色无框格子填充作为游戏活动区域;3.游戏运行模块:运用函数控制蛇长及食物的关系,并使用键盘控制方向;4.判断模块:头咬到尾或头接触活动区域外围,则游戏结束,显示累计分数。

四、详细设计及实现:1.流程图(函数调用关系图)#include<stdio.h> #include<stdlib.h> #include<graphics.h> #include<dos.h> #include<conio.h> #include<time.h>3.数据结构 IMAGE wal; MOUSEMSG m;typedef struct {int x[40]; int y[40];int derection;int food; int foodx; int foody; int size; } snake;4.全局变量int score=0,speed=300;5.函数声明 void init(void); void wall(void); void food(void); void gameover(void); int food1(void); void snakes(void); void draw(void);6.算法设计 main 函数: 具体实现程序功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贪吃蛇需求规格说明书开发小组成员:目录一.引言-----------------------------------------------------------------------------------------------31.1编写目的-----------------------------------------------------------------------------------31.2编写原则-----------------------------------------------------------------------------------31.3参考资料-----------------------------------------------------------------------------------31.4适用范围-----------------------------------------------------------------------------------3二.系统概述----------------------------------------------------------------------------------------32.1业务背景-----------------------------------------------------------------------------------32.2用户类别与特征-------------------------------------------------------------------------32.3用户文档-----------------------------------------------------------------------------------42.4设计和实现上的限制-------------------------------------------------------------------42.5运行环境-----------------------------------------------------------------------------------4三.功能需求----------------------------------------------------------------------------------------43.1系统用例图--------------------------------------------------------------------------------43.2项目名称-----------------------------------------------------------------------------------43.2.1功能描述----------------------------------------------------------------------------43.2.1.1进入游戏-------------------------------------------------------------------43.2.1.2玩游戏----------------------------------------------------------------------53.2.1.3游戏的退出---------------------------------------------------------------5四.非功能需求-------------------------------------------------------------------------------------64.1系统质量要求-----------------------------------------------------------------------------64.1.1性能-----------------------------------------------------------------------------------64.1.2可靠性-------------------------------------------------------------------------------64.1.3可维护性----------------------------------------------------------------------------64.1.4可用性-------------------------------------------------------------------------------74.1.5可移植性----------------------------------------------------------------------------74.1.6可测试性----------------------------------------------------------------------------74.1.7易用性-------------------------------------------------------------------------------74.2安全性需求--------------------------------------------------------------------------------74.3环境需求-----------------------------------------------------------------------------------74.4保密性和私密性的需求---------------------------------------------------------------74.5其他需求----------------------------------------------------------------------------------7五.外部接口需求---------------------------------------------------------------------------------85.1用户界面----------------------------------------------------------------------------------85.1.1界面布局---------------------------------------------------------------------------85.1.2界面风格---------------------------------------------------------------------------85.1.3界面规范---------------------------------------------------------------------------85.2硬件接口----------------------------------------------------------------------------------95.3软件接口----------------------------------------------------------------------------------9一、引言软件需求规格说明书记录系统或系统一部分完整软件需求。

以下是我们小组(TNT)的软件需求规格说明书概述。

1.1编写目的:明白用户需求,为系统设计和编码人员提供依据,方便本小组的各种后续工作。

1.2编写原则:由于我们均属于初学者,能力尚不成熟,故尽量一切从简单、基础入手编写。

1.3参考资料:胡飞《软件工程基础》高等教育出版社杨建军《Visual C#程序设计》清华大学出版社周峰《C#典型模块开发》中国铁道出版社1.4适用范围:本文档适用本小组所用成员,其中项目组长应着重阅读本文档各个部分,其他成员选择性阅读。

二、系统概述2.1业务背景:本游戏着重于在空闲时间为人们提供一点娱乐,来达到打发时间,娱乐心情的目的。

2.2用户类别与特征2.3用户文档:本游戏不需要任何用户文档,打开即玩。

2.4设计和实现上的限制:由于本项目开发人员皆为初学者,所有在各个方面都略显不足,应该会有不少错误和漏洞。

此外,在系统方面,我们也是采用较为简单的表达,并不是十分完美。

2.5运行环境:硬件方面:Pentium级处理芯片 1兆显存的兼容显卡256色,800*600的兼容显示器。

软件方面:WIN95操作系统以上。

三、功能需求3.1系统用例图3.2 项目名称——TNT版贪吃蛇3.2.1功能描述3.2.1.1进入游戏3.2.1.2玩游戏3.2.1.3游戏的退出四、非功能需求4.1系统质量需求4.1.1性能(1)系统容量:本软件由于过于简单,在系统容量上没有太大需求。

一般电脑均可使用。

(2)响应指标:进入游戏,点击“开始“后,“蛇”在0.01秒内做出反应,开始移动;在“吃到食物“以及”上“”下“等各项命令指标是反应时间均在0.01秒内。

4.1.2可靠性:经试验,在连续运行的情况下,系统可靠性在99.9999%。

并且一旦使用本软件后,可提供人工上门服务,以解决用户的问题。

4.1.3可维护性:由于本软件采取上门服务方式。

因此在可维护性方面,可谓做到极致,用户可联系技术人员,由他们亲自来解决维护问题。

4.1.4可用性:本软件无需联网,支持脱机运行。

因此,用户可以随时随地使用本软件。

4.1.5可移植性:本软件可看成独立系统,所以实现了U盘的拷贝、粘贴等行为。

4.1.6可测试性:作为一款游戏类项目,在测试方面用了大量的时间,而这项目的克测试性非常的强,因为游戏本身也算一种测试。

4.1.7易用性:软件所占容量小,游戏本身操作简单,更人性化的界面,上手极快。

4.2安全性需求(1)网络安全:由于本软件不需要联网,所以网络安全这一问题可轻松避免。

相关文档
最新文档