Rey000 R Rey000 Регистрация 1 Сен 2013 Сообщения 74 Репутация 0 Спасибо 0 Монет 0 9 Дек 2024 #1 Почему когда я запускаю код, окно сразу-же закрывается (библеотеки) (размеры окна) struct Digit { sf::RectangleShape rect; sf::Text text; bool active; }; (рандомное число) std:air<int, int> calculateBullsAndCows(const std::string& guess, const std::string& secret) { int bulls = 0, cows = 0; for (int i = 0; i < SECRET_NUMBER_LENGTH; ++i) { if (guess == secret) { ++bulls; } else if (secret.find(guess) != std::string::npos) { ++cows; } } return { bulls, cows }; } int main() { (вывод рандомного числа) sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Быки и коровы" (шрифт) std::vector<Digit> digits; for (char c = '0'; c <= '9'; ++c) { Digit d; d.rect.setSize({ 60, 60 }); d.rect.setOutlineThickness(2); d.rect.setOutlineColor(sf::Color::Black); d.rect.setFillColor(sf::Color::White); d.text.setFont(font); d.text.setString(std::string(1, c)); d.text.setCharacterSize(36); d.active = true; digits.push_back(d); } int x = 20, y = 80; for (int i = 0; i < digits.size(); ++i) { digits.rect.setPosition(x, y); digits.text.setPosition(x + 15, y + 12); x += 70; if ((i + 1) % 5 == 0) { x = 20; y += 70; } } std::string currentInput; while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) { window.close(); } if (event.type == sf::Event::MouseButtonReleased && event.mouseButton.button == sf::Left) { sf::Vector2i mousePos = sf::getPosition(window); for (int i = 0; i < digits.size(); ++i) { if (digits.active && digits.rect.getGlobalBounds().contains(mousePos.x, mousePos.y)) { currentInput += digits.text.getString(); if (currentInput.size() >= SECRET_NUMBER_LENGTH) { std:air<int, int> result = calculateBullsAndCows(currentInput, secretNumber); if (result.first == SECRET_NUMBER_LENGTH) { std::cout << "Вы выиграли! Секретное число было: " << secretNumber << std::endl; window.close(); } else { std::cout << "Быки: " << result.first << ", Коровы: " << result.second << std::endl; } currentInput.clear(); } } } } } sf::Text inputText; inputText.setFont(font); inputText.setString(currentInput); inputText.setCharacterSize(48); inputText.setPosition(20, 20); window.clear(sf::Color::White); for (int i = 0; i < digits.size(); ++i) { window.draw(digits.rect); window.draw(digits.text); } window.draw(inputText); window.display(); } return 0; }
Почему когда я запускаю код, окно сразу-же закрывается (библеотеки) (размеры окна) struct Digit { sf::RectangleShape rect; sf::Text text; bool active; }; (рандомное число) std:air<int, int> calculateBullsAndCows(const std::string& guess, const std::string& secret) { int bulls = 0, cows = 0; for (int i = 0; i < SECRET_NUMBER_LENGTH; ++i) { if (guess == secret) { ++bulls; } else if (secret.find(guess) != std::string::npos) { ++cows; } } return { bulls, cows }; } int main() { (вывод рандомного числа) sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Быки и коровы" (шрифт) std::vector<Digit> digits; for (char c = '0'; c <= '9'; ++c) { Digit d; d.rect.setSize({ 60, 60 }); d.rect.setOutlineThickness(2); d.rect.setOutlineColor(sf::Color::Black); d.rect.setFillColor(sf::Color::White); d.text.setFont(font); d.text.setString(std::string(1, c)); d.text.setCharacterSize(36); d.active = true; digits.push_back(d); } int x = 20, y = 80; for (int i = 0; i < digits.size(); ++i) { digits.rect.setPosition(x, y); digits.text.setPosition(x + 15, y + 12); x += 70; if ((i + 1) % 5 == 0) { x = 20; y += 70; } } std::string currentInput; while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) { window.close(); } if (event.type == sf::Event::MouseButtonReleased && event.mouseButton.button == sf::Left) { sf::Vector2i mousePos = sf::getPosition(window); for (int i = 0; i < digits.size(); ++i) { if (digits.active && digits.rect.getGlobalBounds().contains(mousePos.x, mousePos.y)) { currentInput += digits.text.getString(); if (currentInput.size() >= SECRET_NUMBER_LENGTH) { std:air<int, int> result = calculateBullsAndCows(currentInput, secretNumber); if (result.first == SECRET_NUMBER_LENGTH) { std::cout << "Вы выиграли! Секретное число было: " << secretNumber << std::endl; window.close(); } else { std::cout << "Быки: " << result.first << ", Коровы: " << result.second << std::endl; } currentInput.clear(); } } } } } sf::Text inputText; inputText.setFont(font); inputText.setString(currentInput); inputText.setCharacterSize(48); inputText.setPosition(20, 20); window.clear(sf::Color::White); for (int i = 0; i < digits.size(); ++i) { window.draw(digits.rect); window.draw(digits.text); } window.draw(inputText); window.display(); } return 0; }
tikhdimiv T tikhdimiv Регистрация 23 Ноя 2013 Сообщения 83 Репутация 0 Спасибо 0 Монет 0 9 Дек 2024 #2 int main() { // Генерация секретного числа std::string secretNumber = generateRandomNumber(SECRET_NUMBER_LENGTH); std::cout << "Секретное число: " << secretNumber << std::endl; // Создание окна sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Быки и коровы" std::cout << "Окно создано." << std::endl; // Загрузка шрифта sf::Font font; if (!font.loadFromFile("path/to/font.ttf") { std::cerr << "Не удалось загрузить шрифт!" << std::endl; return -1; } std::cout << "Шрифт загружен." << std::endl; // Остальной код... while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) { window.close(); std::cout << "Окно закрыто событием." << std::endl; } // Дополнительные отладочные сообщения } // Рендеринг } return 0; }
int main() { // Генерация секретного числа std::string secretNumber = generateRandomNumber(SECRET_NUMBER_LENGTH); std::cout << "Секретное число: " << secretNumber << std::endl; // Создание окна sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Быки и коровы" std::cout << "Окно создано." << std::endl; // Загрузка шрифта sf::Font font; if (!font.loadFromFile("path/to/font.ttf") { std::cerr << "Не удалось загрузить шрифт!" << std::endl; return -1; } std::cout << "Шрифт загружен." << std::endl; // Остальной код... while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) { window.close(); std::cout << "Окно закрыто событием." << std::endl; } // Дополнительные отладочные сообщения } // Рендеринг } return 0; }
санек2 С санек2 Регистрация 28 Ноя 2012 Сообщения 85 Репутация 0 Спасибо 0 Монет 0 9 Дек 2024 #3 динаху
leo5223 L leo5223 Регистрация 4 Дек 2013 Сообщения 95 Репутация 0 Спасибо 0 Монет 0 9 Дек 2024 #4 Я HTML еле изучил. Это что за хрень?
vasjatka-2000@mail.ru V vasjatka-2000@mail.ru Регистрация 29 Июл 2013 Сообщения 67 Репутация 0 Спасибо 0 Монет 0 9 Дек 2024 #5 Напиши в конце main: system("pause"