#include "minecarts.h" #include using namespace std; void Rail :: travel (istream & is) { visit (); travel_to (is, to); } void Rail :: visit () { if (visited) { cout << "Du känner igen dig..." << endl; } else { visited = true; } } void Rail :: connect (Rail * rail) { to = rail; } void Rail :: travel_to (istream & is, Rail * target) { if (target == nullptr) { cout << "Rälsen tog slut, du spårar ur!" << endl; } else { cout << "Du fortsätter framåt!" << endl; target->travel (is); } } void Junction :: travel (istream & is) { visit (); cout << "Vill du svänga (y/n)? "; is >> ans; if (ans == 'n') { travel_to (is, to); } else { cout << "Du valde att svänga!" << endl; travel_to (is, right); } } void Junction :: visit () { if (visited) { cout << "Du har känner igen den här korsningen. " << "Senast du var här så "; if (ans == 'n') { cout << "åkte du rakt fram!"; } else { cout << "svängde du!"; } cout << endl; } else { visited = true; } } void Junction :: connect (Rail * forward, Rail * other) { to = forward; right = other; } Destination :: Destination (string const & name) : name { name } { } void Destination :: travel (istream & is) { cout << "Du kom fram till " << name << ", bra jobbat!" << endl; }