ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

贪吃蛇:构造小蛇

2022-03-18 19:04:24  阅读:171  来源: 互联网

标签:canvas Width 小蛇 void 构造 High int 贪吃蛇 printf


#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>

#define High 20                                //游戏画面尺寸
#define Width 30

//全局变量
int canvas[High][Width]={0} ;                //二维数组储存游戏画布对应的元素
    //    0为空格,-1为边框#,1为蛇头@,大于1的正数为蛇身*
    
void gotoxy(int x,int y)                     //将光标移动到(x,y) 位置
{
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X=x;
    pos.Y=y;
    SetConsoleCursorPosition(handle,pos);


 void startup()                                //数据的初始化 
 {
     int i,j;
     
     //初始化边框
    for(i=0;i<High;i++)
    {
        canvas[i][0] = -1;
        canvas[i][Width-1] = -1;
    } 
    for(j=0;j<Width;j++)
    {
        canvas[0][j]=-1;
        canvas[High-1][j]=-1;
    }
    //初始化蛇头位置
    canvas[High/2][Width/2]=1;
    //初始化蛇身,画布中的元素值分别为2、3、4、5等
    for(i=1;i<=4;i++)
        canvas[High/2][Width/2-i] =i+1;
}
 
void show()                                //显示画面
{
     gotoxy(0,0);                               //光标移动到原点位置,以下重画清屏 
     int i,j;    
     for(i=0;i<High;i++)
     {
         for(j=0;j<Width;j++)
         {
             if(canvas[i][j]==0)
                 printf(" ");                //输出空格
            else  if(canvas[i][j]==-1)
                printf("#");                //输出边框
            else  if(canvas[i][j]==1)
                printf("@");                //输出蛇头@
            else  if(canvas[i][j]>1)
                printf("*");                //输出蛇身* 
        }
        printf("\n"); 
    }
 

  
void updateWithoutInput()                    //与用户输入无关的更新
{

   
void updateWithInput()                    //与用户输入有关的更新
{

 
int main ()
{
    startup();                            //数据的初始化 
    while(1)                            //游戏循环执行 
    {
        show();                            //显示画面 
        updateWithoutInput();            //与用户输入无关的更新 
        updateWithInput();                //与用户输入有关的更新 
    } 
    return 0;
}

标签:canvas,Width,小蛇,void,构造,High,int,贪吃蛇,printf
来源: https://blog.csdn.net/weixin_68151375/article/details/123582141

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有