Я начинающий студент C ++ и в настоящее время работаю над текстовой RPG.Мне удалось реализовать различные функции, которые помогают пользователю проверять местоположение, взаимодействовать с предметами, проверять инвентарь, осматриваться и т. Д., Но у меня не получается получить хорошую рабочую систему движений.
Теперь я понимаю, что ООП, очевидно, будет НАМНОГО более эффективным и менее расстраивающим, чем путь по функции, но я делаю это для класса, и мы еще ничего не узнали о классах / объектах(Мы даже не изучали векторы / массивы в нашем классе).
Вот мой код, чтобы попытаться заставить движение работать:
#include <iostream>
#include <string>
#include <boost/algorithm/string.hpp>
using namespace std;
void movement(string action, int& currentRoom) {
if (action == "MOVE NORTH") {
if (currentRoom == 1) {
currentRoom = 2;
// This part is just to check if the loop happened and changed values.
cout << currentRoom << " " << "You are now in room two." << endl;
}
}
}
int main() {
int currentRoom;
string action;
cout << "Type 'move [direction]'" << endl;
currentRoom = 1;
getline(cin, action);
boost::to_upper(action);
// This is to check (for testing purposes for me) to see if the string
// converted to uppercase properly.
cout << action << endl;
getline(cin, action);
movement(action, currentRoom);
}
Теперь, это не окончательный код, который я внедряю в свою игру.Я только что создал небольшой файл, чтобы попытаться выработать логику / синтаксис этой функции перемещения.Когда я запускаю этот код, я могу набрать «переместить север», и он успешно переходит в «ДВИЖЕНИЕ СЕВЕР», но функция, похоже, не вызывает и не выполняет никаких действий.Что я здесь не так делаю?Можно ли как-нибудь сделать это проще для себя, не полностью опираясь на ООП?
Как я уже сказал, я не смог выучить классы / объекты, кроме того, что читал в Интернете.и я чувствую, что сейчас я бы взял на себя слишком много усилий, чтобы попытаться выучить / реализовать их должным образом за такое короткое время ... но, может быть, было бы к лучшему, если бы я это сделал?Я не уверен.
Любая помощь и вклад очень ценится.