whtmst
@whtmst
https://band.link/whtmst

Поворот черепашки на +15 градусов каждый цикл, как реализовать?

Здравствуйте. Я новичок в языке C#, прохожу пока курсы от MVA, там задавали ДЗ, я его выполнил, но спустя пару уроков, узнав о новых вещах, решил укоротить код того ДЗ и сделать его лучше(в моем представление). И собственно наткнулся на одну непонятную пока для меня проблему :(
В общем если убрать цикл в методе Main, то моя черепашка рисует линию 75, потом поворачивает на -45 градусов и рисует еще линию 75, после она возвращается в начальную точку. Вот мне надо сделать чтобы следующий ее ход был, рисовать линию 75, поворачивать на -45 + 15 = -30 (новый ее угол поворота) и рисовать линию 75, возвращаться на исходную точку и так делать 7 раз.
Вот код:

static void Main(string[] args)
        {
            int n = -45;
            int len = 150;
            Turtle.Speed = 10;

            for (int i = n; i <= 45; i++)
            {
                Draw(len, n);
            }

        }

        static void Draw(int len, int n)
        {
            int[] array = new int [2];

            for (int i = 0; i < 2; i++)
            {
                Turtle.Move(len / 2);
                Turtle.Turn(array[i] = n);
            }

            Turtle.Turn(180 - n);

            for (int i = 2 - 1; i >= 0; i--)
            {
                Turtle.Move(len / 2);
                Turtle.Turn(-array[i]);
            }

            Turtle.Turn(-180 + n);
        }


Еще раз заранее прошу, не кидаться тапками. Я совсем новичок в языке C#.
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
whtmst
@whtmst Автор вопроса
https://band.link/whtmst
Допер сам :) и сделал то что хотел...

Новый код:
static void Main(string[] args)
        {
            int ang = -60;
            int new_ang = 15;
            int len = 150;
            Turtle.Speed = 10;


            for (int i = 0; i <= 6; i++)
            {
                Draw(len, ang = ang + new_ang);
            }


        }

        static void Draw(int len, int ang)
        {
            int[] array = new int [2];

            for (int i = 0; i < 2; i++)
            {
                Turtle.Move(len / 2);
                Turtle.Turn(array[i] = ang);
            }

            Turtle.Turn(180 - ang);

            for (int i = 2 - 1; i >= 0; i--)
            {
                Turtle.Move(len / 2);
                Turtle.Turn(-array[i]);
            }

            Turtle.Turn(-180 + ang);
        }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы