#include #include #include #include using nlohmann::json; using std::string; string get(json j, string name) { std::cout << name << " ("; for(int i = 0; i < j.size(); ++i) std::cout << i << ':' << j[i] << ' '; std::cout << ") : "; int index; std::cin >> index; if(index < 0 || index >= j.size()) return ""; return j[index]; } int main() { std::ifstream f1("cards/template.json"); json data = json::parse(f1); std::ifstream f2("cards/traits.json"); json traits = json::parse(f2); std::ifstream f3("cards/factions.json"); json factions = json::parse(f3); std::ifstream f4("cards/lines.json"); json lines = json::parse(f4); std::cout << "Name: "; std::cin.ignore(); string name; std::getline(std::cin, name); data["name"] = name; data["faction"] = get(factions, "Faction"); data["line"] = get(lines, "Line"); std::cout << "Power: "; int power; std::cin >> power; data["power"] = power; for(string trait = get(traits, "Trait"); trait != ""; trait = get(traits, "Trait")) if(trait != "") data["traits"].push_back(trait); std::ofstream out("cards/"+string(data["faction"])+"/"+name+".json"); out << data.dump(2) << std::endl; return 0; }