Пятница, 29 Марта 2024, 12:41

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Программирование » C/C++ » Вопрос-Ответ (C++) (Вопросы по С++ задаём здесь.)
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
Andrey1973Дата: Четверг, 25 Августа 2016, 22:30 | Сообщение # 1501
уже был
Сейчас нет на сайте
Благодарю за совет!

Хотя ты говоришь мудрёно, то забудь то изучи, согласен, что подкорректировать существующий код, который и не я писал во всём проекте, незнающем весь механизм движения модели в игровом пространстве с реагированием на врагов с использованием анимации вращающихся частей, загрузкой текстур модели, для новичка дело невыполнимое, но можно попытаться как я понял по частичкам информации, создать полную картину приблизительного кода движения модели, в других играх, где код объясняется. Думаю, это не сложнее, чем на пианино научиться играть, главное вникать понемногу, и тогда возможно я и добавлю код программы для танка в проект.
GudleifrДата: Пятница, 26 Августа 2016, 11:22 | Сообщение # 1502
почти ветеран
Сейчас нет на сайте
Цитата Andrey1973 ()
одкорректировать существующий код, который и не я писал во всём проекте, незнающем весь механизм движения модели в игровом пространстве с реагированием на врагов с использованием анимации вращающихся частей, загрузкой текстур модели, для новичка дело невыполнимое,
Это верно только для шибко упрощенных конструкторов. Получив текст на C++, Вы для того, чтобы добраться до "механизма" должны будете пробиться через кучу чисто программистских трудностей. Это как читать книгу на иностранном языке: прежде чем разобраться, кому и что должен Потный Гарри, нужно перевести на русский. Причем, программистские языки труднее переводить, потому что они гораздо менее избыточны: любая ошибка в артикле или окончании - и программа просто умрет.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
seregakalenikДата: Суббота, 19 Ноября 2016, 14:02 | Сообщение # 1503
был не раз
Сейчас нет на сайте
Генератор "правильных" чисел
Смысл в том что бы сделать рандом который будет генерировать только "правильные" числа для деления. Например: 9/3 12/2 1/1 8/4 3/3 и т.д. . То есть нужно сделать что бы генерировало только те числа которые хорошо делятся друг на друга. Можно ли такое сделать?


<KS>

Сообщение отредактировал seregakalenik - Суббота, 19 Ноября 2016, 14:03
SaiteiДата: Суббота, 19 Ноября 2016, 15:57 | Сообщение # 1504
старожил
Сейчас нет на сайте
Цитата seregakalenik ()
Генератор "правильных" чисел
Смысл в том что бы сделать рандом который будет генерировать только "правильные" числа для деления. Например: 9/3 12/2 1/1 8/4 3/3 и т.д. . То есть нужно сделать что бы генерировало только те числа которые хорошо делятся друг на друга. Можно ли такое сделать?

Топорный вариант: генерировать и проверять делится ли сгенерированное число с заданным. Нет - цикл продолжается.

ТруЪ вариант: N*your_random(...), где N - твоё число. N*your_random(...)/N = your_random(...) соответственно.
seregakalenikДата: Суббота, 19 Ноября 2016, 21:09 | Сообщение # 1505
был не раз
Сейчас нет на сайте
Saitei, Подскажи пожалуйста как написать свой рандом.

<KS>

Сообщение отредактировал seregakalenik - Суббота, 19 Ноября 2016, 21:09
freeprogrammerДата: Воскресенье, 20 Ноября 2016, 01:04 | Сообщение # 1506
участник
Сейчас нет на сайте
Цитата seregakalenik ()
Saitei, Подскажи пожалуйста как написать свой рандом.

береш функцию рандом и прибавляешь своё число, вот тебе свой рандом. Не понятен вопрос. Что именно ты хочешь сделать?


Medieval Checkers , Aeronauts, Funny Animals, KickItUp Soccer Brazil, Dragon Fire & Fury
SaiteiДата: Воскресенье, 20 Ноября 2016, 02:08 | Сообщение # 1507
старожил
Сейчас нет на сайте
seregakalenik,
http://en.cppreference.com/w/cpp/numeric/random
https://stackoverflow.com/questions/7114043/random-number-generation-in-c11-how-to-generate-how-do-they-work

Если делать для старого С++99, то погугли про ф-цию rand.

Или ты имел ввиду как написать свой генератор псевдослучайных чисел (ГПСЧ)?
FlyOfFlyДата: Воскресенье, 20 Ноября 2016, 09:35 | Сообщение # 1508
заслуженный участник
Сейчас нет на сайте
Цитата seregakalenik ()
Saitei, Подскажи пожалуйста как написать свой рандом.

ПГСЧ работает так

1.Получение максимального числа
2.Математические действия с сидом
3.Рандомное число и новый сид это получение остатка от результата математических действий, деленного на максимальное число рандома

1.Минимальное число 5, максимальное число 10 сид 1999
2.tempRand = 99*1999=197901(там сложнее, ну для примера сойдет)
3.seed = ((tempRand)%(10-5) ) + 5 =6
4.return seed


Сообщение отредактировал FlyOfFly - Воскресенье, 20 Ноября 2016, 09:40
LPДата: Воскресенье, 04 Декабря 2016, 22:04 | Сообщение # 1509
частый гость
Сейчас нет на сайте
При компиляции никаких ошибок не выдает, ошибка во время выполнения функции displayResult() некоторые варианты выводит, а потом вылетает.

questions.h:


questions.cpp


main.cpp:


Добавлено (04 декабря 2016, 22:04)
---------------------------------------------
Обновил


Сообщение отредактировал LP - Воскресенье, 04 Декабря 2016, 22:49
dalikivugДата: Воскресенье, 04 Декабря 2016, 22:47 | Сообщение # 1510
почетный гость
Сейчас нет на сайте
LP, где функция displayRand?
LPДата: Воскресенье, 04 Декабря 2016, 22:49 | Сообщение # 1511
частый гость
Сейчас нет на сайте
dalikivug, displayResult(), исправил. Совсем уже башка не варит. Ошибка в displayResult()
ReanДата: Воскресенье, 04 Декабря 2016, 23:01 | Сообщение # 1512
участник
Сейчас нет на сайте
LP, так и подумал, что опечатка в названии. Пока только глазами пробежался. Вопрос, программа выпадает, когда печатает, что ответ верный или наоборот? На какой итерации? Очень может быть, что ты там за диапазон вылазишь.
P.S. Пока глазами пробегался, заметил в ask():
Код

temp = (choice == rightAnswer) ? true : false;

Здесь тернарный не нужен, достаточно:
Код

temp = (choice == rightAnswer);


Сообщение отредактировал Rean - Воскресенье, 04 Декабря 2016, 23:04
dalikivugДата: Воскресенье, 04 Декабря 2016, 23:01 | Сообщение # 1513
почетный гость
Сейчас нет на сайте
дебаж индексы
скорее всего проблема в
Код

cout << questionList[randQuestions[i]].answer[questionList[randQuestions[i]].rightAnswer];


перепиши адекватней
по типу

questionIndex = randQuestions[i];
question = questionList[questionIndex ];
questionAnswer = question.answer;
rightQuestion = questionList[randQuestions[i]];
rightAnswer = rightQuestion.answer

и дебаггером
LPДата: Понедельник, 05 Декабря 2016, 10:22 | Сообщение # 1514
частый гость
Сейчас нет на сайте
Rean, на четвертой, при выполнении этой строки:
Код
cout << questionList[randQuestions[i]].answer[questionList[randQuestions[i]].rightAnswer];

За подсказку с тернарным спасибо.
dalikivug, спасибо, просто не знал как такое дебажить, попробую)

Добавлено (05 декабря 2016, 10:22)
---------------------------------------------
dalikivug, всё работает, ещё раз спасибо)

geralexДата: Суббота, 18 Марта 2017, 12:34 | Сообщение # 1515
участник
Сейчас нет на сайте
Подскажите каким образом можно вывести в консоле спецсимволы?

Код
string strMytestString("ღ♥ஐAlex๑♥●");
    cout << strMytestString;
    return 0;
falcowareДата: Суббота, 18 Марта 2017, 12:36 | Сообщение # 1516
старожил
Сейчас нет на сайте
geralex, попробывать Юникод?
TWTДата: Понедельник, 17 Апреля 2017, 16:04 | Сообщение # 1517
уже был
Сейчас нет на сайте
При компиляции проекта не создаётся файл exe, можете помочь?



Вот текст ошибки

1>------ Сборка начата: проект: GofL, Конфигурация: Release x64 ------
1>main.cpp
1>sfml-window-s.lib(VideoModeImpl.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_EnumDisplaySettingsW"
1>sfml-window-s.lib(WglContext.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_CreateWindowExA"
1>sfml-window-s.lib(WglContext.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_DestroyWindow"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_DestroyWindow"
1>sfml-window-s.lib(WglContext.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ShowWindow"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ShowWindow"
1>sfml-window-s.lib(WglContext.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetDC"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetDC"
1>sfml-window-s.lib(WglContext.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ReleaseDC"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ReleaseDC"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_TrackMouseEvent"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_TranslateMessage"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_DispatchMessageW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_PeekMessageW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SendMessageW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_DefWindowProcW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_CallWindowProcW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_RegisterClassW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_UnregisterClassW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_CreateWindowExW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_FlashWindowEx"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetWindowPos"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetAsyncKeyState"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_MapVirtualKeyW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetCapture"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetCapture"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ReleaseCapture"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetForegroundWindow"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetForegroundWindow"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetWindowTextW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetClientRect"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetWindowRect"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_AdjustWindowRect"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetCursor"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ScreenToClient"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetWindowLongW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetWindowLongW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetWindowLongPtrW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_SetWindowLongPtrW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_GetWindowThreadProcessId"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_LoadCursorW"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_CreateIcon"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_DestroyIcon"
1>sfml-window-s.lib(WindowImplWin32.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_ChangeDisplaySettingsW"
1>sfml-window-s.lib(JoystickImpl.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_RegCloseKey"
1>sfml-window-s.lib(JoystickImpl.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_RegOpenKeyExW"
1>sfml-window-s.lib(JoystickImpl.cpp.obj) : error LNK2001: неразрешенный внешний символ "__imp_RegQueryValueExW"
1>C:\Users\TWT\documents\visual studio 2017\Projects\GofL\x64\Release\GofL.exe : fatal error LNK1120: неразрешенных внешних элементов: 43
1>Сборка проекта "GofL.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
geralexДата: Четверг, 20 Апреля 2017, 18:42 | Сообщение # 1518
участник
Сейчас нет на сайте
Добрый вечер!

Помогите, как можно исправить ошибку (инструкция для простых пользователей), есть проект собирается на VS2005, на Win7 и Win10 есть проблема при запуске: "Запуск программы невозможен, так как на компьютере отсутствует MSVCP80.dll"

Попытки установить/удалить пакет Microsoft Visual C++ 2005 не помогают, в каталогах System32/SySWOW64 библиотеки не создаются, а создаются в папке winsxs, но ошибка остаётся. Попытки скопировать библиотеку в корень программы - проблему не решают.

Какие есть вариант исправления ситуации для простых пользователей, так как программой пользуются обычные смертный =) вариант скачать библиотеку, перенести в корень Win/System32 и зарегистрировать библиотеку - не вариант.. Может есть какие-то определенные опции при компилировании проекта?
SaiteiДата: Воскресенье, 23 Апреля 2017, 20:38 | Сообщение # 1519
старожил
Сейчас нет на сайте
geralex, использовать флаг /MT во время компиляции релиза.
FlyOfFlyДата: Четверг, 20 Июля 2017, 11:02 | Сообщение # 1520
заслуженный участник
Сейчас нет на сайте
Так, знаю вопрос тупой, ну все же, у меня есть два класса
Код
#include "GameObject.h"
class GameComponent
{
public:
    GameObject* gameObject;
    GameComponent(GameObject &gameObject);
    virtual void Update(float delta);
    virtual void Draw(sf::RenderWindow *window);
};

Код
#pragma once
#include <SFML/Graphics.hpp>
#include <vector>
#include "GameComponent.h"
class  GameObject: public sf::Transformable
{
public:
    std::vector<GameComponent*> components;
    GameObject(GameObject &parent);
    GameObject();
    GameObject* parent;
    sf::Transform getGlobalTransform();
    ~GameObject();
    virtual void Update(float delta);
    virtual void Draw(sf::RenderWindow *window);
};


И выводит следующие ошибки:
Я на 100% уверен, что ошибки выше - на самом деле лживые, а все дело в том, что я в заголовочный файлах F1, есть подключен заголовочный файл F2, в которых подключен заголовочный файл F1, если в этом, то какой вариант - исправление?
Форум игроделов » Программирование » C/C++ » Вопрос-Ответ (C++) (Вопросы по С++ задаём здесь.)
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг