faces=" 12 3 56 4 "# positions des faces du d6 dans mon input, mis en lignesmax=cubesize-1forrowinrange(totalsize):forcolinrange(totalsize):c=board2[row][col]ifc==" ":continuecolor={".":"Blue","#":"Gray","<":"White",">":"White","v":"White","^":"White"}[c]face=faces[(col//cubesize)+(row//cubesize)*4]a,b=col%cubesize,row%cubesizeifface=="1":x,y,z,X,Y,Z=a,b,smax+1,1,1,.01elifface=="2":x,y,z,X,Y,Z=smax+1,b,smax-a,.01,1,1elifface=="3":x,y,z,X,Y,Z=a,0,smax-b,1,.01,1elifface=="4":x,y,z,X,Y,Z=b,smax+1,smax-a,1,.01,1elifface=="5":x,y,z,X,Y,Z=0,smax-b,smax-a,.01,1,1elifface=="6":x,y,z,X,Y,Z=a,smax-b,0,1,1,.01print(f"color(\"{color}\") translate([{x},{y},{z}]) cube([{X},{Y},{Z}]);")
Le switch de 1 à 6 applique les rotations, et déplacements en 3D pour poser la surface de la face du cube sur la face du cube 3D, j'ai dû inverser des trucs à des endroits.
C'est sous optimisé pour de l'openScad, mais j'ai fait ça rapidement, on génère tout de même 15000 objets (50x50x6), ça le perturbe pas beaucoup cela dit !
[^] # Re: Mode triche on
Posté par Yth (Mastodon) . En réponse au message Avent du Code, jour 22. Évalué à 4.
Le switch de 1 à 6 applique les rotations, et déplacements en 3D pour poser la surface de la face du cube sur la face du cube 3D, j'ai dû inverser des trucs à des endroits.
C'est sous optimisé pour de l'openScad, mais j'ai fait ça rapidement, on génère tout de même 15000 objets (50x50x6), ça le perturbe pas beaucoup cela dit !
Le fichier scad est xzippé ici : aoc-2022-22-01.scad.xz
Et OpenScad se trouve dans toutes les bonnes crémeries de logiciels libres ;)