-
Автор темы
- #1
есть карта по горизонтали от A до M и по вертикали от 1 до 13, каждый квадрат пусть будет 300 метров, через чатгпт начирикал код снизу, но загвоздка в том, что в каждом таком квадрате есть более мелкие квадраты(в данном случае каждый по 100 метров).
мне нужно например стрелять из точки A1 3 в C3 8 и узнать расстояние между этими двумя точками
вопрос собственно в том, как это реализовать?
мне нужно например стрелять из точки A1 3 в C3 8 и узнать расстояние между этими двумя точками
вопрос собственно в том, как это реализовать?
C++:
#include <iostream>
#include <cmath>
// Структура для хранения координат
struct Coordinate {
char column;
int row;
};
// Функция для вычисления расстояния между двумя квадратами
double calculateDistance(const Coordinate& square1, const Coordinate& square2) {
int deltaX = abs(square2.column - square1.column);
int deltaY = abs(square2.row - square1.row);
return std::sqrt(deltaX * deltaX + deltaY * deltaY) * 300.0; // Умножаем на 300 метров
}
// Функция для преобразования буквенно-цифровых координат в числовые координаты
Coordinate parseCoordinate(const std::string& coordinateString) {
Coordinate result;
result.column = coordinateString[0];
result.row = std::atoi(coordinateString.substr(1).c_str());
return result;
}
int main() {
std::string square1Str, square2Str;
std::cout << "Введите координаты первого квадрата (например, A1): ";
std::cin >> square1Str;
std::cout << "Введите координаты второго квадрата (например, F9): ";
std::cin >> square2Str;
Coordinate square1 = parseCoordinate(square1Str);
Coordinate square2 = parseCoordinate(square2Str);
double distance = calculateDistance(square1, square2);
std::cout << "Расстояние между квадратами: " << distance << " метров" << std::endl;
return 0;
}
Последнее редактирование: