Thứ Tư, 16 tháng 3, 2016

game ban sung phien ban li nhung hay vl

Post oleh : nghiahsgs | Rilis : 18:42 | Series :
http://codepad.org/bP4LcTl8
#include<iostream>
#include<Windows.h>
#include <conio.h>
using namespace std;







//-------------------------Screen-------------------------
void clrscr()
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
HANDLE hConsoleOut;
COORD Home = { 0, 0 };
DWORD dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut, &csbiInfo);

FillConsoleOutputCharacter(hConsoleOut, ' ', csbiInfo.dwSize.X * csbiInfo.dwSize.Y, Home, &dummy);
csbiInfo.dwCursorPosition.X = 0;
csbiInfo.dwCursorPosition.Y = 0;
SetConsoleCursorPosition(hConsoleOut, csbiInfo.dwCursorPosition);
}


//screen: goto [x,y]
void gotoXY(int column, int line)
{
COORD coord;
coord.X = column;
coord.Y = line;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}






void TextColor(int color)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
//**************************************
enum TrangThai{
UP,
DOWN,
LEFT,
RIGHT,

};
struct ToaDo{
int x, y;
};


struct Vat{
ToaDo dot[2];
TrangThai tt;
};
struct Dan{
ToaDo td[1000];
TrangThai trangThai;
};
void KhaiBao(Vat &vat){
//khai bao toa do cua vat
vat.dot[1].x = 16;
vat.dot[1].y = 3;
vat.dot[0].x = 16;
vat.dot[0].y = 4;
//khai bao trang thai cua vat
vat.tt = DOWN;
}

void HienThi(Vat &vat){
clrscr();
//hien thi toa do cua vat
gotoXY(vat.dot[0].x, vat.dot[0].y);
cout << (char)197;
gotoXY(vat.dot[1].x, vat.dot[1].y);
cout << (char)178;

}
void DiChuyen(Vat &vat,Dan &dan,int &dem){
if (_kbhit()){
char key = _getch();
if (key == 'a' || key == 'A'){
vat.tt = LEFT;
vat.dot[0].x--;
vat.dot[1].x--;
}
if (key == 's' || key == 'S'){
vat.tt = DOWN;
vat.dot[0].y++;
vat.dot[1].y++;
}
if (key == 'd' || key == 'D'){
vat.tt = RIGHT;
vat.dot[0].x++;
vat.dot[1].x++;
}
if (key == 'w' || key == 'W'){
vat.tt = UP;
vat.dot[0].y--;
vat.dot[1].y--;
}
//xet ban nhau
if (key == 'l' || key == 'L'){
if (vat.tt == UP){

dan.td[dem].x = vat.dot[1].x;
dan.td[dem].y = vat.dot[1].y - 2;

dan.trangThai = UP;
dem++;
}
if (vat.tt == DOWN){

dan.td[dem].x = vat.dot[1].x;
dan.td[dem].y = vat.dot[1].y + 2;

dan.trangThai = DOWN;
dem++;
}
if (vat.tt == LEFT){

dan.td[dem].x = vat.dot[1].x-2;
dan.td[dem].y = vat.dot[1].y;

dan.trangThai = LEFT;
dem++;
}
if (vat.tt == RIGHT){

dan.td[dem].x = vat.dot[1].x+2;
dan.td[dem].y = vat.dot[1].y;

dan.trangThai = RIGHT;
dem++;
}

}
}
//xet trang thai de dieu khien dan

for (int i = 0; i < dem; i++){
gotoXY(dan.td[i].x, dan.td[i].y);

if (dan.trangThai == UP){
if (dan.td[i].y>0)
{
dan.td[i].y--;
cout << "*";
}
}
if (dan.trangThai == DOWN){
if (dan.td[i].y<30)
{
dan.td[i].y++;
cout << "*";
}
}
if (dan.trangThai == LEFT){
if (dan.td[i].y>0)
{
dan.td[i].x--;
cout << "*";
}
}
if (dan.trangThai == RIGHT){
if (dan.td[i].y>0)
{
dan.td[i].x++;
cout << "*";
}
}
}


// xet trang thai
if (vat.tt == UP){
vat.dot[0].x = vat.dot[1].x;
vat.dot[0].y = vat.dot[1].y - 1;
}
if (vat.tt == DOWN){
vat.dot[0].x = vat.dot[1].x;
vat.dot[0].y = vat.dot[1].y + 1;
}
if (vat.tt == LEFT){
vat.dot[0].x = vat.dot[1].x-1;
vat.dot[0].y = vat.dot[1].y ;
}
if (vat.tt == RIGHT){
vat.dot[0].x = vat.dot[1].x+1;
vat.dot[0].y = vat.dot[1].y;
}
}
int main(){
Vat vat;
Dan dan;
int dem = 0;
KhaiBao(vat);
while (true)
{
//Hien thi
HienThi(vat);
//nhap phim
DiChuyen(vat,dan,dem);
//xu ly

Sleep(100);
}

return 0;
}

google+

linkedin