oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
Excel

Игра-головоломка 15

01.04.2019, 11:55. Показов 5710. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Люблю всякие головоломки, особенно головоломки с программной реализацией
и решил очередной раз порадовать участников, надеюсь что-то пригодиться в серьезной работе.


Код листа:
Кликните здесь для просмотра всего текста
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Option Explicit
'Игра 15
'Автор: fever brain (Cyberforum.ru)
'
Const Grid = 4 'Число клеток в строке - Здесь можно установить значение от 2 до 6 (для игры 15 это 4)
Const minCol = 2, minRow = 2 'Первая клетка
Const maxCol = minCol + (Grid - 1), maxRow = minRow + (3 * (Grid - 1)) 'Последняя клетка
Const maxGrid = Grid * Grid - 1 'Максимальное число клеток
Const Busy = 6 'Цвет занятых клеток
Const Free = 5 'Цвет пустой клетки
Dim Total As Long
 
Private Sub Counter(Optional ByVal ResetCoun As Boolean)
    If ResetCoun Then
        Total = 0
    Else
        Total = Total + 1
    End If
    [h6] = "Число ходов: " & Total
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim v, r As Range
    If Target.Count = 3 And Target.Interior.ColorIndex = Busy Then
        'Если нажата занятая клетка
        '
        On Error Resume Next
        For Each v In Array(Array(-3, 0), Array(0, 1), Array(3, 0), Array(0, -1))
            'проверка соседних клеток (куда можно переместиться)
            '
            Set r = Nothing: Set r = Cells(Target.Row + v(0), Target.Column + v(1))
            If Not r Is Nothing Then
                If r.Interior.ColorIndex = Free Then
                    Set r = Range(r, Cells(r.Row + 2, r.Column))
                    r.Interior.ColorIndex = Busy: r.Value = Target.Value
                    Target.Value = "": Target.Interior.ColorIndex = Free
                    Call Counter
                End If
            End If
        Next
    End If
 
End Sub
 
Private Sub reset()
    'Сброс форматирования
    '
    [a1].Copy
    With Columns("B:Z")
        .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False: Application.CutCopyMode = False
        .ClearContents
    End With
End Sub
 
Sub NewPlay()
    'Новая игра
    '
    Dim i&, j&, k$, cl As New Collection
    Application.ScreenUpdating = False
    Call reset
    Randomize
    On Error Resume Next
    For i = minRow To maxRow Step 3
        For j = minCol To maxCol
            With Range(Cells(i, j), Cells(i + 2, j))
                .Merge
                If cl.Count < maxGrid Then
                    Do
                        Err.Clear: k = Fix(Rnd * maxGrid) + 1: cl.Add 0, k
                    Loop While Err > 0
                    .Value = k
                Else
                    .Value = ""
                End If
                
            End With
        Next
    Next
    
    With Range(Cells(minRow, minCol), Cells(maxRow + 2, maxCol))
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        With .Font
            .Name = "Cooper Black"
            .Size = 22
        End With
 
        For i = 7 To 12
            With .Borders(i)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
        Next
        .Interior.ColorIndex = Busy
    End With
    With Range(Cells(maxRow, maxCol), Cells(maxRow + 2, maxCol))
    
        .Interior.ColorIndex = Free
        .Select
    End With
    Counter True
    Application.ScreenUpdating = True
End Sub
 
 
Private Sub CommandButton1_Click()
    Call NewPlay
End Sub


Можно настроить величину клеток (например: 3X3 или 5X5)
На снимке с клетками 3x3 я конечно подтасовал результат обычным редактированием (дико извиняюсь)
программа проверяет после каждого клика: если все числа идут по порядку то победа !
Миниатюры
Игра-головоломка 15   Игра-головоломка 15  
Вложения
Тип файла: xls Игра-15.xls (44.0 Кб, 44 просмотров)
2
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2019, 11:55
Ответы с готовыми решениями:

Головоломка с цифрами
Примитивная логическая головоломка на VBA. для открытия файла нужен Office 2007. После открытия файла отключить защиту. А вы догадаетесь...

Задание-головоломка для excel vba
Есть три листа со списками групп, факультетов, преподавателей и предметов. Есть задание: Разработать программу, состоящую из нескольких...

Игра-головоломка на знание C#
Может и не по адресу пишу. Но тут часто бывают сообщения об том где найти задания новичкам и тд. и тп. Вот как один из вариантов от...

30
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
01.04.2019, 12:14  [ТС]
---
Вложения
Тип файла: xls Игра-15.xls (46.0 Кб, 32 просмотров)
0
01.04.2019, 18:47  [ТС]

Не по теме:

Мастерство должно прийти примерно после третьей игры.
Например в первой игре до победы у меня было число ходов 1080, во второй 726
в третьей уже 550, клянусь я ничего не редактировал (добросовестно провел турнир) по времени ~ от 5 до 15 мин.

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

Миниатюры
Игра-головоломка 15  
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
02.04.2019, 05:20
интересное решение
вот только я не понял как производится проверка на то что первоначальный расклад имеет решение
т.е. последовательность будет правильно собрана
ведь всем известно что если в собранной последовательности поменять местами 14 и 15 и потом аккуратно (методом передвижения фишек) перемешать фишки то собрать головоломку не получится
2
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 09:51  [ТС]
Цитата Сообщение от snipe Посмотреть сообщение
ведь всем известно что если в собранной последовательности поменять местами 14 и 15 и потом аккуратно (методом передвижения фишек) перемешать фишки то собрать головоломку не получится
Мне это известно не было. Интересное замечание, спасибо вам за него я был уверен что если две крайние цифры не упорядочиваются, то нужно будет переместить ближайшие клетки так, чтобы они не стояли рядом, затем попытаться все вернуть.

А как вы к этому пришли? Есть какая-то ссылка где про это прочесть можно ? Если все так как вы говорите, то я изменю алгоритм перемешивания.

и второй вопрос. это относиться только к последовательности 15 или к 8 (3x3) это тоже относится ?

Добавлено через 10 минут
Наверное это что-то из топологии, мне попадалась информация о том, что из бублика можно сделать кружку с ручкой, но нельзя будет перелепить в шар и тому подобное... похоже это из этой серии.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
02.04.2019, 10:10
fever brain, можно изначально собранную последовательность перемешивать.
1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 10:18  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
изначально собранную последовательность перемешивать
Я про это понял, после замечания от snipe полез в интернет, почитал там. сям и понял для того чтобы собрать последовательность из 15 цифр. она должна быть изначально последовательной, даже если ее сильно перемешать после этого (не рандомно подставляя цифры а именно передвижениями клеток) она всеравно останется топологически эквивалентна.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
02.04.2019, 10:20
fever brain, если интересно - посмотри проект в архиве, код с комментариями. Там как раз фишки сначала расставляются в правильном порядке, а потом перемешиваются.
Вложения
Тип файла: rar Игра 15.rar (8.4 Кб, 17 просмотров)
2
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 10:44  [ТС]
Ну да вот я нашел.
из кода выписал отрывки:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim d As Integer                 ' направление перемещения
 * * *
         d = Int((Rnd * W) + 1)     ' предполагается, что поле
                                    ' квадратное
         Select Case d
            Case 1: x2 = x2 + 1
            Case 2: x2 = x2 - 1
            Case 3: y2 = y2 + 1
            Case 4: y2 = y2 - 1
         End Select
Рандомно выбирается направление перемешивания относительно пустой клетки
похоже придется доработать алгоритм
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 12:21  [ТС]
Ну вот собственно, добавлена процедура:
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
Sub CreateArr(arr())
    Dim i&, j&, n&, x&, y&, xx&, yy&, g1&, v
    ReDim arr(Grid - 1, Grid - 1)
    g1 = Grid - 1: x = g1: y = g1
    
     'Сначало все цифры ставим по порядку
    For i = 0 To g1: For j = 0 To g1
        n = (n + 1) Mod (maxGrid + 1): arr(i, j) = n
    Next j, i
    
    'Цикл рандомных передвижений пустой клетки тоесть в массиве это ноль
    Randomize
    Do
        v = Choose(Fix(Rnd * 4) + 1, Array(-1, 0), Array(0, 1), Array(1, 0), Array(0, -1)) 'Рандомный выбор направления в массиве
        xx = x + v(0): yy = y + v(1)
        
        If xx <= g1 And xx >= 0 And yy <= g1 And yy >= 0 Then
            arr(x, y) = arr(xx, yy) 'Обмен выбранного значениями с нулем
            arr(xx, yy) = 0 'Выбранной клетке ставим ноль
            x = xx: y = yy: i = i + 1
        End If
 
    Loop While i < 1000 'Число сдвигов пустой клетки этого будет достаточно
    
    
End Sub
И немного изменена NewPlay, теперь после перемешивания пустая клетка может быть в любом месте поля
а не в конце как раньше (результат тысячи случайных сдвигов)

полностью код:
Кликните здесь для просмотра всего текста
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Option Explicit
'Игра 15
'Автор: fever brain (Cyberforum.ru)
'
Const Grid = 4 'Число клеток в строке - Здесь можно установить значение от 2 до 6 (для игры 15 это 4)
Const minCol = 2, minRow = 2 'Первая клетка
Const maxCol = minCol + (Grid - 1), maxRow = minRow + (3 * (Grid - 1)) 'Последняя клетка
Const maxGrid = Grid * Grid - 1 'Максимальное число клеток
Const Busy = 6 'Цвет занятых клеток
Const Free = 5 'Цвет пустой клетки
Dim Total As Long
 
 
Sub CreateArr(arr())
    Dim i&, j&, n&, x&, y&, xx&, yy&, g1&, v
    ReDim arr(Grid - 1, Grid - 1)
    g1 = Grid - 1: x = g1: y = g1
    
     'Сначало все цифры ставим по порядку
    For i = 0 To g1: For j = 0 To g1
        n = (n + 1) Mod (maxGrid + 1): arr(i, j) = n
    Next j, i
    
    'Цикл рандомных передвижений пустой клетки тоесть в массиве это ноль
    Randomize
    Do
        v = Choose(Fix(Rnd * 4) + 1, Array(-1, 0), Array(0, 1), Array(1, 0), Array(0, -1)) 'Рандомный выбор направления в массиве
        xx = x + v(0): yy = y + v(1)
        
        If xx <= g1 And xx >= 0 And yy <= g1 And yy >= 0 Then
            arr(x, y) = arr(xx, yy) 'Обмен выбранного значениями с нулем
            arr(xx, yy) = 0 'Выбранной клетке ставим ноль
            x = xx: y = yy: i = i + 1
        End If
 
    Loop While i < 1000 'Число сдвигов пустой клетки этого будет достаточно
    
    
End Sub
 
Sub NewPlay()
    'Новая игра
    '
    Dim i&, j&, ii&, jj&, k$, arr(), r As Range
    Application.ScreenUpdating = False
    Call reset
    CreateArr arr
 
    For i = minRow To maxRow Step 3
        For j = minCol To maxCol
            With Range(Cells(i, j), Cells(i + 2, j))
                .Merge: ii = (i - minRow) \ 3: jj = j - minCol
                If arr(ii, jj) = 0 Then
                    Set r = Range(Cells(i, j), Cells(i + 2, j))
                Else
                    .Value = arr(ii, jj)
                End If
            End With
        Next
    Next
    
    With Range(Cells(minRow, minCol), Cells(maxRow + 2, maxCol))
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        With .Font
            .Name = "Cooper Black"
            .Size = 22
        End With
 
        For i = 7 To 12
            With .Borders(i)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
        Next
        .Interior.ColorIndex = Busy
    End With
    With r
        .Interior.ColorIndex = Free
        .Select
    End With
    Counter True
    Application.ScreenUpdating = True
End Sub
 
 
Private Sub CheckResult()
    Dim i&, j&, ch&
    For i = minRow To maxRow Step 3
        For j = minCol To maxCol
        ch = ch + 1
        If Cells(i, j).Value <> ch Then Exit Sub
        If ch = maxGrid Then Exit For
    Next j, i
    If MsgBox("Победа !" & vbLf & "Начать заново ?", 68) = vbYes Then NewPlay
    
End Sub
 
 
 
Private Sub Counter(Optional ByVal ResetCoun As Boolean)
    If ResetCoun Then
        Total = 0
    Else
        Total = Total + 1
    End If
    [h6] = "Число ходов: " & Total
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim v, r As Range
    If Target.Count = 3 And Target.Interior.ColorIndex = Busy Then
        'Если нажата занятая клетка
        '
        On Error Resume Next
        For Each v In Array(Array(-3, 0), Array(0, 1), Array(3, 0), Array(0, -1))
            'проверка соседних клеток (куда можно переместиться)
            '
            Set r = Nothing: Set r = Cells(Target.Row + v(0), Target.Column + v(1))
            If Not r Is Nothing Then
                If r.Interior.ColorIndex = Free Then
                    Set r = Range(r, Cells(r.Row + 2, r.Column))
                    r.Interior.ColorIndex = Busy: r.Value = Target.Value
                    Target.Value = "": Target.Interior.ColorIndex = Free
                    Call Counter 'Счетчик ходов
                    Call CheckResult  'Проверка на победу :)
                End If
            End If
        Next
    End If
 
End Sub
 
Private Sub reset()
    'Сброс форматирования
    '
    [a1].Copy
    With Columns("B:Z")
        .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False: Application.CutCopyMode = False
        .ClearContents
    End With
End Sub
 
 
 
 
Private Sub CommandButton1_Click()
    Call NewPlay
End Sub
Вложения
Тип файла: xls Игра-15_2.xls (51.5 Кб, 34 просмотров)
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
02.04.2019, 13:08
fever brain, доберусь до дома скину свои пятнашки которые делал когда только начинал писать на vba
там есть кусок который определяет возможность собирания этой головоломки при рандомном заполнении и выдаче только той комбинации которая имеет решение
а вообще эта старая математическая задача

Добавлено через 4 минуты
Цитата Сообщение от fever brain Посмотреть сообщение
и второй вопрос. это относиться только к последовательности 15 или к 8 (3x3) это тоже относится ?
вот посмотрите
https://www.youtube.com/watch?v=6YJ8NFYssoE
https://www.youtube.com/watch?v=toCqrVmQPiY
предполагаю что для любой игры реализующей принцип пятнашек (т.е. квадрат может быть любой)
1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 14:21  [ТС]
Ну понятно. четность последовательностей которая не меняется и тоже-самое для нечетности.
На ваше утверждение:
Цитата Сообщение от snipe Посмотреть сообщение
ведь всем известно что если в собранной последовательности поменять местами 14 и 15 и потом аккуратно (методом передвижения фишек) перемешать фишки то собрать головоломку не получится
Можно было бы создать два условия победы в собранной последовательности.
например так:
Миниатюры
Игра-головоломка 15  
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 14:37  [ТС]
Теперь уже эту последовательность, которую я указал на картинке, исходя из измененной мною программы. точно нельзя будет составить. топология не позволит ...
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
02.04.2019, 16:56
fever brain, не важно где располагается пустая клетка - важна последовательность
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
02.04.2019, 17:12
вот файлик
только не судите строго - давно это было
Вложения
Тип файла: 7z пятнашки.7z (24.8 Кб, 27 просмотров)
1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
02.04.2019, 17:27  [ТС]
Цитата Сообщение от snipe Посмотреть сообщение
только не судите строго - давно это было
Все в порядке, я даже код не смог подсмотреть. У меня нет опыта работы в Access открылось только окно пятнашек.
а по выходу из программы весь Access закрывается.
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
03.04.2019, 02:10
вот этот кусок кода рандомно выбирает комбинацию
и проверяет на собираемость
массив Position() публичный и объявлен черт знает где
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
76
77
78
79
80
81
Private Sub Кнопка20_Click()
Dim rfg As Date
rfg = "00:00:00"
Me!Поле27 = rfg
Me.TimerInterval = 1000
Dim ghj(1 To 16) As Integer
Dim wer As Integer
Dim tyu As Integer
Me!Поле22 = 0
'генератор комбинации
uuu:
 
iop = 0
Erase Position()
 
For i = 1 To 4
For j = 1 To 4
aaa:
    'генерируем число от 1 до 16 и проверяем его на наличие в массиве
    'если есть то повторяем заново если нет то добавляем в массив
    'в итоге получаем массив 4х4 заполненный неповторяющимся числами от 1 до 16
    'начинать диапазон чисел с 0 нельзя т.к. цикл проверки может уйти в нирвану
    'число 16 - это пустая клеточка
asd = CInt(Int(16 * Rnd() + 1))
    For m = 1 To 4
    For n = 1 To 4
        If asd = Position(m, n) Then GoTo aaa
    Next n
    Next m
Position(i, j) = asd
Next j
Next i
'
'Проверка комбинации на собираемость
'
'определение номера строки в которой находится число 16(пустая клеточка)
'и заполнение промежуточного массива
For i = 0 To 3
For j = 1 To 4
    If Position(i + 1, j) = 16 Then iop = i + 1
ghj(4 * i + j) = Position(i + 1, j)
Next j
Next i
 
wer = 0
'определение номера строки в которой находится 0 на четность
If (iop / 2) - Int(iop / 2) > 0 Then
    iop = 1
Else
    iop = 0
End If
'подсчет значений по определенной формуле
'берет число в одномерном массиве и проверяет есть ли фишки слева с числом меньше этого числа
'если есть то увеличивает счетчик на количество фишек
For i = 2 To 16
If ghj(i) = 16 Then
Else
    tyu = ghj(i)
    For j = 1 To i - 1
        If ghj(j) = 16 Then
        Else
            If ghj(j) > tyu Then wer = wer + 1
        End If
    Next j
End If
Next i
 
'определение полученного значения на четность
If (wer / 2) - Int(wer / 2) > 0 Then
    wer = 1
Else
    wer = 0
End If
'собственно сама проверка собираемости комбинации
If wer = iop Then 'если четности совпадают то показываем комбинацию
    Call vygruzka(False)
Else 'если не совпадают то начинаем все заново
    GoTo uuu
End If
 
End Sub
1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
03.04.2019, 10:27  [ТС]
в коде
Цитата Сообщение от snipe Посмотреть сообщение
Else 'если не совпадают то начинаем все заново GoTo uuu End If
Можно было заново не начинать а поменять местами любых два элемента .. например последние два
0
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
03.04.2019, 10:31
fever brain, предлагаю пору дополнений и улучшений для вашего замечательного проекта:
  1. Улучшен внешний вид пользовательского интерфейса.
  2. Добавлен таймер, отображающий прошедшее с начала решения головоломки время.

Игра-15_3.xls

1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
03.04.2019, 10:38  [ТС]
Ух-ты ! Круто !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2019, 10:38
Помогаю со студенческими работами здесь

Rune Keeper - игра-головоломка
Я только что закончил свою первую игру на angroid - Rune Keeper, его игра-головоломка. Разместите магические руны в соответствии с...

Игра-головоломка на знание C# / C# для начинающих
Не втыкаю, как сделать 2.02. Если кто-нибудь знает, прошу помочь. Спасибо.

Провести газ, электричество и канализацию к трем домам - flash-игра, головоломка
Вот собственно говоря http://www.yurov.com/flash18.htm - задача провести газ, электричество и воду к всем трем домам так что б линии...

Flash игра-головоломка "Interlocked"
Надеюсь, что не нарушаю ничьих прав:).

Головоломка
Проблема такая Команда echo a=2&gt;1.log Ничего ничего не записывает в лог, так как 2 интерпретируется как указание писать поток ошибок(2)...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
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 https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru