求组easyx图形库问题和kbhit键盘输入后窗口闪烁的问题

本人想设计一个坦克大战的游戏,刚用了kbhit函数键盘操作这个坦克移动时,我的窗口一直在闪烁!求哪位大帮我 试着运行这个程序,萌新刚学easyx图形库想做个游戏。

代码如下:

#include <iostream>
#include  <graphics.h> 
#include<conio.h>
#include<windows.h>
using namespace std;

//全局变量
int x ;
int y ;
void Update()
{
    x = 100;
    y = 180;
}
//   坦克图形
void  show() 
{
    initgraph(1200, 640);
    BeginBatchDraw();

    setbkcolor(WHITE);
    cleardevice();
    setfillcolor(GREEN);
    setlinecolor(GREEN);

    fillrectangle(x, y, x+250, y+120);
    setlinecolor(BLACK);
    fillrectangle(x+80, y-30, x+170, y);
    setfillcolor(BLACK);
    FlushBatchDraw();
    fillroundrect(x-30, y+120, x+280, y+170, 40, 40);
    setfillcolor(BROWN);
    fillrectangle(x+250, y+40, x+380, y+70);

    Sleep(50);
    EndBatchDraw();
    _getch();
    closegraph();
}

void Updatewithinput()
{
    char input;
    if (_kbhit())
    {
        input = _getch();
        if(input=='a')
          x=x-50;
        if(input=='d')
            x=x+50;
    }

}


int main()
{
        Update();

        while (1)
        {
            show();
            Updatewithinput();
        }

    return 0;

}

#include <iostream> 
#include <graphics.h> 
#include<conio.h> 
#include<windows.h> 
using namespace std;
//全局变量 
int x; int y;
void Update()

{
    initgraph(1200, 640);
    x = 100;
    y = 180;
    setbkcolor(WHITE);

} // 坦克图形 
void show() {

    BeginBatchDraw();
    cleardevice();
    setfillcolor(GREEN);
    setlinecolor(GREEN);
    fillrectangle(x, y, x + 250, y + 120);
    setlinecolor(BLACK);
    fillrectangle(x + 80, y - 30, x + 170, y);
    setfillcolor(BLACK);

    fillroundrect(x - 30, y + 120, x + 280, y + 170, 40, 40);
    setfillcolor(BROWN);
    fillrectangle(x + 250, y + 40, x + 380, y + 70);
    FlushBatchDraw();
    Sleep(50);
    EndBatchDraw();

}
void Updatewithinput()
{
    char input;
    input = _getch();
    if (input == 'a')
        x = x - 50;
    if (input == 'd')
        x = x + 50;
}
int main() {
    Update();
    while (1)
    {
        show();
        Updatewithinput();
    }

    closegraph();
    return 0;
}