Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220

Игра "пятнашки": событие, что-бы кнопки передвигались на пустое место

22.08.2014, 16:10. Показов 2293. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем.
Подскажите пожалуста как написать событие Clik так что-бы кнопкт передвигались на пустое место ???



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
        public Form1()
            {
            InitializeComponent ();
            }
 
        MyButton[,] button = new MyButton [4,4];
        int W = 90;
            int H = 90;
        private void Form1_Load( object sender, EventArgs e )
            {
            
            for( int i = 0; i < 4; i++ )
                {
                for( int j = 0; j < 4; j++ )
                    {
                    button[ i , j ] = new MyButton ();
                    button[ i, j ].Name = "Buttons";
                    button[ i, j ].Size = new Size ( W, H );
                    button[ i, j ].Location = new Point ( 10 + W * i, 10 + H * j );
                    button[ i, j ].Click += this.button_Click_1;
                    button[ i, j ].Text = ( ( i + 1 ) ).ToString ();
                    if( j == 1 )
                        {
                        button[ i, j ].Text = ( ( i + 1 ) + 4 ).ToString ();
                        }
                    if( j == 2 )
                        {
                        button[ i, j ].Text = ( ( i + 1 ) + 8 ).ToString ();
                        }
                    if( j == 3 )
                        {
                        button[ i, j ].Text = ( ( i + 1 ) + 12 ).ToString ();
                        }
                    Controls.Add ( button[ i, j ] );
                    button[ i, j ].BackColor = Color.RoyalBlue;
                    button[ i, j ].Font = new Font ( "Arial", 25 );
                    if( button[ i, j ].Text == "16" )
                        {
                        button[ i, j ].Visible = false;
                        }
                    }
                }
            }
        public void button_Click_1( object sender, EventArgs e )
            {
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.08.2014, 16:10
Ответы с готовыми решениями:

Игра пятнашки, как проверить где пустое поле для перемещения соседних кнопок
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Доброго времени суток Вам)Подскажите пожалуйста что за пустое место при просмотре в браузере?
&lt;div class=&quot;rightblock&quot;&gt; &lt;div class=&quot;product&quot;&gt; &lt;a href=&quot;#&quot; class=&quot;cafe&quot;&gt;&lt;img src=&quot;userfiles/cofe.png&quot; width=&quot;135&quot;...

Игра "Пятнашки", не работают кнопки
Доброй ночи, уважаемые программисты! Я делаю игру &quot;Пятнашки&quot; на Javascript, нужно чтоб код клавиш (вверх,вниз,вправо,влево) работали. Я...

7
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
22.08.2014, 16:15
Что значит на пустое место? Если вы знаете координаты нужного места то просто пропишите их. А если не знаете...вам нужно завести переменную, которая магическим образом хранит координаты пустых мест.
0
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220
22.08.2014, 16:26  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
Что значит на пустое место? Если вы знаете координаты нужного места то просто пропишите их. А если не знаете...вам нужно завести переменную, которая магическим образом хранит координаты пустых мест.

У меня масив 4*4 16кнопка visibiliti=false. это и есть пустое место.

как прописать так чтобы рядом стоящая кнопка передвигалась на место 16"пустой"???

намекните пожалуйста а то в голову ничего не лезет.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
22.08.2014, 16:30
mixon-21,
Вам нужно плавное передвижение? создай цикл и потихоньку меняйте координаты кнопки в нужное место
0
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220
22.08.2014, 16:32  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
Вам нужно плавное передвижение? создай цикл и потихоньку меняйте координаты кнопки в нужное место
А как это сделать???
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
22.08.2014, 17:07
Цитата Сообщение от mixon-21 Посмотреть сообщение
А как это сделать???
Что сделать? вы не можете в цикле менять координаты? Все тоже самое как в создании массива кнопок, только кнопка одна, и она получает новые координаты, а не создается ее копия. Если проблема с определением координат то тут уж извините геометрия. Сейчас нет времени изобритать велосипед, но должен прокатить такой алгоритм
У вас есть две точки:
1)текущие координаты кнопки. (x1,y1)
2)то, куда кнопка должна переместиться. (x2,y2)
Находите катеты: x=x2-x1 и y=y2-y1. По т. Пифагора находите длину гипотенузы G.
В каждой итерации к исходным координатам добавляется x/G и y/G. Если координаты получились дробные, то округляете их. Ну и плюс проверки всякие.
1
 Аватар для mixon-21
5 / 5 / 3
Регистрация: 05.03.2013
Сообщений: 220
22.08.2014, 21:52  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
У вас есть две точки:
1)текущие координаты кнопки. (x1,y1)
2)то, куда кнопка должна переместиться. (x2,y2)
Находите катеты: x=x2-x1 и y=y2-y1. По т. Пифагора находите длину гипотенузы G.


???????????????????????????????????????? ???

Добавлено через 26 минут
Покажите на примере пожалуйста

Добавлено через 11 минут


Добавлено через 3 часа 40 минут
Спасибо разобрался с перестановкой кнопок.

Подскажите пожалуста как их перемешивать на старте???
1
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
23.08.2014, 08:03
Создаете событие form load, в нем несколько раз вызываете метод перестановки кнопок. Можно сделать выбор индексов рандомным, чтобы каждый раз по новому перемешивал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.08.2014, 08:03
Помогаю со студенческими работами здесь

Убрать пустое место
Здравствуйте, как убрать пустое место в формуле?

Пустое место в ІЕ на высоту блока
Ребята, помогите пожалуйста! Если ссылка еще активна и открывать в ІЕ, то проблему можна увидеть здесь...

Пустое место между блоками
Ну я думаю на скриншоте все видно. И ссылку на живой пример я тоже оставил, че за дела ? Просто такого не было, и тут бац, просто с...

Пустое место QSystemTrayIcon в Win64
Доброго времени суток. Приложение при запуске создаёт QSystemTrayIcon, добавляет ему контекстное меню, обработку дабл-клик, иконку и...

Блок занимает пустое место
Здравствуйте. С помощью js добавляю к меню-шапки позиционирование fixed при скролле. Проблема в том, что следующий блок занимает его...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru