Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103

Движение фигуры квадрата по матрице

06.12.2018, 02:51. Показов 1938. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа демократы,что - то не получается перемещение квадрата из 4-х нулей по матрице ,состоящей из чисел в консоли.Что то типа тетриса в консоли.Как это исправить и получше реализовать .Tell me please!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
class Figure
    {
        int index = 1;
        static int a = 10;
        static int b = 5;
        int[,] arrBloks = new int[a,b];
        string[] ArrNameFigure = new string[] {"квадрат","брус","тавр","уголок"};
        string NameFigure = "";
        public Figure()
        {
        }
       public void CreateMatrixBloks()
        {
            for (int i = 0; i < a; ++i)
            {
                for (int w = 0; w < b; ++w)
                {
                    arrBloks[i, w] = index++;
                    Console.Write(String.Format("{0,3}", arrBloks[i, w]));
                }
                 Console.WriteLine();
            }
        }
       public int x = 0;
       public int y = 0;
       public int element1, element2, element3, element4;// сохраняем элементы матрицы для возврата на свои места 
        //при работе таймера
       public void UpDate(string nameFigure_)
       {
           Console.Write("\n");
           switch (nameFigure_)
           {
               case "квадрат": element1 = arrBloks[y, x]; element2 = arrBloks[y, x + 1] = 0;
                   element3 = arrBloks[y + 1, x] = 0; element4 = arrBloks[y + 1, x + 1];
                   arrBloks[y, x] = 0; arrBloks[y, x + 1] = 0;
                   arrBloks[y + 1, x] = 0; arrBloks[y + 1, x + 1] = 0;
                   break;
           }
           for (int i = 0; i < a; ++i)
           {
               for (int w = 0; w < b; ++w)
               {
                   // arrBloks[i, w] = index++;
                   Console.Write(String.Format("{0,2}", arrBloks[i, w]));
               }
               Console.WriteLine();
           }
           if (arrBloks[y, x] == 0 && arrBloks[y, x + 1] == 0)
           {
              // arrBloks[y, x] = element1;
               arrBloks[y, x + 1] = element1;
           }
       }
    }
    class Program
    {
       static Figure figure;
       static System.Timers.Timer tmr = new System.Timers.Timer();
        static void Main(string[] args)
        {
           // System.Timers.Timer tmr = new System.Timers.Timer();
            tmr.Elapsed += new ElapsedEventHandler(Timer_Tik);
            tmr.Interval = 5000;
            tmr.Enabled = true;
            figure = new Figure();
            figure.CreateMatrixBloks();
            Thread.Sleep(3000);
            figure.UpDate("квадрат");
            Console.ReadKey();
        }
         static  void Timer_Tik(object sender, ElapsedEventArgs e)
        {
            //figure.x++; 
            figure.y++;
            Console.Write(figure.y.ToString());
            if (figure.y > 7) tmr.Stop();
            figure.UpDate("квадрат");
        }
    }
Добавлено через 8 минут
Да увидел кое-какие ошибки.Видно сказывается ночное время.Буду исправлять.Но тема актуальна!

Добавлено через 1 час 6 минут
Как добиться чтобы матрица не загружалась всякий раз в консоли после метода обновления UpDate()??? Куча вопросов,и не одного ответа!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2018, 02:51
Ответы с готовыми решениями:

Даны радиус окружности и сторона квадрата. У какой фигуры большая площадь?
Даны радиус окружности и сторона квадрата. В какой фигуры большая площадь? Как можно написать попроще?

Движение фигуры по часовой стрелке
Ребят что сделать чтобы фигура делала движение по кругу по часовой стрелке?? Если можно с примером каким нибудь квадрат даже?

Движение квадрата
Помогите пожалуйста надо нарисовать в делфи квадрат , чтоб он двигался во все 4 стороны с помощью кнопок не оставляя при этом следов:)

1
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
07.12.2018, 23:09  [ТС]
Научил козла баяну. Форум это ОГО-ГО!!!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
namespace MatrixForTetris1
{
    class Figure
    {
        int index = 1;
        static int a = 10;
        static int b = 5;
        int[,] arrBloks = new int[a,b];
        string[] ArrNameFigure = new string[] {"квадрат","брус","тавр","уголок"};
        //string NameFigure = "";
        public Figure()
        {
        }
       public void CreateMatrixBloks()
        {
            for (int i = 0; i < a; ++i)
            {
                for (int w = 0; w < b; ++w)
                {
                    arrBloks[i, w] = index++;
                    Console.Write(String.Format("{0,2}", arrBloks[i, w]));
                }
                 Console.WriteLine();
            }
        }
       public int x = 0;
       public int y = 0;
       public int element1, element2, element3, element4;// сохраняем элементы матрицы для возврата на свои места 
        //при работе таймера
       public void UpDate(string nameFigure_)
       {
           Console.Write("\n");
           element1 = arrBloks[y, x]; element2 = arrBloks[y, x + 1];
           element3 = arrBloks[y + 1, x]; element4 = arrBloks[y + 1, x + 1];
           switch (nameFigure_)
           {
               case "квадрат" :
                   arrBloks[y, x] = 0; arrBloks[y, x + 1] = 0;
                   arrBloks[y + 1, x] = 0; arrBloks[y + 1, x + 1] = 0;
                   break;
           }
    
           Console.Clear();  // Главное при обновлении (Бывшая ошибка!!!)
 
          for (int i = 0; i < a; ++i)
           {
               for (int w = 0; w < b; ++w)
               {
                   // arrBloks[i, w] = index++;
                   Console.Write(String.Format("{0,3}", arrBloks[i, w]));
               }
               Console.WriteLine();
           }
           
           if (arrBloks[y, x] == 0 && arrBloks[y, x + 1] == 0)
           {
               arrBloks[y, x] = element1;
               arrBloks[y, x + 1] = element2;
               arrBloks[y + 1, x] = element3;
               arrBloks[y + 1, x + 1] = element4;
           }
       }
    }
    class Program
    {
       static Figure figure;
       static System.Timers.Timer tmr = new System.Timers.Timer();
        static void Main(string[] args)
        {
            tmr.Elapsed += new ElapsedEventHandler(Timer_Tik);
            tmr.Interval = 5000;
            tmr.Enabled = true;
            figure = new Figure();
            figure.CreateMatrixBloks();
            Thread.Sleep(3000);
            Console.ReadKey();
        }
         static  void Timer_Tik(object sender, ElapsedEventArgs e)
        {
            //figure.x++; 
            figure.y++;
            Console.Write(figure.y.ToString());
            if (figure.y > 7)
            {
               tmr.Stop();
            }
            figure.UpDate("квадрат");
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2018, 23:09
Помогаю со студенческими работами здесь

Движение квадрата.
Помогите пожалуйста с задачкой. Составить программу для построения на экране квадрата.Предусмотреть движение квадрата в четыре стороны по...

Движение квадрата
Не получается реализовать движение квадрата при нажатии на кнопку. unit Unit1; interface uses Windows, Messages, SysUtils,...

Движение квадрата с клавиатуры
Не могу понять как реализовать движение квадрата с клавиатуры с помощью команд Forward(x) Left Right. Нужен пример хотябы для...

delphi 7 движение квадрата
ребят помогите как сделать чтобы квадрат двигался из стороны в сторну? (напишите программу) у меня вот так тока он уходит в сторну и...

Движение квадрата в поле
Здравствуйте. В данный момент пишу игру с использованием WINAPI и возникла трудность: по ходу игры по полю должны перемещаться квадраты....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru