ICode9

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

【无标题】

2022-03-21 13:59:38  阅读:156  来源: 互联网

标签:canvas oldHead int void moveDirection 无标题 newHead


#include <stdio.h> 
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define High 20
#define Width 30
int canvas[High][Width]={0};
void gotoxy(int x,int 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;
    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;
}

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define High 20
#define Width 30
int moveDirection;
int canvas[High][Width]={0};
void gotoxy(int x,int y)
{
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X=x;
    pos.Y=y;
    SetConsoleCursorPosition(handle,pos);
}
void moveSnakeByDirection()
{
    int i,j;
    for (i=1;i<High-1;i++)
        for (j=1;j<Width-1;j++)
            if (canvas[i][j]>0)
                 canvas[i][j]++;
                 
    int oldTail_o,oldTail_j,oldHead_i,oldHead_j;
    int max=0;
    
    for (i=1;i<High-1;i++)
        for (j=1;j<Width-1;j++)
            if (canvas[i][j]>0)
{
    if (max<canvas[i][j])
    {
        max=canvas[i][j];
        oldTail_i=i;
        oldTail_j=j;
    }
    if (canvas[i][j]==2)
    {
        oldHead_i=i;
        oldHead_j=j;
    }
}

canvas[oldTail_i][oldTail_j]=0;

if (moveDirection==1)
     canvas[oldHead_i-1][oldHead_j]=1;
if (moveDirection==2)
     canvas[oldHead_i+1][oldHead_j]=1;
if (moveDirection==3)
     canvas[oldHead_i][oldhead_j-1]=1;
if (moveDirection==4)
     canvas[oldHead_i][oldHead_j+1]=1;
}

void startup()
{
    int i,j;
    for (i=0;i<High;i++)
    {
        canvas[i][0]=-1;
        canvas[High-1][j]=-1;
    }
    canvas[High/2][Width/2]=1;
    for (i=1;i<=4;i++)
         canvas[High/2][Width/2-i]i=1;
    moveDirect=4;
}
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");
    }
    Sleep(100);
}

void updateWithoutInput()
{
    moveSnakeByDirection();
}
void updateWithInput()
{
}

int main()
{
    startup();
    while (1)
    {
        show();
        updateWithoutInput();
        upsateWithInput();
    }
    return 0;
}
void updateWithInput()
{
    char input;
    if (kbhit())
    {
        input=getch();
        if (input=='a')
        {
            moveDirect=3;
            moveSnakeByDirection();
        }
    
        else if (input=='d')
         {
             moveDirection=4;
            moveSnakeByDirection();
        }
        else if (input=='w')
        {
            moveDirection=1;
            moveSnakeByDirection();
        }
        else if (input=='s')
        {
            moveDirection=2;
            moveSnakeByDirection();
        }
    }
}

void moveSnakeByDirection()
{
    int i,j;
    for (i=1;i<High-1;i++)
         for (j=1;j<Width-1;j++)
              if (canvas[i][j]>0)
                  canvas[i][j]++;
    int oldTail_i,oldTail_j,oldHead_i,oldHead_j;
    int max=0;
    for (i=1;i<High-1;i++)
         for(j=1;j<Width-1;j++)
             if (canvas[i][j]>0)
             {
                 if (max<canvas[i][j])
                 {
                     max=canvas[i][j];
                     oldTail_i=i;
                     oldTail_j=j;
                 }
                 if (canvas[i][j]==2)
                 {
                     oldHead_i=i;
                     oldHead_j=j;
                 }
             }
    canvas[oldTail_i][oldTail_j]=0;
    int newHead_i,newHead_j;
    if (moveDirection==1)
    {
        newHead_i=oldHead_i-1;
        newHead_j=oldHead_j;
    }
    if (moveDirection==2)
    {
        newHead_i=oldHead_i+1;
        newHead_j=oldHead_j;
    }
    if (moveDirection==3)
    {
        newHead_i=oldHead_i;
        newHead_j=oldHead_j_1;
    }
    if (moveDirection==4)
    {
        newHead_i=oldHead_i;
        newHead_j=oldHead_j+1;
    }
    if (canvas[newHead_i][newHead_j]>0||canvas[newHead_i][newHead_j]==-1)
    {
        printf("游戏失败\n");
    }
    else
        canvas[newHead_i][newHead_j]=1;
}

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

#define High 20
#define Width 30
int moveDirection;
int food_x,food_;
int canvas[High][Width]={0};
void gotoxy(int x,int y)
{
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X;
    pos.Y;
    SetConsoleCursorPosition(handle,pos);
}
void moveSnakeByDirection()
{
    int i,j;
    for (i=1;i<High-1;i++)
         for (j=1;j<Width-1;j++) 
              if (canvas[i][j]>0)
                  canvas[i][j]++;
                  
    int oldTail_i,oldTail_j,oldHead_i,oldHead_j;
    int max=0;
    
    for (i=1;i<High-1;i++)
         for (j=1;j<Width-1;j++)
              if (canvas[i][j]>0)
              {
                  if (max<canvas[i][j])
                  {
                      max=canvas[i][j];
                      oldTail_i=i;
                      oldTail_j=j;
                  }
                  if (canvas[i][j]==2)
                  {
                      oldHead_i=i;
                      oldHead_j=j;
                  }
              }
              
    int newHead_i,newHead_j;
    
    if (moveDirection==1)
    {
        newHead_i=oldHead_i-1;
        newHead_j=oldHead_j;
    }
    if (moveDirection==2)
    {
        newHead_i=oldHead_i+1;
        newHeas_j=oldHead_j;
    }
    if (moveDirection==3)
    {
        newHead_i=oldHead_i;
        newHead_j=oldHead_j-1; 
    }
    if (moveDirection==4)
    {
        newHead_i=oldHead_i;
        newHead_j=oldHead_j+1;
    }
    if (canvas[newHead_i][newHead_j]==-2)
    {
        canvas[food_x][food_y]=0;
        food_x=rand()%(Head-5)+2;
        food_y=rand()%(Width-5)+2;
        canvas[food_x][food_y]=-2;
    }
    else
        canvas[oldTail_i][oldTail_j]=0;
    if (canvas[newHead_i][newHead_j]>0||canvas[newHead-i][newHead_j]==-1)
    {
        printf("游戏失败\n");
        Sleep(2000);
        system("pause");
        exit(0);
    }
    else
        canvas[newHead_i][newHead_j]=1;
}

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-1;j++)
    {
        canvas[0][j]=-1;
        canvas[High-1][j]=-1;
    }
    canvas[High/2][Width/2]=1;
    for (i=1;i<=4;i++)
         canvas[High/2][Width/2-i]=i+1;
         
    moveDirection=4;
    
    food_x=rand()%(High-5)+2;
    food_y=rand()%(Width_5)+2;
    canvas[food_x][food_y]=-2;
}

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("*");
            else if (canvas[i][j]==-2)
                printf("F");
        }
        printf("\n");
    }
    Sleep(100);
}

void updateWirhoutInput()
{
    moveSnakeByDirection();
}

void updateWithInput()
{
    char input;
    if(kbhit())
    {
        input = getch();
        if (input=='a')
        {
            moveDirection=3;
            moveSnakeByDirection();
        }
        else if (input=='d')
        {
            moveDirection=4;
            moveSnakeByDirection();
        }
        else if (input=='w')
        {
            moveDirection=1;
            moveSnakeByDirection();
        }
        else if (input=='s')
        {
            moveDirection=2;
            moveSnakeByDirection();
        }
    }
}

int main()
{
    startup();
    while (1)
    {
        show();
        updateWithoutInput();
        updateWithInput();
    }
    reuturn 0;
}

标签:canvas,oldHead,int,void,moveDirection,无标题,newHead
来源: https://blog.csdn.net/m0_68175010/article/details/123633968

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

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

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

ICode9版权所有