gpt4 book ai didi

c++ - 文本冒险解析器 C++

转载 作者:行者123 更新时间:2023-11-28 02:09:25 24 4
gpt4 key购买 nike

<分区>

我和伙伴在我们的文本冒险游戏中遇到解析器问题。我们不断收到“段错误(核心已转储)”和“在抛出‘std::out_of_range’实例后终止调用” what(): basic_string::substr中止(核心转储)”错误,我们不知道如何修复它。

 void nextTurn(Player *player)
{
string input;
Parser *parser;
cout << player -> getName() << "'s turn: ";
cin >> input;
parser -> parse(input);

delete parser;
}

这是我们从主类中的玩家那里获得关于每个玩家每回合想要什么的输入的地方。这是我们的 Parser.cpp 类。

  #include <iostream>
#include "Parser.h"
using namespace std;

/**
* Construct a new parser class
*/
Parser::Parser(Player *p, TownArea *t)
{
Parser::player = p;
Parser::townArea = t;
}

/**
* Parse the input text
*/
void Parser::parse(string input)
{
string action = input.substr(0, input.find(" "));

//Look around the room
if(action == "look" || action == "help")
{
cout << "Current Room: " << Parser::townArea -> getName() << endl;
cout << Parser::townArea -> getDescription() << endl;
return;
}

//See player's inventory
if(action == "inventory" || action == "inv")
{
vector<string> inventory = Parser::player -> getInventory();

if(inventory.size() == 0) cout << "Inventory is empty." << endl;
else
{
cout << "Inventory: " << endl << "| ";
for(int i = 0; i < inventory.size(); i++)
{
cout << inventory[i] << " | ";
}
cout << endl;
}
return;
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com