steveagi commited on
Commit
b3ee871
·
1 Parent(s): e6c9c1f

rm train code

Browse files
games/snake/train/__init__.py DELETED
File without changes
games/snake/train/config_const.py DELETED
@@ -1,75 +0,0 @@
1
- #######################
2
- # constants
3
- #######################
4
-
5
- # singleton
6
- x_help = 'help'
7
- x_edit_mode = 'edit mode'
8
- x_reset_game = 'reset game'
9
-
10
- # object and verb
11
- x_change_background = 'change background'
12
- x_change_position = 'change position'
13
- x_change_skin = 'change skin'
14
-
15
- # objects
16
-
17
- x_snake = 'snake'
18
- x_prop = 'prop' # props
19
- x_obstacle = 'obstacle'
20
- x_prop_and_obstacle = f'{x_prop} and {x_obstacle}'
21
- x_weapon = 'weapon'
22
- x_food = 'food'
23
- x_enemy = 'enemy'
24
- # x_object = 'object'
25
- x_snake_size = 'snake size'
26
- x_prop_size = f'{x_prop} size'
27
- x_map_size = 'map size'
28
- x_mode = 'mode' # game mode
29
- x_music = 'music'
30
- # x_prop_speed = f'{x_prop} speed'
31
- x_snake_speed = f'{x_snake} speed'
32
-
33
- x_magnet = 'magnet'
34
- x_bomb = 'bomb'
35
- x_sword = 'sword'
36
- x_stick = 'stick'
37
- x_gun = 'gun'
38
-
39
- x_wood = 'wood'
40
- x_steel = 'steel'
41
- x_iron = 'iron'
42
-
43
- x_speed = 'speed'
44
- x_timer = 'timer'
45
- x_winning_condition = 'winning condition'
46
- x_survival_winning_condition = 'survival winning condition'
47
- x_enemy_attack_around = f'{x_enemy} attack around'
48
- x_obstacle_attack_around = f'{x_obstacle} attack around'
49
- x_snake_self_damage = f'{x_snake} self damage'
50
- x_enemy_espawn = f"{x_enemy} respawn"
51
-
52
- # verb
53
- x_set = 'set'
54
- x_add = 'add'
55
- x_delete = 'delete'
56
- x_enable = 'enable'
57
- x_disable = 'disable'
58
- x_list = 'list'
59
- x_increase = 'increase'
60
- x_decrease = 'decrease'
61
- x_replace = 'replace'
62
- x_patrol = 'patrol'
63
- x_last = 'last' # eg: timer lasts for 2 minutes
64
-
65
- x_start = 'start'
66
- x_end = 'end'
67
-
68
- # properties
69
- x_quantity = 'quantity'
70
- x_color = 'color'
71
- # x_type = 'type'
72
- x_size = 'size'
73
- x_args = 'args'
74
- x_unit = 'unit'
75
- x_multiplier = 'multiplier'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
games/snake/train/gen_emb.py DELETED
@@ -1,66 +0,0 @@
1
- import json
2
- from pathlib import Path
3
- import hashlib
4
- import os
5
- from tqdm import tqdm
6
-
7
- from .config_const import *
8
-
9
- import openai
10
- from openai.embeddings_utils import get_embedding as openai_get_embedding
11
-
12
-
13
- def test_final():
14
- ROOT = Path(__file__).parent.parent.parent.parent
15
- PATH_json = Path(__file__).parent.parent
16
- PATH_emb = ROOT/"data"/"snake"/"emb"
17
- file_name_new = "game_train2.json"
18
- file_name_old = "game_train.json"
19
-
20
- with open(PATH_json/file_name_new, 'r') as f:
21
- train_generated_new = json.load(f)
22
-
23
- with open(PATH_json/file_name_old, 'r') as f:
24
- train_generated_old = json.load(f)
25
-
26
- api_key = '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'
27
- openai.api_key = api_key
28
-
29
- def _compute_emb(command: str):
30
- # always normalize text when query OpenAI embedding service
31
- # command = command.strip().lower()
32
- assert command == command.strip().lower()
33
- return openai_get_embedding(
34
- command,
35
- engine="text-embedding-ada-002"
36
- )
37
-
38
- def dump_helper(x, md5):
39
- tmp = {}
40
- os.makedirs(PATH_emb, exist_ok=True)
41
- if os.path.exists(PATH_emb/f"{md5}.json"):
42
- with open(PATH_emb/f"{md5}.json", "r") as f:
43
- tmp = json.load(f)
44
- if x in tmp:
45
- return
46
- print(f'computing for {x=}, {md5=}')
47
- emb = _compute_emb(x)
48
- if len(emb) == 1536:
49
- with open(PATH_emb/f"{md5}.json", "w") as f:
50
- tmp |= {x: emb}
51
- json.dump(tmp, f, indent=4)
52
- else:
53
- print('error when dump emb')
54
-
55
-
56
- def dump():
57
- xs = [x for x in train_generated_new.keys() if x not in train_generated_old]
58
-
59
- hexs = []
60
- for x in tqdm(xs[:]):
61
- x = x.strip().lower()
62
- t = hashlib.md5(x.encode()).hexdigest()[:2]
63
- hexs.append(t)
64
- dump_helper(x, t)
65
-
66
- dump()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
games/snake/train/gen_train.py DELETED
@@ -1,2086 +0,0 @@
1
- import json
2
- from pathlib import Path
3
-
4
- from .config_const import *
5
-
6
-
7
- train_generated = {}
8
-
9
-
10
- # @pytest.mark.skip(reason='test code')
11
- def test_change_background():
12
- global train_generated
13
- ###########################################
14
- # Change background
15
- ###########################################
16
- xxx = {
17
- "Change background music": {
18
- 'train': '',
19
- 'result': [
20
- x_change_background,
21
- {x_args: 'music'},
22
- ],
23
- 'desc': [
24
- 'change background',
25
- ]
26
- },
27
- "Change background sound": {
28
- 'train': '',
29
- 'result': [
30
- x_change_background,
31
- {x_args: 'music'},
32
- ],
33
- 'desc': [
34
- 'change background',
35
- ]
36
- },
37
- "Change background volumn": {
38
- 'train': '',
39
- 'result': [
40
- x_change_background,
41
- {x_args: 'volumn'},
42
- ],
43
- 'desc': [
44
- 'change background',
45
- ]
46
- },
47
- "Change volumn": {
48
- 'train': '',
49
- 'result': [
50
- x_change_background,
51
- {x_args: 'volumn'},
52
- ],
53
- 'desc': [
54
- 'change background',
55
- ]
56
- },
57
- "Change background": {
58
- 'train': '',
59
- 'result': [
60
- x_change_background,
61
- {x_args: 'picture'},
62
- ],
63
- 'desc': [
64
- 'change background',
65
- ]
66
- },
67
- "Change background picture": {
68
- 'train': '',
69
- 'result': [
70
- x_change_background,
71
- {x_args: 'picture'},
72
- ],
73
- 'desc': [
74
- 'change background',
75
- ]
76
- },
77
- "Change background photo": {
78
- 'exclude': '',
79
- 'result': [
80
- x_change_background,
81
- {x_args: 'picture'},
82
- ],
83
- 'desc': [
84
- 'change background',
85
- ]
86
- },
87
- "Change background color": {
88
- 'train': '',
89
- 'result': [
90
- x_change_background,
91
- {x_args: 'picture'},
92
- ],
93
- 'desc': [
94
- 'change background',
95
- ]
96
- },
97
- "Change background text": {
98
- 'train': '',
99
- 'result': [
100
- x_change_background,
101
- {x_args: 'picture'},
102
- ],
103
- 'desc': [
104
- 'change background',
105
- ]
106
- },
107
- }
108
- train_generated |= xxx
109
-
110
-
111
- def test_change_map_and_snake_size():
112
- global train_generated
113
- ###########################################
114
- # Change size
115
- ###########################################
116
- for x_obj, obj_single, desc_single in [
117
- (x_map_size, 'map', 'map'),
118
- (x_snake_size, 'snake', 'snake'),
119
- # (x_prop_size, 'prop', 'game item'),
120
- # (x_prop_size, 'game item', 'game item'),
121
- ]:
122
- xxx = {
123
- f"Make the {obj_single} bigger": {
124
- 'train': '',
125
- 'result': [
126
- x_obj,
127
- x_increase,
128
- {},
129
- ],
130
- 'desc': [
131
- f'change {desc_single} size',
132
- ]
133
- },
134
- f"increase the {obj_single} size": {
135
- 'train': '',
136
- 'result': [
137
- x_obj,
138
- x_increase,
139
- {},
140
- ],
141
- 'desc': [
142
- f'change {desc_single} size',
143
- ]
144
- },
145
- f"Make the {obj_single} smaller": {
146
- 'train': '',
147
- 'result': [
148
- x_obj,
149
- x_decrease,
150
- {},
151
- ],
152
- 'desc': [
153
- f'change {desc_single} size',
154
- ]
155
- },
156
- f"reduce the {obj_single} size": {
157
- 'train': '',
158
- 'result': [
159
- x_obj,
160
- x_decrease,
161
- {},
162
- ],
163
- 'desc': [
164
- f'change {desc_single} size',
165
- ]
166
- },
167
- }
168
- train_generated |= xxx
169
-
170
-
171
- def test_edit_mode():
172
- global train_generated
173
- ###########################################
174
- # edit mode
175
- ###########################################
176
- for s in [
177
- 'edit mode',
178
- 'enter edit mode',
179
- 'edit game',
180
- 'edit map',
181
- 'edit the map',
182
- 'edit obstacles',
183
- 'adjust obstacles',
184
- ]:
185
- xxx = {
186
- f"{s}": {
187
- 'train': '',
188
- 'result': [
189
- x_edit_mode,
190
- {},
191
- ],
192
- 'desc': [
193
- 'enter edit mode',
194
- ]
195
- },
196
- }
197
- train_generated |= xxx
198
-
199
- def test_diable_music():
200
- global train_generated
201
- ###########################################
202
- # disable music
203
- ###########################################
204
- for s in [
205
- 'mute',
206
- 'mute music',
207
- 'close music',
208
- 'no music',
209
- 'shut down music',
210
- ]:
211
- xxx = {
212
- f"{s}": {
213
- 'train': '',
214
- 'result': [
215
- x_music,
216
- x_disable,
217
- {},
218
- ],
219
- 'desc': [
220
- 'enbable/disable music',
221
- ]
222
- },
223
- }
224
- train_generated |= xxx
225
-
226
-
227
- def test_enable_music():
228
- global train_generated
229
- ###########################################
230
- # renable music
231
- ###########################################
232
- for s in [
233
- 'unmute',
234
- 'unmute music',
235
- 'open music',
236
- 'turn on music',
237
- ]:
238
- xxx = {
239
- f"{s}": {
240
- 'train': '',
241
- 'result': [
242
- x_music,
243
- x_enable,
244
- {},
245
- ],
246
- 'desc': [
247
- 'enbable/disable music',
248
- ]
249
- },
250
- }
251
- train_generated |= xxx
252
-
253
-
254
- def test_reset_game():
255
- global train_generated
256
- ###########################################
257
- # reset game
258
- ###########################################
259
- for s in [
260
- 'reset',
261
- 'restart',
262
- 'reset game',
263
- 'restart game',
264
- 'start over',
265
- ]:
266
- xxx = {
267
- f"{s}": {
268
- 'train': '',
269
- 'result': [
270
- x_reset_game,
271
- {},
272
- ],
273
- 'desc': [
274
- 'reset game',
275
- ]
276
- },
277
- }
278
- train_generated |= xxx
279
-
280
-
281
- def test_list_game_mode():
282
- global train_generated
283
- ###########################################
284
- # list game mode
285
- ###########################################
286
- for s in [
287
- 'list modes',
288
- 'game mode',
289
- 'list game modes',
290
- 'game modes',
291
- ]:
292
- xxx = {
293
- f"{s}": {
294
- 'train': '',
295
- 'result': [
296
- x_mode,
297
- x_list,
298
- {},
299
- ],
300
- 'desc': [
301
- 'list game modes',
302
- ]
303
- },
304
- }
305
- train_generated |= xxx
306
-
307
-
308
- def test_set_game_mode():
309
- global train_generated
310
- ###########################################
311
- # set game mode
312
- ###########################################
313
- xxx = {
314
- "traditional mode": {
315
- 'train': '',
316
- 'result': [
317
- x_mode,
318
- x_set,
319
- {x_args:'traditional'},
320
- ],
321
- 'desc': [
322
- 'set game mode',
323
- ]
324
- },
325
- "classic mode": {
326
- 'train': '',
327
- 'result': [
328
- x_mode,
329
- x_set,
330
- {x_args:'traditional'},
331
- ],
332
- 'desc': [
333
- 'set game mode',
334
- ]
335
- },
336
- "normal mode": {
337
- 'train': '',
338
- 'result': [
339
- x_mode,
340
- x_set,
341
- {x_args:'normal'},
342
- ],
343
- 'desc': [
344
- 'set game mode',
345
- ]
346
- },
347
- "standard mode": {
348
- 'train': '',
349
- 'result': [
350
- x_mode,
351
- x_set,
352
- {x_args:'normal'},
353
- ],
354
- 'desc': [
355
- 'set game mode',
356
- ]
357
- },
358
- "creative mode": {
359
- 'train': '',
360
- 'result': [
361
- x_mode,
362
- x_set,
363
- {x_args:'crazy'},
364
- ],
365
- 'desc': [
366
- 'set game mode',
367
- ]
368
- },
369
- # 'show me something more creative': {
370
- # 'train': '',
371
- # 'result': [
372
- # x_mode,
373
- # x_set,
374
- # {x_args:'crazy'},
375
- # ],
376
- # 'desc': [
377
- # 'set game mode',
378
- # ]
379
- # },
380
- "crazy mode": {
381
- 'train': '',
382
- 'result': [
383
- x_mode,
384
- x_set,
385
- {x_args:'crazy'},
386
- ],
387
- 'desc': [
388
- 'set game mode',
389
- ]
390
- },
391
- }
392
- train_generated |= xxx
393
-
394
-
395
- def test_change_speed():
396
- global train_generated
397
- ###########################################
398
- # change props/weapons/food/obstacles/monsters(enemies) speed
399
- ###########################################
400
- for x_obj, s in [
401
- # props
402
- (x_prop, 'game item'), (x_prop, 'game items'),
403
- (x_prop, 'prop'), (x_prop, 'props'),
404
- (x_prop, 'game prop'), (x_prop, 'game props'),
405
- # weapons
406
- (x_weapon, 'weapon'), (x_weapon, 'weapons'),
407
- # food
408
- (x_food, 'food'),
409
- # obstacles
410
- (x_obstacle, 'obstacles'), (x_obstacle, 'obstacles'),
411
- # monsters(enemies)
412
- (x_enemy, 'monster'), (x_enemy, 'monsters'),
413
- (x_enemy, 'enemy'), (x_enemy, 'enimies'),
414
- ]:
415
- xxx = {
416
- f"increase {s} speed": {
417
- 'train': '',
418
- 'result': [
419
- x_speed,
420
- x_increase,
421
- {x_args: x_obj},
422
- ],
423
- 'desc': [
424
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
425
- ]
426
- },
427
- f"the {s} is too slow": {
428
- 'train': '',
429
- 'result': [
430
- x_speed,
431
- x_increase,
432
- {x_args: x_obj},
433
- ],
434
- 'desc': [
435
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
436
- ]
437
- },
438
- f"decrease {s} speed": {
439
- 'train': '',
440
- 'result': [
441
- x_speed,
442
- x_decrease,
443
- {x_args: x_obj},
444
- ],
445
- 'desc': [
446
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
447
- ]
448
- },
449
- f"make {s} move faster": {
450
- 'train': '',
451
- 'result': [
452
- x_speed,
453
- x_increase,
454
- {x_args: x_obj},
455
- ],
456
- 'desc': [
457
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
458
- ]
459
- },
460
- f"make {s} move slower": {
461
- 'train': '',
462
- 'result': [
463
- x_speed,
464
- x_decrease,
465
- {x_args: x_obj},
466
- ],
467
- 'desc': [
468
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
469
- ]
470
- },
471
- f"reduce {s} speed": {
472
- 'train': '',
473
- 'result': [
474
- x_speed,
475
- x_decrease,
476
- {x_args: x_obj},
477
- ],
478
- 'desc': [
479
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
480
- ]
481
- },
482
- f"the {s} is too fast": {
483
- 'train': '',
484
- 'result': [
485
- x_speed,
486
- x_decrease,
487
- {x_args: x_obj},
488
- ],
489
- 'desc': [
490
- 'increase/decrease props/weapons/food/obstacles/monsters(enemies) speed',
491
- ]
492
- },
493
- }
494
- train_generated |= xxx
495
-
496
-
497
- def test_enable_patrol():
498
- global train_generated
499
- ###########################################
500
- # enable patrol
501
- ###########################################
502
- for x_obj, obj in [
503
- # props
504
- (x_prop, 'the game item'),
505
- (x_prop, 'the prop'),
506
- (x_prop, 'the game prop'),
507
- (x_prop, 'game items'),
508
- (x_prop, 'props'),
509
- (x_prop, 'game props'),
510
- # weapons
511
- (x_weapon, 'weapons'),
512
- (x_weapon, 'weapon'),
513
- # food
514
- (x_food, 'food'),
515
- # obstacles
516
- (x_obstacle, 'obstacles'),
517
- # enemies
518
- (x_enemy, 'monsters'),
519
- (x_enemy, 'enemies'),
520
- # both
521
- (x_prop_and_obstacle, 'both'),
522
- # all
523
- ('all', 'all'),
524
- ]:
525
- for verb1 in ["move", 'vibe', 'patrol']:
526
- for verb2 in ['make', 'enable', 'allow']:
527
- xxx = {
528
- f"{verb2} {obj} {verb1}": {
529
- 'train': '',
530
- 'result': [
531
- x_enable,
532
- x_patrol,
533
- {x_args: x_obj},
534
- ],
535
- 'desc': [
536
- 'enable patrol'
537
- ]
538
- },
539
- }
540
- train_generated |= xxx
541
-
542
-
543
- def test_disable_patrol():
544
- global train_generated
545
- ###########################################
546
- # disable patrol
547
- ###########################################
548
- for x_obj, obj in [
549
- # props
550
- (x_prop, 'the game item'),
551
- (x_prop, 'the prop'),
552
- (x_prop, 'the game prop'),
553
- (x_prop, 'game items'),
554
- (x_prop, 'props'),
555
- (x_prop, 'game props'),
556
- # weapons
557
- (x_weapon, 'weapons'),
558
- (x_weapon, 'weapon'),
559
- # food
560
- (x_food, 'food'),
561
- # obstacles
562
- (x_obstacle, 'obstacles'),
563
- # enemies
564
- (x_enemy, 'monsters'),
565
- (x_enemy, 'enemies'),
566
- # both
567
- (x_prop_and_obstacle, 'both'),
568
- # all
569
- ('all', 'all'),
570
- ]:
571
- for verb in [
572
- "move",
573
- 'vibe',
574
- 'patrol',
575
- ]:
576
- xxx = {
577
- f"stop {obj} from {verb}": {
578
- 'train': '',
579
- 'result': [
580
- x_disable,
581
- x_patrol,
582
- {x_args: x_obj},
583
- ],
584
- 'desc': [
585
- 'disable patrol'
586
- ]
587
- },
588
-
589
- f"disable {obj} from {verb}": {
590
- 'train': '',
591
- 'result': [
592
- x_disable,
593
- x_patrol,
594
- {x_args: x_obj},
595
- ],
596
- 'desc': [
597
- 'disable patrol'
598
- ]
599
- },
600
- }
601
- train_generated |= xxx
602
-
603
-
604
- def test_enable_monster_extra_capability():
605
- global train_generated
606
- ###########################################
607
- # enable
608
- ###########################################
609
- for x_obj, obj in [
610
- (x_enemy, 'enemies'),
611
- (x_enemy, 'monsters'),
612
- ]:
613
- for x_capability in [
614
- 'go through obstacles',
615
- 'pass through obstacles',
616
- ]:
617
- for s in [
618
- f'enable {x_enemy} {x_capability}',
619
- f'{x_enemy} can {x_capability}',
620
- ]:
621
- xxx = {
622
- s: {
623
- 'train': '',
624
- 'result': [
625
- x_enable,
626
- x_enemy,
627
- {x_args: 'go through obstacles'},
628
- ],
629
- 'desc': [
630
- 'enable enemy extra capabilities'
631
- ]
632
- },
633
- }
634
- train_generated |= xxx
635
-
636
- for x_obj, obj in [
637
- (x_enemy, 'enemies'),
638
- (x_enemy, 'monsters'),
639
- ]:
640
- for x_capability in [
641
- 'grab weapons',
642
- 'pick up weapons',
643
- 'utilize weapons',
644
- ]:
645
- for s in [
646
- f'enable {x_enemy} {x_capability}',
647
- f'{x_enemy} can {x_capability}',
648
- ]:
649
- xxx = {
650
- s: {
651
- 'train': '',
652
- 'result': [
653
- x_enable,
654
- x_enemy,
655
- {x_args: 'grab weapons'},
656
- ],
657
- 'desc': [
658
- 'enable enemy extra capabilities'
659
- ]
660
- },
661
- }
662
- train_generated |= xxx
663
-
664
- for x_obj, obj in [
665
- (x_enemy, 'enemies'),
666
- (x_enemy, 'monsters'),
667
- ]:
668
- for x_capability in [
669
- 'pick up food',
670
- 'consume food',
671
- 'consume beans'
672
- ]:
673
- for s in [
674
- f'enable {x_enemy} {x_capability}',
675
- f'{x_enemy} can {x_capability}',
676
- ]:
677
- xxx = {
678
- s: {
679
- 'train': '',
680
- 'result': [
681
- x_enable,
682
- x_enemy,
683
- {x_args: 'collect food'},
684
- ],
685
- 'desc': [
686
- 'enable enemy extra capabilities'
687
- ]
688
- },
689
- }
690
- train_generated |= xxx
691
-
692
- def test_disable_monster_extra_capability():
693
- global train_generated
694
- ###########################################
695
- # disable
696
- ###########################################
697
- for x_obj, obj in [
698
- (x_enemy, 'enemies'),
699
- (x_enemy, 'monsters'),
700
- ]:
701
- for x_capability in [
702
- 'go through obstacles',
703
- 'pass through obstacles',
704
- ]:
705
- for s in [
706
- f'disable {x_enemy} {x_capability}',
707
- f'{x_enemy} cannot {x_capability}',
708
- ]:
709
- xxx = {
710
- s: {
711
- 'train': '',
712
- 'result': [
713
- x_disable,
714
- x_enemy,
715
- {x_args: 'go through obstacles'},
716
- ],
717
- 'desc': [
718
- 'disable enemy extra capabilities'
719
- ]
720
- },
721
- }
722
- train_generated |= xxx
723
-
724
- for x_obj, obj in [
725
- (x_enemy, 'enemies'),
726
- (x_enemy, 'monsters'),
727
- ]:
728
- for x_capability in [
729
- 'grab weapons',
730
- 'pick up weapons',
731
- 'utilize weapons',
732
- ]:
733
- for s in [
734
- f'disable {x_enemy} {x_capability}',
735
- f'{x_enemy} cannot {x_capability}',
736
- ]:
737
- xxx = {
738
- s: {
739
- 'train': '',
740
- 'result': [
741
- x_disable,
742
- x_enemy,
743
- {x_args: 'grab weapons'},
744
- ],
745
- 'desc': [
746
- 'disable enemy extra capabilities'
747
- ]
748
- },
749
- }
750
- train_generated |= xxx
751
-
752
- for x_obj, obj in [
753
- (x_enemy, 'enemies'),
754
- (x_enemy, 'monsters'),
755
- ]:
756
- for x_capability in [
757
- 'pick up food',
758
- 'consume food',
759
- 'consume beans'
760
- ]:
761
- for s in [
762
- f'disable {x_enemy} {x_capability}',
763
- f'{x_enemy} cannot {x_capability}',
764
- ]:
765
- xxx = {
766
- s: {
767
- 'train': '',
768
- 'result': [
769
- x_disable,
770
- x_enemy,
771
- {x_args: 'collect food'},
772
- ],
773
- 'desc': [
774
- 'disable enemy extra capabilities'
775
- ]
776
- },
777
- }
778
- train_generated |= xxx
779
-
780
-
781
- def test_snake_speed():
782
- global train_generated
783
- ###########################################
784
- # snake speed
785
- ###########################################
786
- for counter in range(20):
787
- speed = counter + 1
788
- xxx = {
789
- f"snake speed {speed} meters per second": {
790
- 'train': '',
791
- 'result': [
792
- x_snake_speed,
793
- 'set',
794
- {"args":speed},
795
- ],
796
- 'desc': [
797
- 'set/increase/decrease snake speed',
798
- ]
799
- },
800
- }
801
- train_generated |= xxx
802
-
803
- for counter in range(20):
804
- speed = counter + 1
805
- xxx = {
806
- f"set snake speed {speed} meters per second": {
807
- 'train': '',
808
- 'result': [
809
- x_snake_speed,
810
- 'set',
811
- {"args":speed},
812
- ],
813
- 'desc': [
814
- 'set/increase/decrease snake speed',
815
- ]
816
- },
817
- }
818
- train_generated |= xxx
819
-
820
- for s in [
821
- "increase snake speed",
822
- "the snake is too slow",
823
- 'snake moves faster',
824
- 'make snake move faster',
825
- ]:
826
- xxx = {
827
- s: {
828
- 'train': '',
829
- 'result': [
830
- x_snake_speed,
831
- x_increase,
832
- {},
833
- ],
834
- 'desc': [
835
- 'set/increase/decrease snake speed',
836
- ]
837
- },
838
- }
839
- train_generated |= xxx
840
-
841
- for s in [
842
- "decrease snake speed",
843
- "reduce snake speed",
844
- "the snake is too fast",
845
- 'snake moves slower',
846
- 'make snake move slower',
847
- ]:
848
- xxx = {
849
- s: {
850
- 'train': '',
851
- 'result': [
852
- x_snake_speed,
853
- x_decrease,
854
- {},
855
- ],
856
- 'desc': [
857
- 'set/increase/decrease snake speed',
858
- ]
859
- },
860
- }
861
- train_generated |= xxx
862
-
863
- for q, multiplier in [
864
- ('Snake moves 10 times as slow', 0.1),
865
- ('Snake moves 10 times slower', 0.1),
866
- ('Snake moves ten times as slow', 0.1),
867
-
868
- ('Snake moves 5 times as slow', 0.2),
869
- ('Snake moves 5 times slower', 0.2),
870
- ('Snake moves five times as slow', 0.2),
871
-
872
- ('Snake moves 4 times as slow', 0.25),
873
- ('Snake moves 4 times slower', 0.25),
874
- ('Snake moves four times as slow', 0.25),
875
-
876
- ('Snake moves 3 times as slow', 0.33),
877
- ('Snake moves 3 times slower', 0.33),
878
- ('Snake moves three times as slow', 0.33),
879
-
880
- ('Snake moves 2 times as slow', 0.5),
881
- ('Snake moves 2 times slower', 0.5),
882
- ('Snake moves twice as slow', 0.5),
883
-
884
- # ('half the snake speed', 0.5),
885
- # ('make the snake speed 50% slower', 0.5),
886
- # ('reduce the snake speed to be 50%', 0.5),
887
- # ('decrease the snake speed to 50%', 0.5),
888
- # ('decrease the snake speed by 50%', 0.5),
889
-
890
- # ('reduce the snake speed by a quarter', 0.75),
891
- # ('reduce the snake speed by 25%', 0.74),
892
-
893
- ('Snake moves twice as fast', 2),
894
- ('double the snake speed', 2),
895
- ('make the snake move twice as fast', 2),
896
- ('make the snake move 2 times as fast', 2),
897
- ('make the snake move to be 2 times fast', 2),
898
- ('make the snake move to be two times fast', 2),
899
- ('increase the snake speed to be 200%', 2),
900
- ('make the snake move 100% faster', 2),
901
-
902
- ('triple the snake speed', 3),
903
- ('make the snake move 200% faster', 3),
904
- ('make the snake move to be 3 times fast', 2),
905
- ('make the snake move to be three times fast', 2),
906
- ('make the snake move 2 times faster', 3),
907
- ('make the snake move 3 times as fast', 3),
908
- ('make the snake move three times as fast', 3),
909
- ]:
910
- xxx = {
911
- q: {
912
- 'train': '',
913
- 'result': [
914
- x_snake_speed,
915
- x_multiplier,
916
- {x_args: multiplier},
917
- ],
918
- 'desc': [
919
- 'set/increase/decrease snake speed',
920
- ]
921
- },
922
- }
923
- train_generated |= xxx
924
-
925
- for counter in range(5, 100, 5):
926
- percent_s = f'{counter}%'
927
- percent_f = 0.01*counter
928
-
929
- for s, multiplier in [
930
- (f'Snake moves {percent_s} slower', 1 - percent_f),
931
- (f'make the snake speed {percent_s} slower', 1 - percent_f),
932
- (f'reduce the snake speed to be {percent_s}', percent_f),
933
- (f'decrease the snake speed to be {percent_s}', percent_f),
934
- (f'reduce the snake speed by {percent_s}', 1 - percent_f),
935
- # remove 'the'
936
- (f'reduce snake speed by {percent_s}', 1 - percent_f),
937
- (f'decrease the snake speed by {percent_s}', 1 - percent_f),
938
- # remove 'the'
939
- (f'decrease snake speed by {percent_s}', 1 - percent_f),
940
- ]:
941
- xxx = {
942
- s: {
943
- 'train': '',
944
- 'result': [
945
- x_snake_speed,
946
- x_multiplier,
947
- {x_args: multiplier},
948
- ],
949
- 'desc': [
950
- 'set/increase/decrease snake speed',
951
- ]
952
- },
953
- }
954
- train_generated |= xxx
955
-
956
- for counter in range(1, 10):
957
- percent_s = f'{counter}0%'
958
- percent_f = 0.1*counter
959
-
960
- for s, multiplier in [
961
- (f'Snake moves {percent_s} faster', 1 + percent_f),
962
- (f'make the snake speed {percent_s} faster', 1 + percent_f),
963
- (f'increase the snake speed by {percent_s}', 1 + percent_f),
964
- ]:
965
- xxx = {
966
- s: {
967
- 'train': '',
968
- 'result': [
969
- x_snake_speed,
970
- x_multiplier,
971
- {x_args: multiplier},
972
- ],
973
- 'desc': [
974
- 'set/increase/decrease snake speed',
975
- ]
976
- },
977
- }
978
- train_generated |= xxx
979
-
980
-
981
- def test_add_props_general():
982
- global train_generated
983
- ###########################################
984
- # add game items (general)
985
- ###########################################
986
- for x_verb, action in [
987
- (x_add, 'add'),
988
- (x_add, 'increase'),
989
- (x_add, 'more'),
990
- ]:
991
- for item in [
992
- 'props',
993
- 'game items'
994
- ]:
995
- xxx = {
996
- f"{action} {item}": {
997
- 'train': '',
998
- 'result': [
999
- x_prop,
1000
- x_verb,
1001
- {x_args:'some'},
1002
- ],
1003
- 'desc': [
1004
- 'add/delete props',
1005
- ]
1006
- },
1007
- }
1008
- train_generated |= xxx
1009
-
1010
-
1011
- def test_delete_all_props_general():
1012
- global train_generated
1013
- ###########################################
1014
- # delete all game items (general)
1015
- ###########################################
1016
- for x_verb, action in [
1017
- (x_delete, 'delete'),
1018
- (x_delete, 'remove'),
1019
- (x_delete, 'reduce'),
1020
- ]:
1021
- for item in [
1022
- 'props',
1023
- 'game items'
1024
- ]:
1025
- xxx = {
1026
- f"{action} {item}": {
1027
- 'train': '',
1028
- 'result': [
1029
- x_prop,
1030
- x_verb,
1031
- {x_args:'all'},
1032
- ],
1033
- 'desc': [
1034
- 'add/delete props',
1035
- ]
1036
- },
1037
- }
1038
- train_generated |= xxx
1039
-
1040
-
1041
- def test_delete_some_props_general():
1042
- global train_generated
1043
- ###########################################
1044
- # delete some game items (general)
1045
- ###########################################
1046
- for x_verb, action in [
1047
- (x_delete, 'delete some'),
1048
- (x_delete, 'remove some'),
1049
- (x_delete, 'reduce'),
1050
- (x_delete, 'less'),
1051
- ]:
1052
- for item in [
1053
- 'props',
1054
- 'game items'
1055
- ]:
1056
- xxx = {
1057
- f"{action} {item}": {
1058
- 'train': '',
1059
- 'result': [
1060
- x_prop,
1061
- x_verb,
1062
- {x_args:'some'},
1063
- ],
1064
- 'desc': [
1065
- 'add/delete props',
1066
- ]
1067
- },
1068
- }
1069
- train_generated |= xxx
1070
-
1071
-
1072
- def test_add_some_props():
1073
- global train_generated
1074
- ###########################################
1075
- # add game items
1076
- ###########################################
1077
- for x_verb, verb in [
1078
- (x_add, 'add'),
1079
- (x_add, 'add more'),
1080
- (x_add, 'more'),
1081
- ]:
1082
- for x_obj, obj_plural in [
1083
- (x_magnet, 'magnets'),
1084
- (x_bomb, 'bombs'),
1085
- (x_sword, 'swords'),
1086
- (x_stick, 'sticks'),
1087
- (x_gun, 'guns'),
1088
- ]:
1089
- xxx = {
1090
- f"{verb} {obj_plural}": {
1091
- 'train': '',
1092
- 'result': [
1093
- x_obj,
1094
- x_verb,
1095
- {"args":'some'},
1096
- ],
1097
- 'desc': [
1098
- 'add/delete props',
1099
- ]
1100
- },
1101
- }
1102
- train_generated |= xxx
1103
-
1104
-
1105
- def test_delete_all_props():
1106
- global train_generated
1107
- ###########################################
1108
- # delete all game items
1109
- ###########################################
1110
- for x_verb, verb in [
1111
- (x_delete, 'delete'),
1112
- (x_delete, 'remove'),
1113
- (x_delete, 'delete all'),
1114
- (x_delete, 'remove all'),
1115
- ]:
1116
- for x_obj, obj_plural in [
1117
- (x_magnet, 'magnets'),
1118
- (x_bomb, 'bombs'),
1119
- (x_sword, 'swords'),
1120
- (x_stick, 'sticks'),
1121
- (x_gun, 'guns'),
1122
- ]:
1123
- xxx = {
1124
- f"{verb} {obj_plural}": {
1125
- 'train': '',
1126
- 'result': [
1127
- x_obj,
1128
- x_verb,
1129
- {"args":'all'},
1130
- ],
1131
- 'desc': [
1132
- 'add/delete bombs/swords/...',
1133
- ]
1134
- },
1135
- }
1136
- train_generated |= xxx
1137
-
1138
-
1139
- def test_add_weapon():
1140
- global train_generated
1141
- ###########################################
1142
- # add weapons
1143
- ###########################################
1144
- for x_verb, verb in [
1145
- (x_add, 'add'),
1146
- (x_add, 'increase'),
1147
- (x_add, 'create'),
1148
- ]:
1149
- for x_obj, obj_plural in [
1150
- (x_weapon, 'weapons')
1151
- ]:
1152
- xxx = {
1153
- f"{verb} {obj_plural}": {
1154
- 'train': '',
1155
- 'result': [
1156
- x_obj,
1157
- x_verb,
1158
- {"args":'some'},
1159
- ],
1160
- 'desc': [
1161
- 'add/delete weapons',
1162
- ]
1163
- },
1164
- }
1165
- train_generated |= xxx
1166
-
1167
-
1168
- def test_delete_all_weapon():
1169
- global train_generated
1170
- ###########################################
1171
- # delete all weapons
1172
- ###########################################
1173
- for x_verb, verb in [
1174
- (x_delete, 'delete'),
1175
- (x_delete, 'remove'),
1176
- (x_delete, 'delete all'),
1177
- (x_delete, 'remove all'),
1178
- ]:
1179
- for x_obj, obj_plural in [
1180
- (x_weapon, 'weapons')
1181
- ]:
1182
- xxx = {
1183
- f"{verb} {obj_plural}": {
1184
- 'train': '',
1185
- 'result': [
1186
- x_obj,
1187
- x_verb,
1188
- {"args":'all'},
1189
- ],
1190
- 'desc': [
1191
- 'add/delete weapons',
1192
- ]
1193
- },
1194
- }
1195
- train_generated |= xxx
1196
-
1197
-
1198
- def test_delete_some_weapon():
1199
- global train_generated
1200
- ###########################################
1201
- # delete some weapons
1202
- ###########################################
1203
- for x_verb, verb in [
1204
- (x_delete, 'delete some'),
1205
- (x_delete, 'remove some'),
1206
- (x_delete, 'reduce some'),
1207
- (x_delete, 'less'),
1208
- ]:
1209
- for x_obj, obj_plural in [
1210
- (x_magnet, 'magnets'),
1211
- (x_bomb, 'bombs'),
1212
- (x_sword, 'swords'),
1213
- (x_stick, 'sticks'),
1214
- (x_gun, 'guns'),
1215
- ]:
1216
- xxx = {
1217
- f"{verb} {obj_plural}": {
1218
- 'train': '',
1219
- 'result': [
1220
- x_obj,
1221
- x_verb,
1222
- {"args":'some'},
1223
- ],
1224
- 'desc': [
1225
- 'add/delete props',
1226
- ]
1227
- },
1228
- }
1229
- train_generated |= xxx
1230
-
1231
-
1232
- def test_add_or_remove_obstacles():
1233
- global train_generated
1234
- ###########################################
1235
- # add/reduce obstacles
1236
- ###########################################
1237
- for x_verb, verb in [
1238
- (x_add, 'add'),
1239
- (x_add, 'add more'),
1240
- (x_delete, 'delete'),
1241
- (x_delete, 'delete more'),
1242
- (x_delete, 'remove'),
1243
- (x_delete, 'remove more'),
1244
- ]:
1245
- xxx = {
1246
- f"{verb} obstacles": {
1247
- 'train': '',
1248
- 'result': [
1249
- x_obstacle,
1250
- x_verb,
1251
- {"args":'some'},
1252
- ],
1253
- 'desc': [
1254
- 'add/delete obstacles',
1255
- ]
1256
- },
1257
- }
1258
- train_generated |= xxx
1259
-
1260
- # for x_verb, verb in [
1261
- # (x_add, 'add'),
1262
- # (x_delete, 'delete'),
1263
- # (x_delete, 'remove'),
1264
- # ]:
1265
- # for x_obj, obj_single in [
1266
- # (x_steel, 'steel'),
1267
- # (x_wood, 'wood'),
1268
- # (x_iron, 'iron'),
1269
- # ]:
1270
- # xxx = {
1271
- # f"{verb} more {obj_single} obstacles": {
1272
- # 'train': '',
1273
- # 'result': [
1274
- # x_obstacle,
1275
- # x_verb,
1276
- # {'type': x_obj, "args":'some'},
1277
- # ],
1278
- # 'desc': [
1279
- # 'add/delete obstacles',
1280
- # ]
1281
- # },
1282
- # }
1283
- # train_generated |= xxx
1284
-
1285
-
1286
- def test_add_or_remove_ememies():
1287
- global train_generated
1288
- ###########################################
1289
- # add/reduce enemies/monsters
1290
- ###########################################
1291
- for x_verb, verb in [
1292
- (x_add, 'add'),
1293
- (x_delete, 'delete'),
1294
- (x_delete, 'remove'),
1295
- ]:
1296
- for x_obj, obj_plural in [
1297
- (x_enemy, 'enemies'),
1298
- (x_enemy, 'monsters'),
1299
- ]:
1300
- xxx = {
1301
- f"{verb} {obj_plural}": {
1302
- 'train': '',
1303
- 'result': [
1304
- x_enemy,
1305
- x_verb,
1306
- {"args":'some'},
1307
- ],
1308
- 'desc': [
1309
- 'add/delete enemies/monsters',
1310
- ]
1311
- },
1312
- }
1313
- train_generated |= xxx
1314
-
1315
-
1316
- def test_replace_props():
1317
- global train_generated
1318
- ###########################################
1319
- # replace A with B
1320
- ###########################################
1321
- for x_obj, verb, prep in [
1322
- (x_replace, 'replace', 'with'),
1323
- (x_replace, 'replace', 'by'),
1324
- (x_replace, 'change', 'to'),
1325
- (x_replace, 'substitude', 'for'),
1326
- ]:
1327
- for obj_a, A in [
1328
- (x_bomb, 'bomb'),
1329
- (x_magnet, 'magnet'),
1330
- (x_sword, 'swords'),
1331
- (x_stick, 'sticks'),
1332
- (x_gun, 'guns'),
1333
- ]:
1334
- for obj_b, B in [
1335
- (x_bomb, 'bomb'),
1336
- (x_magnet, 'magnet'),
1337
- (x_sword, 'swords'),
1338
- (x_stick, 'sticks'),
1339
- (x_gun, 'guns'),
1340
- ]:
1341
- if A == B:
1342
- continue
1343
- if verb == 'substitude':
1344
- obj_a, obj_b = obj_b, obj_a
1345
- xxx = {
1346
- f"{verb} {A} {prep} {B}": {
1347
- 'train': '',
1348
- 'result': [
1349
- x_obj,
1350
- {'from': obj_a, "to": obj_b},
1351
- ],
1352
- 'desc': [
1353
- 'replace props',
1354
- ]
1355
- },
1356
- }
1357
- train_generated |= xxx
1358
-
1359
-
1360
- def test_replace_with_props():
1361
- global train_generated
1362
- ###########################################
1363
- # replace with A
1364
- ###########################################
1365
- for x_obj, verb, prep in [
1366
- (x_replace, 'replace', 'with'),
1367
- (x_replace, 'replace', 'by'),
1368
- (x_replace, 'change', 'to'),
1369
- ]:
1370
- for obj_a, A in [
1371
- (x_prop, 'props'),
1372
- (x_prop, 'game items'),
1373
- ]:
1374
- for obj_b, B in [
1375
- (x_bomb, 'bombs'),
1376
- (x_magnet, 'magnets'),
1377
- (x_sword, 'swords'),
1378
- (x_stick, 'sticks'),
1379
- (x_gun, 'guns'),
1380
- ]:
1381
- xxx = {
1382
- f"{verb} {A} {prep} {B}": {
1383
- 'train': '',
1384
- 'result': [
1385
- x_obj,
1386
- {'from': obj_a, "to": obj_b},
1387
- ],
1388
- 'desc': [
1389
- 'replace props',
1390
- ]
1391
- },
1392
- }
1393
- train_generated |= xxx
1394
-
1395
-
1396
- def test_substitude_props():
1397
- global train_generated
1398
- ###########################################
1399
- # replace with A (substitude)
1400
- ###########################################
1401
- for x_obj, verb, prep in [
1402
- (x_replace, 'substitude', 'for'),
1403
- ]:
1404
- for obj_a, A in [
1405
- (x_bomb, 'bombs'),
1406
- (x_magnet, 'magnets'),
1407
- (x_sword, 'swords'),
1408
- (x_stick, 'sticks'),
1409
- (x_gun, 'guns'),
1410
- ]:
1411
- for obj_b, B in [
1412
- (x_prop, 'props'),
1413
- (x_prop, 'game items'),
1414
- ]:
1415
- xxx = {
1416
- f"{verb} {A} {prep} {B}": {
1417
- 'train': '',
1418
- 'result': [
1419
- x_obj,
1420
- {'from': obj_b, "to": obj_a},
1421
- ],
1422
- 'desc': [
1423
- 'replace props',
1424
- ]
1425
- },
1426
- }
1427
- train_generated |= xxx
1428
-
1429
-
1430
- def test_list_props():
1431
- global train_generated
1432
- ###########################################
1433
- # list props etc
1434
- ###########################################
1435
- for x_obj, obj_single, obj_plural in [
1436
- (x_prop, 'prop', 'props'),
1437
- (x_prop, 'game item', 'game items'),
1438
- (x_weapon, 'weapon', 'weapons'),
1439
- (x_food, 'food', 'food'),
1440
- (x_obstacle, 'obstacle', 'obstacles'),
1441
- (x_enemy, 'enemy', 'enemies'),
1442
- ]:
1443
- for s in [
1444
- # f'edit {obj_plural}',
1445
- f"Show {obj_single} list",
1446
- f'list {obj_plural}',
1447
- f"{obj_single} list",
1448
- f"What kind of {obj_plural} do you have?",
1449
- ]:
1450
- xxx = {
1451
- s: {
1452
- 'train': '',
1453
- 'result': [
1454
- x_obj,
1455
- x_list,
1456
- {},
1457
- ],
1458
- 'desc': [
1459
- f'list props/weapons/food/obstacles/enemies',
1460
- ]
1461
- },
1462
- }
1463
- train_generated |= xxx
1464
-
1465
- # aditional strange edit props -> list props
1466
- for s in [
1467
- 'edit props',
1468
- ]:
1469
- xxx = {
1470
- s: {
1471
- 'train': '',
1472
- 'result': [
1473
- x_prop,
1474
- x_list,
1475
- {},
1476
- ],
1477
- 'desc': [
1478
- f'list props/weapons/food/obstacles/enemies',
1479
- ]
1480
- },
1481
- }
1482
- train_generated |= xxx
1483
-
1484
-
1485
- def test_change_skin():
1486
- global train_generated
1487
- ###########################################
1488
- # Change skin for snake and props
1489
- ###########################################
1490
- for x_obj, obj_single, obj_plural in [
1491
- (x_snake, 'snake', 'snakes'),
1492
- (x_snake, 'player', 'player'),
1493
- (x_obstacle, 'obstacle', 'obstacles'),
1494
- (x_enemy, 'enemy', 'enemies'),
1495
- (x_enemy, 'monster', 'monsters'),
1496
- (x_food, 'food', 'food'),
1497
- (x_weapon, 'weapon', 'weapons'),
1498
- (x_prop, 'prop', 'props'),
1499
- (x_prop, 'game item', 'game items'),
1500
- ]:
1501
- for s in [
1502
- f"Change {obj_single}'s picture",
1503
- f"Change {obj_single}'s skin",
1504
- f"{obj_single} picture",
1505
- f"edit {obj_plural} with my images",
1506
- f"change art for {obj_plural}",
1507
- ]:
1508
- xxx = {
1509
- s: {
1510
- 'train': '',
1511
- 'result': [
1512
- x_change_skin,
1513
- {x_args: x_obj},
1514
- ],
1515
- 'desc': [
1516
- 'change skin',
1517
- ]
1518
- }
1519
- }
1520
- train_generated |= xxx
1521
-
1522
-
1523
- def test_timer():
1524
- global train_generated
1525
- ###########################################
1526
- # timer
1527
- ###########################################
1528
- for x_verb, s in [
1529
- (x_start, 'start a timer'),
1530
- (x_start, 'add timer to end the game'),
1531
- (x_start, 'add timer to finish the game'),
1532
- (x_start, 'add a timer'),
1533
- (x_end, 'remove a timer'),
1534
- (x_end, 'delete a timer'),
1535
- (x_end, 'finish a timer'),
1536
- ]:
1537
- xxx = {
1538
- s: {
1539
- 'train': '',
1540
- 'result': [
1541
- x_timer,
1542
- x_verb,
1543
- {},
1544
- ],
1545
- 'desc': [
1546
- 'timer',
1547
- ]
1548
- },
1549
- }
1550
- train_generated |= xxx
1551
-
1552
-
1553
- def test_timer_2():
1554
- global train_generated
1555
- ###########################################
1556
- # timer
1557
- ###########################################
1558
- for quantity in range(1, 301):
1559
- unit = 'second'
1560
- q = f'set timer to {quantity} {unit}s'
1561
- xxx = {
1562
- q: {
1563
- 'train': '',
1564
- 'result': [
1565
- x_timer,
1566
- x_last,
1567
- {
1568
- x_quantity: quantity,
1569
- x_unit: unit
1570
- },
1571
- ],
1572
- 'desc': [
1573
- 'timer',
1574
- ]
1575
- },
1576
- }
1577
- train_generated |= xxx
1578
-
1579
-
1580
- def test_winning_condition():
1581
- global train_generated
1582
- ###########################################
1583
- # winning condition
1584
- ###########################################
1585
- for x_verb, verb in [
1586
- (x_enable, 'enable'),
1587
- (x_enable, 'add'),
1588
- (x_disable, 'disable'),
1589
- (x_disable, 'delete'),
1590
- ]:
1591
- for s in [
1592
- f'{verb} a winning condition',
1593
- ]:
1594
- xxx = {
1595
- s: {
1596
- 'train': '',
1597
- 'result': [
1598
- x_winning_condition,
1599
- x_verb,
1600
- {},
1601
- ],
1602
- 'desc': [
1603
- 'winning condition',
1604
- ]
1605
- },
1606
- }
1607
- train_generated |= xxx
1608
-
1609
- for x_verb, verb in [
1610
- (x_enable, 'enable'),
1611
- (x_enable, 'add'),
1612
- (x_disable, 'disable'),
1613
- (x_disable, 'delete'),
1614
- ]:
1615
- for s in [
1616
- f'{verb} a winning condition in words',
1617
- f'{verb} a winning condition in letters',
1618
- f'{verb} a winning condition in text',
1619
- ]:
1620
- xxx = {
1621
- s: {
1622
- 'train': '',
1623
- 'result': [
1624
- x_winning_condition,
1625
- x_verb,
1626
- {x_args:'word'},
1627
- ],
1628
- 'desc': [
1629
- 'winning condition',
1630
- ]
1631
- },
1632
- }
1633
- train_generated |= xxx
1634
-
1635
- for x_verb, verb in [
1636
- (x_enable, 'enable'),
1637
- (x_enable, 'add'),
1638
- (x_disable, 'disable'),
1639
- (x_disable, 'delete'),
1640
- ]:
1641
- for s in [
1642
- f'{verb} a winning condition in images',
1643
- f'{verb} a winning condition in pictures',
1644
- f'{verb} a winning condition in pics',
1645
- ]:
1646
- xxx = {
1647
- s: {
1648
- 'train': '',
1649
- 'result': [
1650
- x_winning_condition,
1651
- x_verb,
1652
- {x_args:'image'},
1653
- ],
1654
- 'desc': [
1655
- 'winning condition',
1656
- ]
1657
- },
1658
- }
1659
- train_generated |= xxx
1660
-
1661
- for verb in [
1662
- 'set',
1663
- 'config',
1664
- 'adjust',
1665
- ]:
1666
- for s in [
1667
- f'{verb} a winning condition',
1668
- ]:
1669
- xxx = {
1670
- s: {
1671
- 'train': '',
1672
- 'result': [
1673
- x_winning_condition,
1674
- x_set,
1675
- {},
1676
- ],
1677
- 'desc': [
1678
- 'winning condition',
1679
- ]
1680
- },
1681
- }
1682
- train_generated |= xxx
1683
-
1684
- for verb in [
1685
- 'set',
1686
- 'config',
1687
- 'adjust',
1688
- ]:
1689
- for s in [
1690
- f'{verb} a winning condition in words',
1691
- f'{verb} a winning condition in letters',
1692
- f'{verb} a winning condition in text',
1693
- ]:
1694
- xxx = {
1695
- s: {
1696
- 'train': '',
1697
- 'result': [
1698
- x_winning_condition,
1699
- x_set,
1700
- {x_args: 'word'},
1701
- ],
1702
- 'desc': [
1703
- 'winning condition',
1704
- ]
1705
- },
1706
- }
1707
- train_generated |= xxx
1708
-
1709
- for verb in [
1710
- 'set',
1711
- 'config',
1712
- 'adjust',
1713
- ]:
1714
- for s in [
1715
- f'{verb} a winning condition in images',
1716
- f'{verb} a winning condition in pictures',
1717
- f'{verb} a winning condition in pics',
1718
- ]:
1719
- xxx = {
1720
- s: {
1721
- 'train': '',
1722
- 'result': [
1723
- x_winning_condition,
1724
- x_set,
1725
- {x_args: 'image'},
1726
- ],
1727
- 'desc': [
1728
- 'winning condition',
1729
- ]
1730
- },
1731
- }
1732
- train_generated |= xxx
1733
-
1734
-
1735
- def test_survival_winning_condition():
1736
- global train_generated
1737
- ###########################################
1738
- # winning condition
1739
- ###########################################
1740
- for x_verb, verb in [
1741
- (x_enable, 'enable'),
1742
- (x_enable, 'add'),
1743
- (x_disable, 'disable'),
1744
- (x_disable, 'delete'),
1745
- ]:
1746
- for s in [
1747
- f'{verb} a survival winning condition',
1748
- ]:
1749
- xxx = {
1750
- s: {
1751
- 'train': '',
1752
- 'result': [
1753
- x_survival_winning_condition,
1754
- x_verb,
1755
- {},
1756
- ],
1757
- 'desc': [
1758
- 'winning condition',
1759
- ]
1760
- },
1761
- }
1762
- train_generated |= xxx
1763
-
1764
- for verb in [
1765
- 'set',
1766
- 'config',
1767
- 'adjust',
1768
- ]:
1769
- for s in [
1770
- f'{verb} a survival winning condition',
1771
- ]:
1772
- xxx = {
1773
- s: {
1774
- 'train': '',
1775
- 'result': [
1776
- x_survival_winning_condition,
1777
- x_set,
1778
- {},
1779
- ],
1780
- 'desc': [
1781
- 'winning condition',
1782
- ]
1783
- },
1784
- }
1785
- train_generated |= xxx
1786
-
1787
-
1788
- def test_help():
1789
- global train_generated
1790
- ###########################################
1791
- # help
1792
- ###########################################
1793
- for s in [
1794
- 'help',
1795
- 'give me some hints',
1796
- 'what commands can I use?',
1797
- 'how to get started?',
1798
- 'new ideas',
1799
- ]:
1800
- xxx = {
1801
- s: {
1802
- 'train': '',
1803
- 'result': [
1804
- x_help,
1805
- {},
1806
- ],
1807
- 'desc': [
1808
- 'help',
1809
- ]
1810
- },
1811
- }
1812
- train_generated |= xxx
1813
-
1814
-
1815
- def test_add_remove_props_2():
1816
- global train_generated
1817
- ###########################################
1818
- # add/remove <5> bombs/obstacles/...
1819
- ###########################################
1820
- for x_obj, obj_single, obj_plural in [
1821
- # (x_weapon, 'weapon', 'weapons'),
1822
- (x_obstacle, 'obstacle', 'obstacles'),
1823
- (x_bomb, 'bomb', 'bombs'),
1824
- (x_sword, 'sword', 'swords'),
1825
- (x_stick, 'stick', 'sticks'),
1826
- (x_magnet, 'magnet', 'magnets'),
1827
- (x_gun, 'gun', 'guns'),
1828
- ]:
1829
- for verb1, verb2 in [
1830
- ('add', x_add),
1831
- ('delete', x_delete),
1832
- ('reduce', x_delete),
1833
- ]:
1834
- mylist1 = [(tt, obj_plural, tt) for tt in range(2, 101)]
1835
- for x1, x2, x3 in mylist1 + [
1836
- ('one', obj_single, 1),
1837
- (1, obj_single, 1),
1838
- ('a', obj_single, 1),
1839
- ('two', obj_plural, 2),
1840
- ('three', obj_plural, 3),
1841
- ('four', obj_plural, 4),
1842
- ('five', obj_plural, 5),
1843
- ('six', obj_plural, 6),
1844
- ('seven', obj_plural, 7),
1845
- ('eight', obj_plural, 8),
1846
- ('nine', obj_plural, 9),
1847
- ('ten', obj_plural, 10),
1848
- ('twenty', obj_plural, 20),
1849
- (1000, obj_plural, 1000),
1850
- # ('more', obj_plural, 'some'),
1851
- # ('some', obj_plural, 'some'),
1852
- # ('', obj_plural, 'all' if verb2 in [x_delete] else 'some'),
1853
- # ('all', obj_plural, 'all'),
1854
- ]:
1855
- tmp = f"{verb1} {x1} {x2}"
1856
- key = ' '.join(tmp.split())
1857
- xxx = {
1858
- key: {
1859
- 'train': '',
1860
- 'result': [
1861
- x_obj,
1862
- verb2,
1863
- {x_quantity: x3},
1864
- ],
1865
- 'desc': [
1866
- 'add/delete one or more weapons/obstacle',
1867
- ]
1868
- },
1869
- }
1870
- train_generated |= xxx
1871
-
1872
-
1873
- def test_attack():
1874
- global train_generated
1875
- ###########################################
1876
- # obstacle attack around
1877
- ###########################################
1878
- for x_obj, obj in [
1879
- (x_enemy_attack_around, 'enemies'),
1880
- (x_obstacle_attack_around, 'obstacles'),
1881
- ]:
1882
- for x_verb, verb in [
1883
- (x_add, 'add'),
1884
- (x_add, 'let'),
1885
- (x_add, 'make'),
1886
- (x_delete, 'delete'),
1887
- (x_delete, 'remove'),
1888
- ]:
1889
- for tt in ['player', 'snake']:
1890
- for s in [
1891
- f'{obj} attack {tt}',
1892
- f'{obj} chase {tt}',
1893
- f'{obj} circle {tt}',
1894
- f'{obj} follow {tt}',
1895
- f'{obj} contain {tt}',
1896
- ]:
1897
- xxx = {
1898
- f'{verb} {s}': {
1899
- 'train': '',
1900
- 'result': [
1901
- x_obj,
1902
- x_verb,
1903
- {},
1904
- ],
1905
- 'desc': [
1906
- 'enemies/obstacles attack snake/player',
1907
- ]
1908
- },
1909
- }
1910
- train_generated |= xxx
1911
-
1912
-
1913
- def test_enable_self_dammage():
1914
- global train_generated
1915
- ###########################################
1916
- # self_dammage
1917
- ###########################################
1918
- for obj in ['snake', 'player']:
1919
- for x_verb, s in [
1920
- (x_enable, f"death mode"),
1921
- (x_enable, f"enable death mode"),
1922
- (x_enable, f"if {obj} touches itself, it/he will die"),
1923
- (x_enable, f"{obj} die from touching it's own body"),
1924
- (x_enable, f"if {obj} touches any part of its/his own body, it/he will die"),
1925
- (x_enable, f"enable {obj} dying upon touching itself"),
1926
- (x_enable, f"enable {obj} dying upon touching its own body"),
1927
- (x_disable, f"disable death mode"),
1928
- (x_disable, f"if {obj} touches itself, it/he won't die"),
1929
- (x_disable, f"if {obj} touches any part of its/his own body, it/he will not die"),
1930
- (x_disable, f"disable {obj} dying upon touching itself"),
1931
- (x_disable, f"disable {obj} dying upon touching its own body"),
1932
- ]:
1933
- xxx = {
1934
- s: {
1935
- 'train': '',
1936
- 'result': [
1937
- x_verb,
1938
- x_snake_self_damage,
1939
- {},
1940
- ],
1941
- 'desc': [
1942
- 'enable/disable snake/player dying upon touching its own body',
1943
- ]
1944
- },
1945
- }
1946
- train_generated |= xxx
1947
-
1948
-
1949
- def test_obstacles_or_enemies_destroyable():
1950
- global train_generated
1951
- ###########################################
1952
- # self_dammage
1953
- ###########################################
1954
- for x_obj, obj in [
1955
- (x_obstacle, 'obstacles'),
1956
- (x_enemy, 'enemies'),
1957
- ]:
1958
- for x_verb, s in [
1959
- (x_enable, f"{obj} are destroyable"),
1960
- (x_enable, f"{obj} can be destroied by weapons"),
1961
- (x_enable, f"enable {obj} to be destroyable"),
1962
- (x_disable, f"{obj} are not destroyable"),
1963
- (x_disable, f"{obj} can not be destroied by weapons"),
1964
- (x_disable, f"disable {obj} to be destroyable"),
1965
- ]:
1966
- xxx = {
1967
- s: {
1968
- 'train': '',
1969
- 'result': [
1970
- x_verb,
1971
- x_obj,
1972
- {x_args:'destroyable'},
1973
- ],
1974
- 'desc': [
1975
- 'enable/disable obstacles/enemies destroyable',
1976
- ]
1977
- },
1978
- }
1979
- train_generated |= xxx
1980
-
1981
-
1982
- def test_respawn():
1983
- global train_generated
1984
- ###########################################
1985
- # respawn
1986
- ###########################################
1987
- for x_obj, obj in [
1988
- (x_enemy, 'monsters'),
1989
- (x_enemy, 'enemies'),
1990
- ]:
1991
- for x_verb, s in [
1992
- (x_enable, f"enable {obj} respawn"),
1993
- (x_disable, f"disable {obj} respawn"),
1994
- ]:
1995
- xxx = {
1996
- s: {
1997
- 'train': '',
1998
- 'result': [
1999
- x_verb,
2000
- x_enemy_espawn,
2001
- {}
2002
- ],
2003
- 'desc': [
2004
- 'enable/disable monster/enemies respawn',
2005
- ]
2006
- },
2007
- }
2008
- train_generated |= xxx
2009
-
2010
- for x_obj, obj in [
2011
- (x_enemy, 'monsters'),
2012
- (x_enemy, 'enemies'),
2013
- ]:
2014
- for s in [
2015
- f"{obj} respawn righ after death",
2016
- f"enable {obj} respawn righ after death",
2017
- ]:
2018
- xxx = {
2019
- s: {
2020
- 'train': '',
2021
- 'result': [
2022
- x_enemy_espawn,
2023
- {x_args:'immediately'}
2024
- ],
2025
- 'desc': [
2026
- 'monster/enemies respawn',
2027
- ]
2028
- },
2029
- }
2030
- train_generated |= xxx
2031
-
2032
- for x_obj, obj in [
2033
- (x_enemy, 'monsters'),
2034
- (x_enemy, 'enemies'),
2035
- ]:
2036
- for s in [
2037
- f"{obj} respawn after they are all dead",
2038
- f"enable {obj} respawn after they are all dead",
2039
- f"enable {obj} respawn after all dead",
2040
- ]:
2041
- xxx = {
2042
- s: {
2043
- 'train': '',
2044
- 'result': [
2045
- x_enemy_espawn,
2046
- {x_args:'all dead'}
2047
- ],
2048
- 'desc': [
2049
- 'monster/enemies respawn',
2050
- ]
2051
- },
2052
- }
2053
- train_generated |= xxx
2054
-
2055
- for x_obj, obj in [
2056
- (x_enemy, 'monsters'),
2057
- (x_enemy, 'enemies'),
2058
- ]:
2059
- for _k in range(20):
2060
- k = _k + 1
2061
- for s in [
2062
- f"{obj} respawn after {k} death",
2063
- ]:
2064
- xxx = {
2065
- s: {
2066
- 'train': '',
2067
- 'result': [
2068
- x_enemy_espawn,
2069
- {x_quantity:k}
2070
- ],
2071
- 'desc': [
2072
- 'monster/enemies respawn',
2073
- ]
2074
- },
2075
- }
2076
- train_generated |= xxx
2077
-
2078
-
2079
- def test_final():
2080
- ROOT = Path(__file__).parent.parent.parent.parent
2081
- PATH_json = Path(__file__).parent.parent
2082
- PATH_emb = ROOT/"data"/"snake"/"emb"
2083
- file_name = "game_train2.json"
2084
-
2085
- with open(PATH_json/file_name, 'w') as f:
2086
- json.dump(train_generated, f, indent=4)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
games/snake/train/run.sh DELETED
@@ -1,5 +0,0 @@
1
- cp ../game_train.json ../game_train2.json
2
- pytest gen_train.py -s
3
- pytest gen_emb.py -s
4
- cp ../game_train2.json ../game_train.json
5
-