Форум программистов, компьютерный форум, киберфорум
alhaos
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

[Golang] Генерация положений куба в коробке

Запись от alhaos размещена 26.06.2023 в 20:43
Показов 1083 Комментарии 1
Метки go

Куб с различимыми неповторяющимися гранями плотно укладывается в коробку, перечислите все положения какими его туда можно запёхнуть.

я так думаю каждая, сторона шапкой, плюс три вращения, получается шесть положений шапок умножить на четыре положения вращения вокруг шапки, 24 положения, я х3 как это решать, буду тупо вращать куб,

Нотация из кубика рубика

Go
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
package cube
 
import "fmt"
 
type Side struct {
    Value int
}
 
type Cube struct {
    Front  Side
    Bottom Side
    Left   Side
    Right  Side
    Top    Side
    Down   Side
}
 
func NewCube(front int, bottom int, left int, right int, top int, down int) *Cube {
 
    c := new(Cube)
 
    c.Front = Side{front}
    c.Bottom = Side{bottom}
    c.Left = Side{left}
    c.Right = Side{right}
    c.Top = Side{top}
    c.Down = Side{down}
 
    return c
}
 
func (c *Cube) RotateY(clockwise bool) {
    if clockwise {
        c.Front, c.Left, c.Bottom, c.Right = c.Right, c.Front, c.Left, c.Bottom
        return
    }
    c.Front, c.Left, c.Bottom, c.Right = c.Left, c.Bottom, c.Right, c.Front
}
 
func (c *Cube) RotateX(clockwise bool) {
    if clockwise {
        c.Front, c.Top, c.Bottom, c.Down = c.Down, c.Front, c.Top, c.Bottom
        return
    }
    c.Front, c.Top, c.Bottom, c.Down = c.Top, c.Bottom, c.Down, c.Front
}
 
func (c *Cube) RotateZ(clockwise bool) {
    if clockwise {
        c.Left, c.Top, c.Right, c.Down = c.Down, c.Left, c.Top, c.Right
        return
    }
    c.Left, c.Top, c.Right, c.Down = c.Top, c.Right, c.Down, c.Left
}
 
func (c *Cube) Print() {
    fmt.Println(c.Front, c.Bottom, c.Left, c.Right, c.Top, c.Down)
}
Go
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
package main
 
import "once/internal/cube"
 
func main() {
 
    c := cube.Cube{
        Front:  cube.Side{2},
        Bottom: cube.Side{5},
        Left:   cube.Side{4},
        Right:  cube.Side{3},
        Top:    cube.Side{1},
        Down:   cube.Side{6},
    }
        fmt.Println("f,b,l,r,t,d")
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateZ(false)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateZ(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateZ(true)
    c.RotateZ(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateZ(false)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateZ(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
    c.RotateY(true)
    c.Print()
}
Code
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
f,b,l,r,t,d
2,5,4,3,1,6
3,4,2,5,1,6
5,2,3,4,1,6
4,3,5,2,1,6
4,3,1,6,2,5
6,1,4,3,2,5
3,4,6,1,2,5
1,6,3,4,2,5
1,6,5,2,3,4
2,5,1,6,3,4
6,1,2,5,3,4
5,2,6,1,3,4
5,2,1,6,4,3
6,1,5,2,4,3
2,5,6,1,4,3
1,6,2,5,4,3
1,6,4,3,5,2
3,4,1,6,5,2
6,1,3,4,5,2
4,3,6,1,5,2
4,3,2,5,6,1
5,2,4,3,6,1
3,4,5,2,6,1
2,5,3,4,6,1
Метки go
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для pincet
    это не куб) это - параллелепипед
    Запись от pincet размещена 19.06.2024 в 10:20 pincet вне форума
 
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru