C中的方形问题

时间:2016-01-23 20:06:41

标签: c windows

好的,所以我发誓这段代码应该可行,但显然它没有。我试图在C中创建一个Snake游戏,但是我的舞台没有正确显示。我试图这样做,所以舞台里面没有人物显示,但只有周边,有人可以帮我吗?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/* boolean functions */
#define TRUE 1;
#define FALSE 0;

/* board */
const int length = 20;
const int height = 20;

/* Global Variables */
int x, y, foodX, foodY;
int gameEnd;
int score;

/* movement */
typedef enum {STOP = 0, UP, DOWN, LEFT, RIGHT} movement;
movement move;

/* Game Setup */
void Game()
{
gameEnd = FALSE;
move = STOP;
y = height / 2;
x = length / 2;
foodX = rand() % length;
foodY = rand() % height;
score = 0;
}

/* What is displayed on screen */
void Display()
{
system("cls");
int i;

for( i = 0; i < length + 2; i++)
    printf("#\n");

for( i = 0; i < height; i++)
{
    int j;
    for(j = 0; j < length; j++)
    {
        if( j == 0 )
            printf("#");

            printf(" ");

        if( j == length - 1)
            printf("#\n");
    }

}

 for( i = 0; i < length + 2; i++)
    printf("#\n");



}


void Input()
{

}

void Logic()
{

}

int main(void)
{
Game();
while (!gameEnd)
{
    Display();
    Input();
    Logic();
    Sleep(10);
}

return 0;
}

1 个答案:

答案 0 :(得分:0)

首先避免在#define之后生成分号,当您尝试将常量TRUE传递给函数时,会出现编译错误。

要正确显示,您应该删除&#34; \ n&#34;来自printf的第一个和最后一个用于函数Display的循环。并在for循环之后添加printf(&#34; \ n&#34;)。它应该是:

void Display()
{
    int i;
    int j;
    system("cls");

    for( i = 0; i < length + 2; i++)
        printf("#");

    printf("\n");

    for( i = 0; i < height; i++)
    {
        for(j = 0; j < length; j++)
        {
            if( j == 0 )
                printf("#");

            printf(" ");

            if( j == length - 1)
                printf("#\n");
        }

    }

    for( i = 0; i < length + 2; i++)
        printf("#");
}

如果你想要显示一个角色&#34; *&#34;在位置(x,y),你只需要改变:

    printf(" ");

由:

if (y == i && x == j)
    printf("*");
else
    printf(" ");