Хотя ты говоришь мудрёно, то забудь то изучи, согласен, что подкорректировать существующий код, который и не я писал во всём проекте, незнающем весь механизм движения модели в игровом пространстве с реагированием на врагов с использованием анимации вращающихся частей, загрузкой текстур модели, для новичка дело невыполнимое, но можно попытаться как я понял по частичкам информации, создать полную картину приблизительного кода движения модели, в других играх, где код объясняется. Думаю, это не сложнее, чем на пианино научиться играть, главное вникать понемногу, и тогда возможно я и добавлю код программы для танка в проект.
одкорректировать существующий код, который и не я писал во всём проекте, незнающем весь механизм движения модели в игровом пространстве с реагированием на врагов с использованием анимации вращающихся частей, загрузкой текстур модели, для новичка дело невыполнимое,
Это верно только для шибко упрощенных конструкторов. Получив текст на C++, Вы для того, чтобы добраться до "механизма" должны будете пробиться через кучу чисто программистских трудностей. Это как читать книгу на иностранном языке: прежде чем разобраться, кому и что должен Потный Гарри, нужно перевести на русский. Причем, программистские языки труднее переводить, потому что они гораздо менее избыточны: любая ошибка в артикле или окончании - и программа просто умрет. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Генератор "правильных" чисел Смысл в том что бы сделать рандом который будет генерировать только "правильные" числа для деления. Например: 9/3 12/2 1/1 8/4 3/3 и т.д. . То есть нужно сделать что бы генерировало только те числа которые хорошо делятся друг на друга. Можно ли такое сделать? <KS>
Сообщение отредактировал seregakalenik - Суббота, 19 Ноября 2016, 14:03
Генератор "правильных" чисел Смысл в том что бы сделать рандом который будет генерировать только "правильные" числа для деления. Например: 9/3 12/2 1/1 8/4 3/3 и т.д. . То есть нужно сделать что бы генерировало только те числа которые хорошо делятся друг на друга. Можно ли такое сделать?
Топорный вариант: генерировать и проверять делится ли сгенерированное число с заданным. Нет - цикл продолжается.
ТруЪ вариант: N*your_random(...), где N - твоё число. N*your_random(...)/N = your_random(...) соответственно.
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
//--------------------класс Question------------- class Question { public: string question; // вопрос string answer[4]; // ответы int rightAnswer; // верный ответ
Question();
void edit(); // редактировать вопрос(целиком) void display(); // вывод bool ask(); // вывод вопрос с возможностью ответа };
//--------------------класс QuestionList--------- class QuestionList { public: vector<Question> questionList; // лист с вопросами bool results[5]; // результаты int randQuestions[5]; // номера предложенных вариантов
QuestionList();
void addQuestions(); // добавить вопросы bool checkRandQ(int n); // возвращает false если массив содержит n void initRandQ(); // инициализация randQuestions void ask(); // выводим вопросы void displayResult(); // выводим результаты
bool QuestionList::checkRandQ(int n) { /* пробегаем циклом по массиву, если массив * уже содержит число тов возвращаем 0 * если нет иначе 1 по оконании цикла ****/ for(int i = 0; i < 5; i++) { if(randQuestions[i] == n) return false; } return true; }
void QuestionList::initRandQ() { int n; for(int i = 0; i < 5; i++) { do { n = rand() % questionList.size(); }while(!checkRandQ(n)); randQuestions[i] = n; } }
void QuestionList::ask() { initRandQ(); for(int i = 0; i < 5; i++) { results[i] = questionList[randQuestions[i]].ask(); } }
void QuestionList::displayResult() { int count = 0; cout << "\nYou results: "; for(int i = 0; i < 5; i++) { cout << "\nQuestion " << i + 1; if(results[i]) { cout << ": Right!"; count++; } else { cout << ": is not true. Right answer: "; cout << questionList[randQuestions[i]].answer[questionList[randQuestions[i]].rightAnswer]; } } cout << "You scored " << count << "/5"; }
main.cpp:
Код
#include <iostream> #include <questions.h>
using namespace std;
int main() { QuestionList qList; qList.addQuestions(); qList.ask(); qList.displayResult();
system("pause");
return 0; }
Добавлено (04 декабря 2016, 22:04) --------------------------------------------- Обновил
Сообщение отредактировал LP - Воскресенье, 04 Декабря 2016, 22:49
LP, так и подумал, что опечатка в названии. Пока только глазами пробежался. Вопрос, программа выпадает, когда печатает, что ответ верный или наоборот? На какой итерации? Очень может быть, что ты там за диапазон вылазишь. P.S. Пока глазами пробегался, заметил в ask():
Код
temp = (choice == rightAnswer) ? true : false;
Здесь тернарный не нужен, достаточно:
Код
temp = (choice == rightAnswer);
Сообщение отредактировал Rean - Воскресенье, 04 Декабря 2016, 23:04
Помогите, как можно исправить ошибку (инструкция для простых пользователей), есть проект собирается на VS2005, на Win7 и Win10 есть проблема при запуске: "Запуск программы невозможен, так как на компьютере отсутствует MSVCP80.dll"
Попытки установить/удалить пакет Microsoft Visual C++ 2005 не помогают, в каталогах System32/SySWOW64 библиотеки не создаются, а создаются в папке winsxs, но ошибка остаётся. Попытки скопировать библиотеку в корень программы - проблему не решают.
Какие есть вариант исправления ситуации для простых пользователей, так как программой пользуются обычные смертный =) вариант скачать библиотеку, перенести в корень Win/System32 и зарегистрировать библиотеку - не вариант.. Может есть какие-то определенные опции при компилировании проекта?
Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "*" Ошибка C4430 отсутствует спецификатор типа - предполагается int. Ошибка C2238 непредвиденные лексемы перед ";" Ошибка C2061 синтаксическая ошибка: идентификатор "GameObject" Ошибка C2065 GameComponent: необъявленный идентификатор Ошибка C2059 синтаксическая ошибка: > Ошибка C2976 std::vector: слишком мало аргументов шаблон Ошибка C2663 std::vector<_Ty,_Alloc>::push_back: для 2 перегрузок нет допустимого преобразования для указателя "this" Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "*" Ошибка C4430 отсутствует спецификатор типа - предполагается int. Ошибка C2238 непредвиденные лексемы перед ";" Ошибка C2061 синтаксическая ошибка: идентификатор "GameObject" Ошибка C2065 GameComponent: необъявленный идентификатор Ошибка C2059 синтаксическая ошибка: > Ошибка C2976 std::vector: слишком мало аргументов шаблон
Я на 100% уверен, что ошибки выше - на самом деле лживые, а все дело в том, что я в заголовочный файлах F1, есть подключен заголовочный файл F2, в которых подключен заголовочный файл F1, если в этом, то какой вариант - исправление?