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;
}
Trương Tấn Phát viết 19:32 ngày 01/10/2018

Nó thông báo rồi đấy: kbhit đã lỗi thời, dùng _kbhit để thay thế.

Bài liên quan
0