茶叶蛋大冒险25

茶叶蛋大冒险

枫叶飘jc 枫叶飘jc
回答
  • 祺&宁 祺&宁

    在设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,若果在规定的时间内没能消完所有的图片则游戏结束,重新开始游戏。游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片是否消去的问题,当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张相同的图片用三根以内的直线连在一起,就可以消去;否则,不予处理。游戏过程,如果玩家在一定的时间内消完则提示玩家胜利,并进入下一关。如果在一定的时间内图片没有消完则提示玩家时间到。每关以此类推。一、所有图片都是按约定好的种类数和在同一区域的重复次数随机出现,并且每张图片的出现次数为偶数,时间会有限制,每一关的图片数量或时间是不同的,这样就增加了游戏的难度。二、在同一区域中,图片出现的种类数和重复数是可以由玩家选择的,时间由游戏约定。不过玩家选择的种类数和重复次数必须是偶数才可以顺利完成游戏,否则游戏虽然可以正常运行,但无法完成游戏。在一种方案中,由于出现的图像按种类数和重复数都由软件约定,这样就缺乏玩家自主选择的空间,只是在完系统已经是设定好的游戏,不能改变什么,这样就在无意中降低了玩家在游戏过程中的乐趣,最后致使玩家放弃继续玩下去。我们参考了网络上的连连看游戏,考虑到游戏的娱乐性。所以我们放弃第一种方案的设计思想,参考网络上流行的连连看游戏,设计第二种方案。3主要问题
    开始制作游戏时,主要解决问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。3.4技术要求
    本游戏软件可以再大多数计算机上运行,游戏中能正确判断鼠标两次点下的图片是否可以消去、能正确判断游戏是否已经结束。4、系统设计:
    针对上面的需求分析,我们把整个软件分成两个模块:1、整体界面的设计和图片的随机生成;2、图片路径判断函数;一下就是系统结构图:
    4.1基本思路
    4.1.1游戏画面问题的思路
    画面,对于设计者来说,可以算是最简单的地方;但对于玩家,这却是最重要的,一般玩家不会关心你是怎么实现的,他所关心的是画面的美观,漂亮,是不是能让人赏心悦目。2获取图片位置的思路
    通过数组从图片库随即获取规定个数的图片,随机分布在画布上。图片个数一定是个偶数个。4.1.3 路径判断的思路
    连连看所要求的是:
    1:两个目标是相同的
    2:两个目标之间连线的折点不超过两个。(连接线由x轴和y轴的平行线组成)那么分析一下连接的情况可以看到,一般分三种情况
    1:直线相连2:一个折点3:两个折点;可以发现,如果有折点,每个折点必定有且至少有一个坐标(x或者y)是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。所以设计思路就是:
    假设目标点p1,p2,如果有两个折点分别在z1,z2那么,所要进行的是
    1:如果验证p1,p2直线连线,则连接成立
    2:搜索以p1,p2的x,y方向四条直线(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2,验证p1到z1/z1到z2/z2到p2是否都能直线相连,是则连接成立。4.1.4其他问题的思路
    其他功能将在后面的具体各个部分的设计过程当中分别进行介绍。4.2主界面的设计
    由于这个程序的界面并不是很复杂,所以用到的控件也不多,主要核心内容还是后台的代码设计。图片的随机生成主要是用到一个random()函数将随机数赋值给flag[]数组中的每个元素,然后根据数组元素值,来显示图片。4.2.1界面的设计
    1、色彩上:总结人们的视觉习惯和色彩对眼睛的健康影响,决定对于画布采用黑色背景,神秘而大方;右边的控制区采用天蓝色,配合左边纯黑的背景,就像黑夜中的蓝天,纯洁而大方。2、功能上:背景就是窗体,右侧是一个groupbox控件,用来放置控制按钮,下方是一个grogres**ar控件,用来显示时间条。4.2.2图片的随机生成
    实现这个功能要分很多个步骤:
    1.程序运行时即载入游戏需要的n张图片,默认情况下图片种类是18,重复数是4(重复数必须是偶数),并且可以选择是否重列。通过一个循环,加载随机的选择n种图片。具体载入图片的代码如下:
    private void intebmp(int maxnum)
    {
    g_g=th**.creatphics();for(int i=0;i;i+)
    for(int j=0;j;j+)
    gamp[i,j]=0;initerandomap(ref gamp,maxnum);ai=new kernal(ref gmap);for(int i=0;i;i+)
    {
    resourcemanager rm=new resourcemanager(“llk data”,assembly,getexecut ingassembly());img[i]=(image)rm.getobject(i.tostring()+”.bmp”);img[i]=(image)bitmap.formfile(“images\\”+(i+1).tostring()+”.bmp”);}
    for(int i=0;i;i+)
    {
    bombimg[i]=(image)bitmap.fromfile(“image\\b”+(i+).tostring()+”.bmp”);}
    }
    2.当确认游戏开始时,通过画图过程完成图片生成,画图的过程代码如下
    private bool checkwin(ref int[,]map)
    {
    bool win=true;for(int i=0;i0)
    {
    for(int i=0;i;i+)
    {
    int xrandom=r.next(19);int yrandom=r,next(11);if(map[xrandom,yrandom]=0)
    {
    map[xrandom,yrandom]=num;}
    else
    i-;}
    num-;}
    }
    private void freshmap(ref int[,]map)
    {
    random r=new random();for(int i=0;i;i+)
    for(int j=0;j;j+)
    {
    if(gmap[i,j]!0)
    {
    int x=r.next(19);int y=r.next(11);int temp=gmap[x,y];gmap[x,y]=gmap[i,j]
    gmap[i,j]=temp;}
    transportmap(ref gmap);}
    private void transportmap(ref int[,]map)
    {
    for(int i=0;i;i+)
    for(int j=0;j;j+)
    {
    ai.givemapvalue(i,j,map[i,j]);}
    }
    在指定位置画指定图
    private void draw(graphics g,image scrimg,int picxx,int picv)
    {
    g.drawimage(scrimg,new point(picx,picv));}
    private void forml_paint(object sender,painteventarg e)
    {
    g_g.drawline(new.pen(newsolidbrush(color.deepskyblue),5),0,11*34+5,19*34
    11*34+5);if(bstart)
    {
    for(int i=0;i209)
    {
    **box.show(“游戏区域内最多只有209个孔,您选的数据太多!请重新选!textbox1.text=”18”;textbox2.text=”4”;return;}
    initebmp(picnum);if(bstart)
    {
    **box.show(“游戏已在运行!return;}
    else
    {
    bstart=true;th**.invalidate();music.play(“sounds\\ bg-03.mid”);}
    }
    重新实现代码如下:
    private void refreshmap(ref int[,]map)
    {
    if(int i=0;i;i+)
    for(int j;j+)
    {
    if(gmap[i,j]!0)
    {
    draw(g_g,img[gmap[i,j]-1],i*picwidth,j*picheight);}
    }
    }
    private void freshmap(ref int[,]map)
    {
    random r=new random();for(int i=0;j;i+)
    for(int j=0;j;j+)
    {
    if(gmap[i,j]!0)
    {
    int x=r,nex(19);int y=r,nex(11);int temp=gmap[x,y];gmap[x,y]=gmap[i,j];gmap[i,j]=temp;}
    }
    transportmap(ref gmap);}
    private void button2_click(object sender,eventargs e)
    {
    refreshplayer.play();freshmap(ref gmap);th**.invalidate();}
    4.2.4得分设置
    本游戏一改前人风格,采用全新计分方式,使人们在寻找相同图片的同时还注意路径的选择,更增加了游戏的趣味性,具体规则:直连得10分,一个拐点的20,两个拐点得40.用一个label控件存储得分。实现代码:
    switch(corner[2].x)
    {
    case1;score+20;一个拐点加20;g_g.drawline(pen,new point(p1.x*31+15,p1.y*34+17),new
    point(corner[0].x*31+15,corner[0],y*34+17)),;g_g.drawline(pen,new point(p2.x*31+15,p2.y*34+17),new
    point(corner[0].x*31+15,corner[0],y*34+17));thread.sleep(100);eraseblock(g_g,p1,p2);g_g.drawline(bkpen,new point(p1.x*31+15,p1.y*34+17)new
    point(corner[0].x*31+15,corner[0],y*34+17);g_g.drawline(bkpen,new point(p1.x*31+15,p2.y*34+170new
    point(corner[0].x*31+15,corner[0],y*34+17);break;case 2;score+40;point[]ps={new point(p1.x*31+15,p1.y*34+17),new
    point(corner[1].x*31+15,corner[1],y*34+17),new
    point(corner[0].x*31+15,corner[0],y*34+17),newpoint(p2.x*31+15,p2.y*34+17));g_g.drawline(pen,ps);thread.sleep(100);eraseblock(g_g,p1,p2);foreach(point mp in ps)
    /{
    /**box.box.show(“+mp.x.tostring()+”,”+mp.y.tostring()+”)”));}
    break;case 0;score+10;g_g.drawline(pen,ps);point(corner[0].x*31+15,corner[0],y*34+17),newpoint(p2.x*31+15,p2.y*34+17));thread.sleep(100);eraseblock(g_g,p1,p2);g_g.drawline(pen,ps);point(corner[0].x*31+15,corner[0],y*34+17),newpoint(p2.x*31+15,p2.y*34+17));break;default:break;}
    refreshmap(ref gmap)
    label5.text=score.tostring();下面还有

类似问答
  • 茶叶蛋大冒险25关

    提问时间:2024-05-19 04:10:38

    茶叶蛋大冒险25关 茶叶蛋大冒险是一款非常有趣的休闲益智游戏,有着各种不同的关卡挑战。其中,第25关是比较难的一关,有许多玩家在这一关卡上卡关。以下是一些过关技...

  • 茶叶蛋大冒险第25关怎么过

    提问时间:2024-05-19 13:45:08

    茶叶蛋大冒险第25关怎么过 第25关的茶叶蛋大冒险需要玩家跳跃、躲避、收集道具等操作,难度较大。但只要注意以下几点,就可以轻松通过本关。首先,本关的背景是在一个...

  • 茶叶蛋大冒险53

    提问时间:2024-05-19 03:42:17

    茶叶蛋大冒险53 茶叶蛋大冒险53是一款非常有趣的游戏,它让玩家可以扮演一个卖茶叶蛋的小贩,通过合理的经营和策略,赚取更多的金币和奖励,提升自己的等级和能力。这...

  • 茶叶蛋大冒险73

    提问时间:2024-05-19 03:02:53

    茶叶蛋大冒险73 茶叶蛋大冒险73是一款趣味休闲游戏,玩家需要扮演一名茶叶蛋小贩,在繁忙的市场中卖出美味的茶叶蛋,赚取更多的金币,并尽可能地避开各种障碍和敌人。...

  • 茶叶蛋大冒险104

    提问时间:2024-05-19 14:25:56

    茶叶蛋大冒险104 《茶叶蛋大冒险104》是一款益智类游戏,玩家需要通过不同的操作,帮助主角寻找茶叶蛋,并最终将它们全部收集起来。在游戏中,玩家需要解决不同的难...

  • 茶叶蛋大冒险27

    提问时间:2024-05-19 13:38:45

    茶叶蛋大冒险27 茶叶蛋大冒险27,是一个以茶叶蛋为主题的冒险游戏。在游戏中,玩家要扮演一只可爱的小鸡,一边收集茶叶蛋,一边避开各种障碍和敌人。游戏中有多个关卡...

  • 茶叶蛋大冒险155

    提问时间:2024-05-19 01:15:36

    茶叶蛋大冒险155 茶叶蛋大冒险155是一款非常有趣的游戏,游戏中主要是讲述了一只茶叶蛋在一个充满危险的世界中冒险的故事。在游戏中,玩家需要帮助这只茶叶蛋打败各...

  • 茶叶蛋大冒险152

    提问时间:2024-05-19 06:30:33

    茶叶蛋大冒险152 茶叶蛋大冒险152是一款非常有趣的休闲游戏。玩家需要在游戏中控制茶叶蛋,通过不断地跳跃、躲避障碍物和收集物品,最终到达终点。在游戏中,茶叶蛋...

  • 茶叶蛋大冒险88

    提问时间:2024-05-19 04:17:00

    茶叶蛋大冒险88 茶叶蛋大冒险88是一款非常受欢迎的游戏,玩家需要在游戏中控制一只小鸟,帮助它收集茶叶蛋,同时躲避各种障碍物。这个游戏的背景是一座寺庙,画面非常...

  • 茶叶蛋大冒险茶叶蛋大冒险

    提问时间:2024-05-19 17:05:57

    茶叶蛋大冒险茶叶蛋大冒险 【茶叶蛋大冒险全关卡图文攻略】茶叶蛋大冒险第95关怎么过通关提示:女朋友想降温完成攻略:动物餐厅拳套纪念物怎么解锁很多玩家朋友还不会呢...

精品推荐

友情链接

友链互换QQ:

谷财 备案编号:蜀ICP备11019336号-3商务合作:235-677-2621

Copyright 2009-2020 Chengdu Sanzilewan Technology Co.,Ltd all rights reserve

抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活