Илья КалияУченик (167)
2 месяца назад
11010000 10011110 11010001 10000111 11010000 10110101 11010000 10111101 11010001 10001100 100000 11010000 10111111 11010000 10111110 11010000 10111011 11010000 10110101 11010000 10110111 11010000 10111101 11010000 10110000 11010001 10001111 100000 11010000 10111000 11010000 10111101 11010001 10000100 11010000 10111110 11010001 10000000 11010000 10111100 11010000 10110000 11010001 10000110 11010000 10111000 11010001 10001111
#include<conio.h>
#include<thread>
#include<chrono>
void Move_car(char (*arr)[119],int *car_tire_1x,int *car_tire_1y,int *car_tire_2x,int *car_tire_2y,int *car_tire_3x,int *car_tire_3y,int* car_tire_4x,int *car_tire_4y,int *bodyx,int *bodyY)
{
int button;
button = getch();
if(button == 87 || button == 119 || button == 214 || button == 246)
{
*car_tire_1x--;*car_tire_1y--;*car_tire_2x--;*car_tire_2y--;*car_tire_3x--;*car_tire_3y--;*car_tire_4x--;*car_tire_4y--;*bodyx;bodyY--;
}
}
void Init_car(char (*arr)[119],int *car_tire_1x,int *car_tire_1y,int *car_tire_2x,int *car_tire_2y,int *car_tire_3x,int *car_tire_3y,int* car_tire_4x,int *car_tire_4y,int *bodyx,int *bodyY)
{
arr[*car_tire_1x][*car_tire_1y] = '@';
arr[*car_tire_2x][*car_tire_2y] = '@';
arr[*bodyx][*bodyY] = '+';
arr[*car_tire_3x][*car_tire_3y] = '@';
arr[*car_tire_4x][*car_tire_4y] = '@';
}
void Draw_road(int *width,int *height,char (*arr)[119])
{
for(int i = 0;i < *width;i++)
{
std::cout<<std::endl;
for(int j = 0;j < *height;j++)
{
std::cout<<arr[i][j];
}
}
}
void Init_road(int *width,int *height,char (*arr)[119])
{
for(int i = 0;i < *width;i++)
{
for(int j = 0;j < *height;j++)
{
if(i == 0 ||i == *width - 1)
arr[i][j] = '#';
else
arr[i][j] =' ';
}
}
}
int main()
{
int width = 11,height = 119;
int car_tire_1x = width / 2 + 1 ,car_tire_1y = 1,car_tire_2x = width / 2 - 1,car_tire_2y = 1,car_tire_3x = width / 2 + 1,car_tire_3y = 3,car_tire_4x = width / 2 - 1,car_tire_4y = 3,bodyx = width / 2 ,bodyY = 2;
*car_tire_3xPTR;int *car_tire_3yPTR;int *car_tire_4xPTR;int *car_tire_4yPTR;int *bodyxPTR;int *bodyYPTR;
char arr[11][119];
int *widthPTR;
widthPTR = &width;
int *heightPTR;
heightPTR =&height;
Init_road(&width,&height,arr);
Init_car(arr,&car_tire_1x,&car_tire_1y,&car_tire_2x,&car_tire_2y,&car_tire_3x,&car_tire_3y,&car_tire_4x,&car_tire_4y,&bodyx,&bodyY);
Draw_road(&width,&height,arr);
Move_car(arr,&car_tire_1x,&car_tire_1y,&car_tire_2x,&car_tire_2y,&car_tire_3x,&car_tire_3y,&car_tire_4x,&car_tire_4y,&bodyx,&bodyY);
Draw_road(&width,&height,arr);
}
По задумке при нажатии на кнопки W,w,W,Ц,ц, функция изменяет значение переменных координат машины,которые я передал в неё через указатель. И по логике оно должно изменять переменные напрямую через указатель,но при проверке обнаружилось,что значения не изменяются,что не даёт программе правильно работать. В чём может быть проблема?