zoukankan      html  css  js  c++  java
  • Devc++贪吃蛇

    使用Devc++写的一个简单版贪吃蛇程序,不过,在未配置之前,是不包含图形库的,所以需要自己配置新的环境

    -------------------------------------------------------------分割线----------------------------------------------------------------

    #include<stdio.h>
    #include<graphics.h>
    #include<conio.h>
    #include<time.h>
    #include<windows.h>
    main()
    {
     int x[200]={200,210,220},y[200]={60,60,60},i,n=3,d=3,key;
     int food_x,food_y,flag=0,score=0;
     char str[100];
     initwindow(640,480);
     setcolor(RED);
     outtextxy(50,30,"greedysnake1.0");
     outtextxy(400,30,"score:");//初始化分数显示
     itoa(score,str,10);
     outtextxy(450,30,str);
     rectangle(50,50,500,400);
     setcolor(WHITE);//画初始蛇
     for(i=0;i<n;i++)
      rectangle(x[i],y[i],x[i]+10,y[i]+10);
     while(1)
     {
      if(flag==0)//发食物
      {
       srand((unsigned)time(NULL));
       food_x=rand()%400+50;
       food_y=rand()%300+50;
       while(food_x%10!=0) food_x++;
       while(food_y%10!=0) food_y++;
       flag=1;
       rectangle(food_x,food_y,food_x+10,food_y+10);
      }
      if(food_x==x[0]&&food_y==y[0])//吃食物
      {
       setcolor(BLACK);
       rectangle(food_x,food_y,food_x+10,food_y+10);
       n++;
       flag=0;
       score+=100;
       itoa(score,str,10);//整数分数转换为字符串
       setcolor(WHITE);//显示分数
       outtextxy(450,30,str);
      }
      Sleep(200);//擦蛇
      setcolor(BLACK);
      for(i=0;i<n;i++)
       rectangle(x[i],y[i],x[i]+10,y[i]+10);
      for(i=n-1;i>=1;i--)//移动
      {
       x[i]=x[i-1];
       y[i]=y[i-1];
      }
      if(kbhit()!=0)//如果有按键发生,则执行语句体
      {
       key=getch();
       switch(key)
       {
        case'w':d=1;break;
        case's':d=2;break;
        case'a':d=3;break;
        case'd':d=4;break;
        case'p':getch();
       }
      }
      switch(d)//控制蛇头的方向
      {
       case 1:y[0]-=10;break;
       case 2:y[0]+=10;break;
       case 3:x[0]-=10;break;
       case 4:x[0]+=10;break;
      }
      setcolor(WHITE);//画蛇
      for(i=0;i<n;i++)
       rectangle(x[i],y[i],x[i]+10,y[i]+10);
      if(x[0]<=50&&x[0]>=0||x[0]<=640&&x[0]>=500||y[0]<=50&&y[0]>=0||y[0]<=480&&y[0]>=400)//撞墙死
      {
       break;
      }
     }
     closegraph();
    }

  • 相关阅读:
    DLL库
    C#:时间转换
    视频通信网址
    C#:向exe传值
    C#:复杂条件判断类型(练习)
    注册、卸载DLL
    Windows:常见问题
    WPF:常见问题
    CentOS完美搭建Redis3.0集群并附测试
    xargs命令
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/6482954.html
Copyright © 2011-2022 走看看