Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/35: Рейтинг темы: голосов - 35, средняя оценка - 4.94
 Аватар для ROG1993
0 / 0 / 2
Регистрация: 27.01.2013
Сообщений: 94

Шахматная доска цвета

21.03.2013, 22:47. Показов 7608. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ребят есть 64 пикчербокс они все в массиве ВИЗУАЛ БЕЙСИК 6.0
индекс начинается с 1 до 64
как реализоват код чтобы все клетки выли закрашены (черно-белый)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2013, 22:47
Ответы с готовыми решениями:

Создать приложение «Шахматная доска». Исправить код
Создать приложение «Шахматная доска» для рисования квадратного поля, покрытого клетками с чередующимися, как на шахматной доске, цветами....

Шахматная доска. Выяснить, являются ли поля (k, l) и (m, n) полями одного цвета
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе - номер горизонтали. Даны...

Шахматная доска: определить являются ли поля (к, l) и (m, n) полями одного цвета
Поле шахматной доски определяется парой натуральных чисел: первое число - номер вертикали (при счете слева направо), второе - номер...

55
Заблокирован
19.07.2016, 15:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от paau Посмотреть сообщение
Сделай индексы с 1 по 64, а не с 0 по 63 и все.
paau!
Легко сказать сделай! Как я сделаю, если он меня не пускает в святую святых "Свой Контроль"?
Например, пишет, если прописываю индекс = 1: Arrau already has control at index '1' (Массив уже имеет контроль с индексом '1'). Картинка ниже. Ничего сделать не смогу.
Миниатюры
Шахматная доска цвета  
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
19.07.2016, 17:01
Infinity20_5], вот...держи...
1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
20.07.2016, 00:30
Моё мнение, индексы во всех массивах нужно начинать с нуля, так будет меньше нервотрёпки и проще
для множества вычислений
Меня однажды ругали здесь на форуме..
<<..зачем ты создаёшь контролы динамическим способом>>
так вот как раз для подобных случаев, представляю сколько было б разговоров на объяснения в каждой теме
что строить..., с какого индекса строить..., и тд, подобные неторопливые беседы могли бы длиться годами ))
а у меня нет столько свободного времени

Добавлено через 52 минуты
Infinity20_5, не расстраивайся минус ты получил вполне заслуженно в отличии от меня
когда мне его влепили просто по ошибке из за одного дауна, который истерил что ему не дали ответа ...
причём не какихто там -30 а -160...
вместо его Alex777555 влепил минус почемуто мне(по ошибке), ну потом и ему тоже.
а ведь Alex777555 извинился и досих пор так и не может исправить должок, хотя обещал..

Мораль такова, что добро всегда наказуемо, вот и помогайте теперь всяким бездарям ...

Добавлено через 1 час 0 минут
Бонус к этой теме, код модуля для формы, для тех кто не хочет ничего кидать на форму
Достаточно иметь два пальца и две извилины чтобы скопировать этот текст в модуль формы
и кликнуть START
Visual Basic
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
Option Explicit
'
'------------------- Шахматная доска
'Двумерный динамический массив и динамическое создание объектов
'Данный пример рисует шахматную доску, подсвечивает клетку под указателем
'при нажатии показывает координаты клетки и цвет точки указателя
'by the fever brain 2016
'-----------------------
'
Const r = 420, rr = r 'r=Отступ, rr=задание размера (кратное твипу 15)
Dim sh() As Shape, ash As Shape
Dim WithEvents pb As PictureBox 'Контейнер
Dim i&, j&, l&, t&, ll&, tt&, s$, ss$, v 'прочие переменные
 
 
Private Sub pb_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    
    l = ash.Left: t = ash.Top: ll = l + ash.Width: tt = t + ash.Height
    If Button = 1 And X > l And X < ll And Y > t And Y < tt Then
        s = ash.Name
        Select Case pb.Point(X, Y)
        Case vbBlack: ss = "черный"
        Case vbWhite: ss = "белый"
        Case Else: ss = "синий"
        End Select
        Me.Caption = "Клетка " & Mid$(s, 3, 1) & "," & Mid$(s, 4, 1) & " Цвет " & ss
    End If
End Sub
 
Private Sub pb_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    For Each v In Controls
        If TypeName(v) = "Shape" And v.Container.Name = "pb" Then
            l = v.Left: t = v.Top: ll = l + v.Width: tt = t + v.Height
            If X > l And X < ll And Y > t And Y < tt Then
                If v.BorderColor = vbButtonShadow Then Set ash = v: ash.BorderColor = 0: ash.ZOrder 0
            Else
                v.BorderColor = vbButtonShadow
            End If
        End If
    Next
End Sub
 
 
Private Sub Form_Load()
    Dim ii&
    Do
        v = InputBox("Число клеток от 2 до 9" & vbLf & _
        "Напимер 2x2, 3x3, 4x4, 5x5 и тд", , 8)
        If IsNumeric(v) Then If v > 1 And v < 10 Then Exit Do
        If v = "" Then End 'Конец программы
    Loop
    
    ReDim sh(v, v) 'Формируем массив клеток
    Set pb = Controls.Add("vb.PictureBox", "pb")
    For i = 0 To UBound(sh, 1) - 1
        For j = 0 To UBound(sh, 2) - 1
            Set sh(i, j) = Controls.Add("vb.Shape", "sh" & i & j, pb)
            With sh(i, j)
                .Move i * rr, j * rr, rr, rr
                .BackStyle = 1
                If ii Mod 2 Then .BackColor = ColorConstants.vbBlue
                ii = ii + 1 + Abs(j Mod 2 And j = UBound(sh, 1) - 1)
                .BorderWidth = 3
                .BorderColor = vbButtonShadow
                .Visible = 1
            End With
        Next
    Next
    With pb
        .Move r, r, rr * i, rr * j
        .BorderStyle = 0
        .Visible = 1
    End With
    Me.Caption = "Нажми на клетку"
End Sub
2
Заблокирован
20.07.2016, 07:02
Цитата Сообщение от paau Посмотреть сообщение
Infinity20_5], вот...держи...
paau!
Вы попросту вводите меня и других наивных детей в заблуждение своим видео "Рисуем шахматную доску".

У Вас грубая ошибка в терминологии Visual Basic, поскольку нет процесса удаления Пикчербокса 1(0) с Формы, Вы его просто перемещаете (прячете). Visual Basic 6.0 как и прежде использует его в своих подсчётах.
Ранее Вы пытались убедить меня по индексации, что достаточно разместить 64 Пикчербокса и код сработает. Как бы не так!
Как минимум надо 65 Пикчербоксов! Больше можно (например: 200 штук, где Visible = False — будут как невидимые), но меньше никак.

Ещё раз спасибо Shersh!!
Миниатюры
Шахматная доска цвета   Шахматная доска цвета   Шахматная доска цвета  

0
Заблокирован
20.07.2016, 07:32
Infinity20_5, клетка А1 на доске должна быть черной, кажется?
Справитесь ли?
1
Заблокирован
20.07.2016, 07:41
Цитата Сообщение от Shersh Посмотреть сообщение
Справитесь ли?
Shersh!
В душе возмущался, сам по тупости играю в шахматы только с шести лет, а не с двух — как все остальные. Но решил промолчать. Не надо: будить лихо, пока оно тихо.
Миниатюры
Шахматная доска цвета  
Изображения
 
1
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
20.07.2016, 07:58
Цитата Сообщение от Infinity20_5 Посмотреть сообщение
paau!
Вы попросту вводите меня и других наивных детей в заблуждение своим видео "Рисуем шахматную доску".
У Вас грубая ошибка в терминологии Visual Basic, поскольку нет процесса удаления Пикчербокса 1(0) с Формы, Вы его просто перемещаете (прячете). Visual Basic 6.0 как и прежде использует его в своих подсчётах.
Ранее Вы пытались убедить меня по индексации, что достаточно разместить 64 Пикчербокса и код сработает. Как бы не так!
Как минимум надо 65 Пикчербоксов!
Никого я обмануть и ввести в заблуждение не пытаюсь... мне не тяжело еще раз сделать ролик и скриншот...
Миниатюры
Шахматная доска цвета  
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
20.07.2016, 08:16
Кстате ....сегодня международный день шахмат ))))))))))
2
Заблокирован
20.07.2016, 09:01
Цитата Сообщение от paau Посмотреть сообщение
и ввести в заблуждение не пытаюсь...
paau!
У Вас слишком упрощённый подход. Будто в карты играем.

Лучше брать принципы бухгалтерии: балансовый метод. Сейчас товара нет, а когда-то был. Суть движения товарно-материальных ценностей не изменилась. Всё зафиксировано в товарных операциях.

Мне страшно интересно самому понять принципы мышления Visual Basic 6.0

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
    Dim i As Integer, j As Integer, k As Integer, col As Long
    For i = 1 To 8
       For j = 1 To 8
           If (i + j) Mod 2 = 0 Then col = vbWhite Else col = vbBlack
              k = k + 1
              Picture1(k).BackColor = col
       Next j
    Next i
Picture1(0).Visible = True
End Sub
'vbBlack
Миниатюры
Шахматная доска цвета  
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
20.07.2016, 10:07
Infinity20_5, прикрепите пожалуйста свой проект.

Скрин с ошибкой VB6 я вам привел, что бы вы поняли, что у меня нет на форме PictureBox с индексом 0.
А только с 1 по 64.
А у вас он может лежать на форме и вы его скрыли, поэтому строка в вашем коде
10 Picture1(0).Visible = True
и не будет выдавать ошибку.
Грузи свой проект, мне очень интересно на него глянуть )))))
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
20.07.2016, 11:02
вар., размерность 2к
Visual Basic
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
'на форме Picture1(0)
Const m = 8
Dim a
Dim n%
 
Private Sub Form_Load()
n = m + m Mod 2
Picture1(0).BorderStyle = 0
For i = 1 To n * n - 1
    Load Picture1(i)
    Picture1(i).Visible = True
Next i
End Sub
 
Private Sub Form_Resize()
On Error Resume Next
With Me
.Width = .Height - 400
a = 0.98 * .Width / (n)
Call d
End With
End Sub
Sub d()
For i = 0 To n * n - 1
    Picture1(i).Move (i Mod n) * a, a * (i \ n), a, a
    Picture1(i).BackColor = (1 - (i + i \ n) Mod 2) * vbWhite
Next i
End Sub
 
Private Sub Picture1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1(Index).BorderStyle = 1
Caption = "(" & Chr((Index Mod n + 1) + 96) & " ; " & (8 - Index \ n) & ")  " & IIf(Picture1(Index).BackColor = 0, "Black", "White")
End Sub
 
Private Sub Picture1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1(Index).BorderStyle = 0
End Sub
0
20.07.2016, 11:26

Не по теме:

и досих пор так и не может исправить должок, хотя обещал.
fever brain, Я уже троим после тебя добавлял +отзывы, но сайт до сих пор не даёт мне вернуть долг.
Вот только что пытался в очередной раз

Миниатюры
Шахматная доска цвета  
0
20.07.2016, 11:34

Не по теме:

Alex77755, обратитесь к Памирычу в ЛС, он сможет исправить ошибку с отзывами.

0
Заблокирован
20.07.2016, 12:55
Цитата Сообщение от paau Посмотреть сообщение
Грузи свой проект, мне очень интересно на него глянуть )))))
paau!
Проект и Форма по Notepad++, вложения архивом ниже:

ProjectMyCell
Кликните здесь для просмотра всего текста
Type=Exe
Form=FormMyCell2.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\Windows\system 32\stdole2.tlb#OLE Automation
IconForm="FormMyCell"
Startup="FormMyCell"
Command32=""
Name="ProjectMyCell"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="amd"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1



FormMyCell
Кликните здесь для просмотра всего текста
VERSION 5.00
Begin VB.Form FormMyCell
Caption = "MyCell"
ClientHeight = 4350
ClientLeft = 120
ClientTop = 450
ClientWidth = 4095
LinkTopic = "Form1"
ScaleHeight = 4350
ScaleWidth = 4095
StartUpPosition = 3 'Windows Default
Begin VB.PictureBox Picture1
Height = 500
Index = 0
Left = 6000
ScaleHeight = 435
ScaleWidth = 435
TabIndex = 64
Top = 240
Width = 500
End
Begin VB.PictureBox Picture1
Height = 500
Index = 64
Left = 3480
ScaleHeight = 435
ScaleWidth = 435
TabIndex = 63
Top = 3600
Width = 500
End
Begin VB.PictureBox Picture1
Height = 500
Index = 63
Left = 3000
ScaleHeight = 435
ScaleWidth = 435
TabIndex = 62
Top = 3600
Width = 500
End
Begin VB.PictureBox Picture1
Height = 500
Index = 62
Left = 2520
ScaleHeight = 435
ScaleWidth = 435
TabIndex = 61
Top = 3600
Width = 500
End

' Удалил бОльшую часть как несущественное однообразие

Begin VB.PictureBox Picture1
Height = 500
Index = 2
Left = 600
ScaleHeight = 435
ScaleWidth = 435
TabIndex = 1
Top = 240
Width = 500
End
Begin VB.PictureBox Picture1
Height = 500
Index = 1
Left = 120
ScaleHeight = 435
ScaleWidth = 435
TabIndex = 0
Top = 240
Width = 500
End
End
Attribute VB_Name = "FormMyCell"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Sub Form_Load()
Dim i As Integer, j As Integer, k As Integer, col As Long
For i = 1 To 8
For j = 1 To 8
If (i + j) Mod 2 = 0 Then col = vbBlack Else col = vbWhite
k = k + 1
Picture1(k).BackColor = col
Next j
Next i
End Sub
Вложения
Тип файла: 7z FormMyCell2.7z (981 байт, 4 просмотров)
Тип файла: 7z ProjectMyCell2.7z (549 байт, 4 просмотров)
0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
20.07.2016, 13:12
Цитата Сообщение от paau Посмотреть сообщение
А у вас он может лежать на форме и вы его скрыли, поэтому строка в вашем коде
10 Picture1(0).Visible = True
и не будет выдавать ошибку.
Infinity20_5, так и есть... у вас на форме присутствует PictureBox1(0), который вы спрятали за границы видимой формы.
Уберите его... без него все отлично работает.
Миниатюры
Шахматная доска цвета  
0
Заблокирован
20.07.2016, 13:56
Цитата Сообщение от paau Посмотреть сообщение
Уберите его... без него все отлично работает.
paau!
С ним ещё лучше работает!! Пусть Visual Basic 6.0 не волнуется за контрольный учёт, думаю: он ощущает мою заботу.

Скажите, пожалуйста: какая предельная нагрузка на Стандарную Форму.ехе Visual Basic 6.0 в мегабайтах?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2016, 13:56

Задача. Шахматная доска. Выяснить явл. ли поля полями одного цвета
Помогите пожалуйста решить задачу. Поле шахматной доски определяется парой натуральных чисел, первое - номер вертикали, второе -...

Шахматная доска
Здесь программа строит шахматную доску. Мне нужно инвертировать цвета, каждые 2-5 секунд. У меня есть идея, но не получается её...

Шахматная доска
Шахматная доска содержит 8x8 клеток. Горизонтали и вертикали обозначаются цифрами 1-8. Написать программу, проверяющую, можно ли с первой...

Шахматная доска
Шахматная доска Напишите программу, которая на вход принимает одно цело число n в диапазоне от 1 до 100, а на выход подаёт квадрат - типа...

Шахматная доска
Добрый день! Задача: Дана шахматная доска размером nn клеток. Верхняя левая клетка доски черная и имеет номер (1, 1). 1.для...


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

Или воспользуйтесь поиском по форуму:
56
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru