public void setMemento(Player P) { org = new Memento.Originator(P.points); Memento.IntefaceMemento meme = org.savePoints(); ct.add(meme); }
static void Main(string[] args) { Stack <Memento> canvas = new Stack <Memento>(); Memento.Originator originator = new Memento.Originator(); Random rnd = new Random(); //Shape Examples originator.Set(new Rectangle(rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500))); canvas.Push(originator.addToMemento()); originator.Set(new Square(rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500))); canvas.Push(originator.addToMemento()); originator.Set(new Circle(rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500))); canvas.Push(originator.addToMemento()); //originator.undoFromMemento(canvas.Pop()); string help = "*********************************************************\n\tCommands:\n\n\tH \t\t Help -displays this message\n\tA <shape>\t Add <shape to canvas>\n\tU\t\t Undo last operation\n \tR \t\t Redo last operation\n \tP \t\t Print Canvas\n \tC \t\t Clear canvas \n \tG <filename> \t Generate Output File in XML\n \tQ \t\t Quit application\n\n\tShapes => [C = Circle, S = Square, R = Rectangle]\n*********************************************************"; Console.WriteLine(help); string input = Console.ReadLine().ToLower(); while (!input.StartsWith('q')) { if (input.StartsWith('h')) { Console.WriteLine(help); } //Add a Shape else if (input.StartsWith('a')) { string[] inputArray = input.Split(' ', StringSplitOptions.TrimEntries); string inputShape = inputArray[1].ToLower(); Console.WriteLine(inputShape); //Add Circle By User Input if (inputShape.StartsWith('c')) { originator.Set(new Circle(random().Next(1, 500), random().Next(1, 500), random().Next(1, 500))); canvas.Push(originator.addToMemento()); } //Add Rectangle By User Input else if (inputShape.StartsWith('r')) { originator.Set(new Rectangle(rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500))); canvas.Push(originator.addToMemento()); } else if (inputShape.StartsWith('s')) { originator.Set(new Square(rnd.Next(1, 500), rnd.Next(1, 500), rnd.Next(1, 500))); canvas.Push(originator.addToMemento()); } } else if (input.StartsWith('u')) { Memento temp = canvas.Pop(); originator.undoFromMemento(temp); } else if (input.StartsWith('r')) { canvas.Push(originator.redoMemento()); } else if (input.StartsWith('p')) { foreach (Memento i in canvas.ToArray()) { Console.WriteLine(i.savedShape.ToString()); } } else if (input.StartsWith('c')) { while (canvas.Count > 0) { Console.WriteLine("Clearing " + canvas.Pop().savedShape.ToString()); } Console.WriteLine("Console has been cleared"); } else if (input.StartsWith('g')) { string[] inputArray = input.Split(' ', StringSplitOptions.TrimEntries); string fileName = inputArray[1].ToLower(); genFile(fileName + ".xml", canvas); } input = Console.ReadLine().ToLower(); } Console.WriteLine(); Console.WriteLine("Dont't forget to check out any output files you may have created in './OutputFiles' dir"); Console.WriteLine(); Console.WriteLine("GoodBye!"); Console.WriteLine(); }