public void DrawSymbolWithOffset(string symbol, int step, Point2D.MoveDirection direction, Point2D currentPoint) { try { iOComponent.SetCursor(currentPoint.XCoordinate, currentPoint.YCoordinate); iOComponent.WriteOutput(symbol); currentPoint.Move(direction, step); } catch (ArgumentOutOfRangeException e) { iOComponent.Clear(); iOComponent.WriteOutput(e.Message); } }
public void RunDrawer() { Board dboard = new Board(this.curveDrawer, drawSettings.BoardSizeX, drawSettings.BoardSizeY, drawSettings.StartCoordinateX, drawSettings.StartCoordinateY); phraseProvider.ReadResourceFile(); string exit = String.Empty; do { iO.Clear(); iO.SetCursor(drawSettings.StartCoordinateX, drawSettings.StartCoordinateY); Point2D current = dboard.GetCurrenttPosition(); current.XCoordinate = drawSettings.StartCoordinateX; current.YCoordinate = drawSettings.StartCoordinateY; dboard.DrawBoard(drawSettings.HorizontalFiller, drawSettings.VerticalFiller, drawSettings.CornerFiller); iO.SetCursor(0, drawSettings.InfoCoordinateY); iO.WriteOutput(phraseProvider.GetPhrase("rules")); iO.SetCursor(settingsProvider.GetDrawSettings().StartCoordinateX + 1, settingsProvider.GetDrawSettings().StartCoordinateY + 1); DrawMethod draw = null; for (int i = 0; i < drawers.Count(); i++) { int number = this.GetUserNumber(); dboard.inputes.Push(i + 1); if (i != 0) { foreach (KeyValuePair <int, DrawMethod> kv in drawers) { draw -= this.drawers[kv.Key]; } } draw += this.drawers[number]; draw(dboard); iO.SetCursor(drawSettings.StartCoordinateX, drawSettings.StartCoordinateY); } iO.SetCursor(0, drawSettings.ExitCoordinateY); iO.WriteOutput(phraseProvider.GetPhrase("Exit")); exit = iO.ReadInput(); }while (exit != settingsProvider.GetDrawSettings().Exit); }