01/10/2018, 17:18
Không dùng được lệnh khbit trên VS

mình làm game con rắn, chạy trên dev c++ thì ok, nhưng chuyển sang visua studio c++ 2017 thì nó báo lỗi như hình trên?
nó báo lỗi hàm kbhit, nhưng mình không biết sửa thế nào ?
mn ai biết giúp mình cách sửa lỗi này với?
cảm ơn!
code của mình:
#include <iostream>
#include <conio.h>
#include "console.h"
#include <windows.h>
#include <cstdlib>
#include <ctime>
#define consoleWith 56
#define consoleHeight 27
using namespace std;
void ShowCur(bool CursorVisibility)
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cursor = {1, CursorVisibility};
SetConsoleCursorInfo(handle, &cursor);
}
enum TrangThai {UP, DOWN, LEFT, RIGHT};
struct ToaDo
{
int x, y; // x la hoanh do; y la tung do.
};
struct Snake
{
ToaDo dot[50];
int n;
TrangThai tt;
};
struct HoaQua
{
ToaDo td;
};
void KhoiTao(Snake &snake, HoaQua &hq) //khoi tao con ran.
{
hq.td.x = 9; //hoanh do ban dau cua hoa qua.
hq.td.y = 10; //tung do ban dau cua hoa qua.
snake.n = 1; // so dot ban dau cua con ran.
snake.dot[0].x = 5; // hoanh do con ran ban dau.
snake.dot[0].y = 3; // tung do con ran ban dau.
snake.tt = RIGHT;
}
void HienThi(Snake snake, HoaQua hq)
{
// in tuong:
for (int i = 2; i <= consoleHeight; i++)
{
gotoXY(4, i);
putchar (164);
// cout << "|";
}
for (int i = 4; i <= consoleWith; i=i+2)
{
gotoXY(i, 2);
putchar(164);
// cout << "-";
}
for (int i = 2; i < consoleHeight; i++)
{
gotoXY(consoleWith, i);
putchar (164);
}
for (int i = 4; i <= consoleWith; i=i+2)
{
gotoXY(i, consoleHeight);
putchar(164);
}
// in hoa qua:
gotoXY(hq.td.x, hq.td.y); // vi tri cua hoa qua.
putchar(174); // hoa qua.
// in than con ran:
for (int i = 1; i < snake.n; i++)
{
gotoXY(snake.dot[i].x, snake.dot[i].y); //vi tri cua tung dot con ran.
putchar(187); // dot cua con ran.
}
// in dau con ran:
gotoXY(snake.dot[0].x, snake.dot[0].y); //vi tri cua dau con ran.
cout << "H"; // dau cua con ran.
}
void DieuKhien(Snake &snake) //phan than hoan doi vi tri; phan dau dieu khien.
{
for (int i = snake.n - 1; i > 0; i--)
{
snake.dot[i] = snake.dot[i-1]; // phan than con ran.
}
if (kbhit()) // neu phat hien co phim nhan vao.
{
int key = _getch(); // lay phim nhap vao.
if (key == 'A' || key == 'a') // neu phim nhan vao la A,a
snake.tt = LEFT; // quy dinh la LEFT
else if (key == 'D' || key == 'd')
snake.tt = RIGHT;
else if (key == 'W' || key == 'w')
snake.tt = UP;
else if (key == 'S' || key == 's')
snake.tt = DOWN;
}
if (snake.tt == LEFT) // neu trang thai = LEFT
{
snake.dot[0].x--; // hoanh do giam = con ran qua trai.
}
else if (snake.tt == RIGHT){
snake.dot[0].x++;
}
else if (snake.tt == UP){
snake.dot[0].y--;
}
else if (snake.tt == DOWN){
snake.dot[0].y++;
}
}
void XoaManHinh(Snake &snake)
{
gotoXY(snake.dot[snake.n-1].x, snake.dot[snake.n-1].y); //di chuyen con tro toi vi tri duoi con ran
cout << " "; // xoa duoi con ran
}
int XuLy(Snake &snake, HoaQua &hq)
{
if (snake.dot[0].x == hq.td.x && snake.dot[0].y == hq.td.y) // neu cai dau ran cham vao hoa qua
{
for (int i = snake.n; i > 0; i--)
{
snake.dot[i] = snake.dot[i-1]; // vi tri dot thay doi de nhuong cai dau ran moi them.
}
snake.n++; //con ran dai them 1 dot
if (snake.tt == LEFT) // neu trang thai = LEFT
snake.dot[0].x--; // hoanh do giam = con ran qua trai.
else if (snake.tt == RIGHT)
snake.dot[0].x++;
else if (snake.tt == UP)
snake.dot[0].y--;
else if (snake.tt == DOWN)
snake.dot[0].y++;
hq.td.x = 6 + rand() % (consoleWith-6);
hq.td.y = 4 + rand() % (consoleHeight-4);
}
if (snake.dot[0].x == 4 || snake.dot[0].x == consoleWith || snake.dot[0].y == 2 || snake.dot[0].y == consoleHeight) // neu cham bien.
return -1; //thua game.
for (int i = 1; i < snake.n; i++)
{
if (snake.dot[0].x == snake.dot[i].x && snake.dot[0].y == snake.dot[i].y) //neu cham than ran.
return -1; //thua game.
}
return 0;
}
int main()
{
srand (time(NULL)); // khoi tao bo sinh so ngau nhien.
Snake snake; // khoi tao ten con ran.
HoaQua hq; // khoi tao hoa qua.
KhoiTao (snake, hq);
while (1)
{
// Hien thi:
HienThi (snake, hq);
ShowCur(false);// an chuot tren console.
//XOA MAN HINH
XoaManHinh(snake);
// Dieu khien con ran:
DieuKhien (snake);
//hien thi
HienThi(snake, hq);
// Xu ly an hoa qua:
XuLy(snake, hq);
//Xu ly thang, thua game:
if (XuLy(snake, hq) == -1)
{
gotoXY((consoleWith-4)/2 - 4, (consoleHeight-2)/2);
cout << "GAME OVER" << endl;
system ("pause");
}
Sleep (100);
}
return 0;
}
Bài liên quan
Nó thông báo rồi đấy:
kbhit
đã lỗi thời, dùng_kbhit
để thay thế.