aboutsummaryrefslogtreecommitdiffstats
path: root/prototypes/workbench/results/2026-09-23-shared-rules/pure-shared-layout-saved.json
blob: c9d066f0f4c67e444d66f5a3135bf5b7330cc9d9 (plain)
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
{
  "format": "pure-workbench",
  "version": 2,
  "source": "# 대상별 값은 item에, 공통 반응은 rule에 한 번만 작성합니다.\nstate selected = 0\nrecord Tile {\n  x = 0; y = 0\n  ox = 0; oy = 0\n  sx = 0; sy = 0\n  held = 0; id = 0\n}\nitem green = Tile(x=80, y=120, sx=80, sy=120, id=1)\nitem blue = Tile(x=280, y=160, sx=280, sy=160, id=2)\nitem amber = Tile(x=450, y=220, sx=450, sy=220, id=3)\ninput left = ArrowLeft\ninput right = ArrowRight\ninput up = ArrowUp\ninput down = ArrowDown\ninput drag_green = pointer(green_box)\ninput drag_blue = pointer(blue_box)\ninput drag_amber = pointer(amber_box)\nbox board(20,90,600,240,\"#233a31\")\ntext help(25,40,selected,\"선택한 도형: \")\nbox green_box(green.x,green.y,56,44,\"#c9f08b\")\nbox blue_box(blue.x,blue.y,56,44,\"#74c4d4\")\nbox amber_box(amber.x,amber.y,56,44,\"#dfb184\")\n\nrule grab(t: Tile) {\n  selected = t.id\n  t.sx = t.x; t.sy = t.y\n  t.ox = event_x - t.x; t.oy = event_y - t.y\n  t.held = 1\n}\nrule move(t: Tile) {\n  t.x = clamp(event_x - t.ox, 20, 564)\n  t.y = clamp(event_y - t.oy, 90, 286)\n}\nrule drop(t: Tile) { t.held = 0 }\nrule cancel(t: Tile) { t.x = t.sx; t.y = t.sy; t.held = 0 }\nrule go_left(t: Tile) {\n  if selected == t.id && t.held == 0 { t.x = clamp(t.x - 10, 20, 564) }\n}\nrule go_right(t: Tile) {\n  if selected == t.id && t.held == 0 { t.x = clamp(t.x + 10, 20, 564) }\n}\nrule go_up(t: Tile) {\n  if selected == t.id && t.held == 0 { t.y = clamp(t.y - 10, 90, 286) }\n}\nrule go_down(t: Tile) {\n  if selected == t.id && t.held == 0 { t.y = clamp(t.y + 10, 90, 286) }\n}\n\non drag_green.down use grab(green)\non drag_green.move use move(green)\non drag_green.up use drop(green)\non drag_green.cancel use cancel(green)\non left.down use go_left(green)\non right.down use go_right(green)\non up.down use go_up(green)\non down.down use go_down(green)\n\non drag_blue.down use grab(blue)\non drag_blue.move use move(blue)\non drag_blue.up use drop(blue)\non drag_blue.cancel use cancel(blue)\non left.down use go_left(blue)\non right.down use go_right(blue)\non up.down use go_up(blue)\non down.down use go_down(blue)\n\non drag_amber.down use grab(amber)\non drag_amber.move use move(amber)\non drag_amber.up use drop(amber)\non drag_amber.cancel use cancel(amber)\non left.down use go_left(amber)\non right.down use go_right(amber)\non up.down use go_up(amber)\non down.down use go_down(amber)\n",
  "draft": "# 대상별 값은 item에, 공통 반응은 rule에 한 번만 작성합니다.\nstate selected = 0\nrecord Tile {\n  x = 0; y = 0\n  ox = 0; oy = 0\n  sx = 0; sy = 0\n  held = 0; id = 0\n}\nitem green = Tile(x=80, y=120, sx=80, sy=120, id=1)\nitem blue = Tile(x=280, y=160, sx=280, sy=160, id=2)\nitem amber = Tile(x=450, y=220, sx=450, sy=220, id=3)\ninput left = ArrowLeft\ninput right = ArrowRight\ninput up = ArrowUp\ninput down = ArrowDown\ninput drag_green = pointer(green_box)\ninput drag_blue = pointer(blue_box)\ninput drag_amber = pointer(amber_box)\nbox board(20,90,600,240,\"#233a31\")\ntext help(25,40,selected,\"선택한 도형: \")\nbox green_box(green.x,green.y,56,44,\"#c9f08b\")\nbox blue_box(blue.x,blue.y,56,44,\"#74c4d4\")\nbox amber_box(amber.x,amber.y,56,44,\"#dfb184\")\n\nrule grab(t: Tile) {\n  selected = t.id\n  t.sx = t.x; t.sy = t.y\n  t.ox = event_x - t.x; t.oy = event_y - t.y\n  t.held = 1\n}\nrule move(t: Tile) {\n  t.x = clamp(event_x - t.ox, 20, 564)\n  t.y = clamp(event_y - t.oy, 90, 286)\n}\nrule drop(t: Tile) { t.held = 0 }\nrule cancel(t: Tile) { t.x = t.sx; t.y = t.sy; t.held = 0 }\nrule go_left(t: Tile) {\n  if selected == t.id && t.held == 0 { t.x = clamp(t.x - 10, 20, 564) }\n}\nrule go_right(t: Tile) {\n  if selected == t.id && t.held == 0 { t.x = clamp(t.x + 10, 20, 564) }\n}\nrule go_up(t: Tile) {\n  if selected == t.id && t.held == 0 { t.y = clamp(t.y - 10, 90, 286) }\n}\nrule go_down(t: Tile) {\n  if selected == t.id && t.held == 0 { t.y = clamp(t.y + 10, 90, 286) }\n}\n\non drag_green.down use grab(green)\non drag_green.move use move(green)\non drag_green.up use drop(green)\non drag_green.cancel use cancel(green)\non left.down use go_left(green)\non right.down use go_right(green)\non up.down use go_up(green)\non down.down use go_down(green)\n\non drag_blue.down use grab(blue)\non drag_blue.move use move(blue)\non drag_blue.up use drop(blue)\non drag_blue.cancel use cancel(blue)\non left.down use go_left(blue)\non right.down use go_right(blue)\non up.down use go_up(blue)\non down.down use go_down(blue)\n\non drag_amber.down use grab(amber)\non drag_amber.move use move(amber)\non drag_amber.up use drop(amber)\non drag_amber.cancel use cancel(amber)\non left.down use go_left(amber)\non right.down use go_right(amber)\non up.down use go_up(amber)\non down.down use go_down(amber)\n\nstate unfinished =",
  "states": [
    {
      "name": "selected",
      "value": 3
    },
    {
      "name": "green.x",
      "value": 150.00000659728084
    },
    {
      "name": "green.y",
      "value": 169.9999983506798
    },
    {
      "name": "green.ox",
      "value": 9.999986805438311
    },
    {
      "name": "green.oy",
      "value": 10.00000164932024
    },
    {
      "name": "green.sx",
      "value": 80
    },
    {
      "name": "green.sy",
      "value": 120
    },
    {
      "name": "green.held",
      "value": 0
    },
    {
      "name": "green.id",
      "value": 1
    },
    {
      "name": "blue.x",
      "value": 350.00000659728073
    },
    {
      "name": "blue.y",
      "value": 209.9999983506798
    },
    {
      "name": "blue.ox",
      "value": 9.999980208157467
    },
    {
      "name": "blue.oy",
      "value": 10.00000329864045
    },
    {
      "name": "blue.sx",
      "value": 280
    },
    {
      "name": "blue.sy",
      "value": 160
    },
    {
      "name": "blue.held",
      "value": 0
    },
    {
      "name": "blue.id",
      "value": 2
    },
    {
      "name": "amber.x",
      "value": 509.999947221753
    },
    {
      "name": "amber.y",
      "value": 260.0000016493202
    },
    {
      "name": "amber.ox",
      "value": 10.000013194561802
    },
    {
      "name": "amber.oy",
      "value": 9.999998350679817
    },
    {
      "name": "amber.sx",
      "value": 450
    },
    {
      "name": "amber.sy",
      "value": 220
    },
    {
      "name": "amber.held",
      "value": 0
    },
    {
      "name": "amber.id",
      "value": 3
    }
  ]
}