#include<stdio.h>
#include<conio.h>
#include<windows.h>
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int TABx=40,TABy=24,TABix=1,TABiy=1;
int x=0,y=22,n=1,p;
int ix=1,iy=1;
int key;
void moveball()
{
for(int i=0;i<n;i++)
{
p=1;
x=x+ix; //0+1= 1 2 3 4 5 ....80
y=y-iy; //24-1= 23 22 21 20 ....0
if(x<=0 || x>=80 )
{
ix=(-1)*ix; //-1*12=-80
}
if(y<=0 || y>=24)
{
iy=(-1)*iy; //-1*24= -24
}
}
}
void movebar(){
if((y==TABy)&&

x>=TABx&&x<=TABx+24))
{
iy=(-1)*iy; //-1*24= -24
if(iy>0){
y=y-1;
}
if(iy<0){
y=y+1;
}
}
if((y==TABy+1||y==TABy-1)&&

x>=TABx&&x<=TABx+24)) {
p=0;
Sleep(20);
}
if(y>24)y=24;
if(y<0)y=0;
system("cls");
}
void printball(){
gotoxy(x,y);
printf("O");
}
void chkbar (){
if(TABx<=0)
TABx=0;
else if(TABx>=60)
TABx=60;
if(TABy<=0)
TABy=0;
else if(TABy>=24)
TABy=24;
}
void printbar(){
gotoxy(TABx,TABy);
printf("IIIIIIIIIIIIIIIIIIII");
// printf("%d,%d",TABx,TABy);
Sleep(50);
}
void Key(){
if(kbhit()&&p==1)
{
key=getch();
if(key == 27)
{
exit(0); //ESC
//break;
}
if(key == 119)
{
TABy--; // w
}
if(key == 115)
{
TABy++; // s
}
if(key == 97)
{
TABx--; // a
}
if(key == 100)
{
TABx++; // d
}
}
}
int main()
{
do{
moveball();
movebar();
chkbar();
printball();
printbar();
Key();
}while(1);
}
เวลากดkey แล้วอัดบอลกับขอบมันทะลุบาอาคับผม
แก้ไขปัญหาบอลทะลุบาเวลาอัดกับขอบยังไงดีคับ
#include<conio.h>
#include<windows.h>
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int TABx=40,TABy=24,TABix=1,TABiy=1;
int x=0,y=22,n=1,p;
int ix=1,iy=1;
int key;
void moveball()
{
for(int i=0;i<n;i++)
{
p=1;
x=x+ix; //0+1= 1 2 3 4 5 ....80
y=y-iy; //24-1= 23 22 21 20 ....0
if(x<=0 || x>=80 )
{
ix=(-1)*ix; //-1*12=-80
}
if(y<=0 || y>=24)
{
iy=(-1)*iy; //-1*24= -24
}
}
}
void movebar(){
if((y==TABy)&&
{
iy=(-1)*iy; //-1*24= -24
if(iy>0){
y=y-1;
}
if(iy<0){
y=y+1;
}
}
if((y==TABy+1||y==TABy-1)&&
p=0;
Sleep(20);
}
if(y>24)y=24;
if(y<0)y=0;
system("cls");
}
void printball(){
gotoxy(x,y);
printf("O");
}
void chkbar (){
if(TABx<=0)
TABx=0;
else if(TABx>=60)
TABx=60;
if(TABy<=0)
TABy=0;
else if(TABy>=24)
TABy=24;
}
void printbar(){
gotoxy(TABx,TABy);
printf("IIIIIIIIIIIIIIIIIIII");
// printf("%d,%d",TABx,TABy);
Sleep(50);
}
void Key(){
if(kbhit()&&p==1)
{
key=getch();
if(key == 27)
{
exit(0); //ESC
//break;
}
if(key == 119)
{
TABy--; // w
}
if(key == 115)
{
TABy++; // s
}
if(key == 97)
{
TABx--; // a
}
if(key == 100)
{
TABx++; // d
}
}
}
int main()
{
do{
moveball();
movebar();
chkbar();
printball();
printbar();
Key();
}while(1);
}
เวลากดkey แล้วอัดบอลกับขอบมันทะลุบาอาคับผม