Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef ESTADO_H
- #define ESTADO_H
- #include <iostream>
- #include <sstream>
- #include <stdlib.h>
- #include <memory>
- using namespace std;
- class Estado {
- public:
- int x,y;
- char oper;
- Estado *predecesor;//ptr al predecesor
- public:
- Estado(int i,int j,char o,Estado *p) {
- x=i;
- y=j;
- oper=o;
- predecesor=p;
- }
- //Constructor de copia
- Estado(const Estado &e) {
- x=e.x;
- y=e.y;
- oper=e.oper;
- predecesor=e.predecesor;
- }
- ~Estado() {
- }
- string toString () const{
- stringstream out;
- if ( predecesor!=NULL)
- out << "Info: " << x << "," << y << ", Oper: " << oper << ", Pred: " << predecesor->x << "," << predecesor->y << endl;
- else
- out << "Info: " << x << "," << y << ", Oper: " << oper;
- return out.str();
- }
- Estado operator= (const Estado &e) {
- x=e.x;
- y=e.y;
- oper=e.oper;
- predecesor=e.predecesor;
- }
- bool operator== (const Estado &e) {
- return x==e.x && y==e.y;
- }
- friend ostream &operator<<(ostream &os, const Estado &e) {
- if ( e.predecesor!=NULL)
- os << "Info: " << e.x << "," << e.y << ", Oper: " << e.oper << ", Pred: " << e.predecesor->x << "," << e.predecesor->y;
- else
- os << "Info: " << e.x << "," << e.y << ", Oper: " << e.oper;
- return os;
- }
- };
- #endif /* ESTADO_H */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement