软件,游戏,APP下载,公益下载:帝一应用

帝一应用手机版|下载排行|最近更新|tags标签汇总

当前位置:首页 - 知识 - 软件知识 - 贪吃蛇游戏战绩的代码怎么写,贪吃蛇代码

贪吃蛇游戏战绩的代码怎么写,贪吃蛇代码

时间:2023-04-18 22:40:46来源:整理作者:佚名投稿 手机版

本文目录一览

1,贪吃蛇代码

第二段代码中/*图形驱动*/void Init(void) int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc"); cleardevice();}改为/*图形驱动*/void Init(void) int gd = DETECT, gm = 0; /*gd = VGA,gm = VGAHI*/ registerbgidriver(EGAVGA_driver); initgraph(&gd, &gm, "");}就可以了.

贪吃蛇代码

2,求贪吃蛇的程序代码c语言

贪吃蛇游戏的代码#define N 200#include <graphics.h>#include <stdlib.h>#include <dos.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戏速度自己调整*/struct Food int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/struct Snake int x[N]; int y[N]; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/}snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*开始画面*/void GameOver(void);/*结束游戏*/void GamePlay(void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*//*主函数*/void main(void) Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/}/*图形驱动*/void Init(void) int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc"); cleardevice();}/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/void DrawK(void)/*setbkcolor(LIGHTGREEN);*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i<=600;i+=10)/*画围墙*/ rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ } for(i=40;i<=450;i+=10) rectangle(50,i,59,i+10); /*左边*/ rectangle(601,i,610,i+10);/*右边*/ }}/*玩游戏具体过程*/void GamePlay(void) randomize();/*随机数发生器*/ food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ snake.life=0;/*活着*/ snake.direction=1;/*方向往右*/ snake.x[0]=100;snake.y[0]=100;/*蛇头*/ snake.x[1]=110;snake.y[1]=100; snake.node=2;/*节数*/ PrScore();/*输出得分*/ while(1)/*可以重复玩游戏,压ESC键结束*/ while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/ if(food.yes==1)/*需要出现新食物*/ food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ food.x++; while(food.y%10!=0) food.y++; food.yes=0;/*画面上有食物了*/ } if(food.yes==0)/*画面上有食物了就要显示*/ setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) case 1:snake.x[0]+=10;break; case 2: snake.x[0]-=10;break; case 3: snake.y[0]-=10;break; case 4: snake.y[0]+=10;break; } for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) GameOver();/*显示失败*/ snake.life=1; break; } } if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55|| snake.y[0]>455)/*蛇是否撞到墙壁*/ GameOver();/*本次游戏结束*/ snake.life=1; /*蛇死*/ } if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ break; if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/ setcolor(0);/*把画面上的食物东西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ snake.node++;/*蛇的身体长一节*/ food.yes=1;/*画面上需要出现新的食物*/ score+=10; PrScore();/*输出新得分*/ } setcolor(4);/*画出蛇*/ for(i=0;i<snake.node;i++) rectangle(snake.x[i],snake.y[i],snake.x[i]+10, snake.y[i]-10); delay(gamespeed); setcolor(0);/*用黑色去除蛇的的最后一节*/ rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(!kbhit)*/ if(snake.life==1)/*如果蛇死就跳出循环*/ break; key=bioskey(0);/*接收按键*/ if(key==ESC)/*按ESC键退出*/ break; else if(key==UP&&snake.direction!=4)/*判断是否往相反的方向移动*/ snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; }/*endwhile(1)*/}/*游戏结束*/void GameOver(void) cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch();}/*输出成绩*/void PrScore(void) char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(55,20,str);}/*图形结束*/void Close(void) getch(); closegraph();} 程序结束,请采纳

求贪吃蛇的程序代码c语言

3,关于贪吃蛇里面的一段代码

// 假设原来的方向是上,然后玩家按了向下的方向。// 你下面的一二行的代码用 +,就是表示向下方向移动一格。// 第三行代码进行判断是否头碰到“脖子”,如果碰到了就说明是“后退”,即是向“下”运动。// 如果向下的话这是不允许的,程序将保持蛇向原来的前进方向即这里假设的“上”方运行,所以要回退一格,并按前进方向前进一格,所以就要减去两倍的移动单位//// 这里为了具体化方向,假设了向上运动的时候按了向下移动,其它方向也是一样的道理。// HeadPoint.X += PMatris.X; //移一格 HeadPoint.Y += PMatris.Y; if (HeadPoint==AllPoints[1])//防止后退,所以只要判断头和第二个是否相碰 HeadPoint.X -= 2*PMatris.X; HeadPoint.Y -= 2*PMatris.Y; }
如果的你的程序没有管理员权限是没法设置系统的时间的。这个问题,比较好的解决方法是用系统的时钟同步服务来解决
很好明白。 在 if(HeadPoint==AllPoints[1]) 时,标示 HeadPoint 坐标 与 AllPoints[1] 坐标重合。也就是说,已经相碰了。因此需要修正: HeadPoint.X+= PMatris.XHeadPoint.Y += PMatris.Y;因此“撤销”代码是 HeadPoint.X-= PMatris.XHeadPoint.Y -= PMatris.Y;但是再考虑一下,光“撤销”就可以了么?贪食蛇游戏在不改变方向的情况下,是固定向下移动的。也就是说,如果仅仅是 -=PMatris.X ,贪食蛇处于“静止”。再考虑下,方向冲突要如何处理?在方向相反的情况下,原有方向又是什么?原有方向不就是 再-1么?

关于贪吃蛇里面的一段代码

4,贪吃蛇 java代码

import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;public class SnakeGame extends JFrame implements KeyListener{private int stat=1,direction=0,bodylen=6,headx=7,heady=8,tailx=1,taily=8,tail,foodx,foody,food;//初始化定义变量public final int EAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量int [][] fillblock=new int [20][20];//定义蛇身所占位置 public SnakeGame() {//构造函数 super("贪吃蛇"); setSize(510,510); setVisible(true);//设定窗口属性 addKeyListener(this);//添加监听 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for(int i=1;i<=7;i++) fillblock[i][8]=EAST;//初始化蛇身属性 direction=EAST;//方向初始化的设置 FoodLocate(); //定位食物 while (stat==1){ fillblock[headx][heady]=direction; switch(direction){ case 1:headx++;break; case 2:headx--;break; case 3:heady++;break; case 4:heady--;break; }//蛇头的前进 if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<0||tailx<0||taily<0||fillblock[headx][heady]!=0){ stat=0; break; } //判断游戏是否结束 try{ Thread.sleep(150); } catch(InterruptedException e){}//延迟 fillblock[headx][heady]=direction; if(headx==foodx&&heady==foody){//吃到食物 FoodLocate(); food=2; try{ Thread.sleep(100); } catch(InterruptedException e){}//延迟 } if(food!=0)food--; else{tail=fillblock[tailx][taily]; fillblock[tailx][taily]=0;//蛇尾的消除 switch(tail){ case 1:tailx++;break; case 2:tailx--;break; case 3:taily++;break; case 4:taily--;break; }//蛇尾的前进 } repaint(); } if(stat==0) JOptionPane.showMessageDialog(null,"GAME OVER","Game Over",JOptionPane.INFORMATION_MESSAGE); } public void keyPressed(KeyEvent e) {//按键响应 int keyCode=e.getKeyCode(); if(stat==1) switch(keyCode){ case KeyEvent.VK_UP:if(direction!=SOUTH) direction=NORTH;break; case KeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break; case KeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break; case KeyEvent.VK_RIGHT:if (direction!=WEST)direction=EAST;break; } } public void keyReleased(KeyEvent e){}//空函数 public void keyTyped(KeyEvent e){} //空函数 public void FoodLocate(){//定位食物坐标 do{ Random r=new Random(); foodx=r.nextInt(20); foody=r.nextInt(20); }while (fillblock[foodx][foody]!=0); } public void paint(Graphics g){//画图 super.paint(g); g.setColor(Color.BLUE); for(int i=0;i<20;i++) for(int j=0;j<20;j++) if (fillblock[i][j]!=0) g.fillRect(25*i+5,25*j+5,24,24); g.setColor(Color.RED); g.fillRect(foodx*25+5,foody*25+5,24,24); }public static void main(String[] args) {//主程序 SnakeGame application=new SnakeGame(); }}

文章TAG:贪吃蛇游戏战绩的代码怎么写  贪吃蛇代码  贪吃  贪吃蛇  游戏  

相关文章

  • 英雄联盟s12总决赛时间,s12决赛lpl

    英雄联盟s12比赛时间介绍全球总决赛时间列表英雄联盟s12全球总决赛的比赛时间是什么时候?英雄联盟s12比赛时间英雄联盟s12比赛时间为2022年9月25日。英雄联盟s12全球总决赛开始时间为2022年9月25日,以官方公布日期为准,lcs联赛负责人chrisgreeley在夏季季后赛新闻发布会上宣布,S12总决赛将由北美接手,在北美四个城市举行。lols12赛程日程安排如下:1。入围:9月30日-10月3日4:00。10月4日-10月5日两点。2.小组赛:10月8日-10月11日5:00。10月14日-..
  • 方舟生存进化手游怎么设置开枪,葡萄游戏厅cf枪战手游怎么设置按键

    葡萄游戏厅cf枪战手游怎么设置按键2,手机版方舟生存怎样开枪3,方舟生存进化怎么生火4,方舟生存进化手机版里面怎么开启伤害预制5,游戏里怎么自己走路和自己开枪呢不受控制6,方舟生存进化手游操作设置具体怎么操作7,方舟生存进化操作详细一点8,天龙八部手游怎么操控人物游戏操作模式介绍9,最强NBA手游操作模式的更改方法按键怎样改1,葡萄游戏厅cf枪战手游怎么设置按键下蹲、跳跃,你点击相应的位置,然后输入按键,就可以使用快捷下蹲、跳跃了呀键盘移动的,你从我的游戏那里,点击CF图标进入游戏就好了望采虚幻2,手..

猜你喜欢

关于帝一应用 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2011-2022 帝一应用 www.diyiapp.com All Rights Reserved. 晋ICP备2023025288号-1

帝一应用所有资源均来自用户上传和网络收集整理,版权归原公司及个人所有。如有版权问题,请及时与我们网站编辑和QQ联系,我们在第一时间予以删除,谢谢!
本站点为非赢利性网站 不接受任何赞助和广告