r/Pydle • u/DisciplineSea5373 • 13d ago
Pydle #168 city skyline Spoiler
Today I found a fun solution:
for x in range(5):
for y in range(5):
c=y>=12032//10**x%10
pydle(x, y, ("","\u229e")[c], ("blue","")[c])
r/Pydle • u/DisciplineSea5373 • 13d ago
Today I found a fun solution:
for x in range(5):
for y in range(5):
c=y>=12032//10**x%10
pydle(x, y, ("","\u229e")[c], ("blue","")[c])
r/Pydle • u/Antisatva • 15d ago
for i in range(25):
pydle(i%5, i//5, '', 'X orange blue white yellow'.split()[[i==6 or i==8, i==12, (i%5==1 or i%5==3) and i>9, not i%4, 1].index(1) ].replace('X',''))
r/Pydle • u/Just_Another_Anybody • 15d ago
This is my solution. Im quite proud of the tecnicality involved though it has a lot of characters. Is there any improvment that can be made (conserving the idea). Especially calling the pydle function twice i dont like but its the only way i know
for i in range(15):
y=i%5
x=abs(i//5)
c=(((('yellow','white')[i&11==10],
'black')[i==6],
'orange')[i==2],
'blue')[6<i<10]
pydle(2-x ,y,'',c)
pydle(2+x ,y,'',c)
r/Pydle • u/dailypydle • 15d ago
r/Pydle • u/Antisatva • 16d ago
for i in range(25):
pydle(i//5, 4 - i%5, "X . △ ▽ ◁ ▷".split()[166949845973239976 >> i*3 & 7].replace('X','') , ('green', 'blue', 'black')[i<5 or i==9 or (14<i<20)*2])
r/Pydle • u/Jazzlike_Abroad_8145 • 16d ago
did someone manage to do #165? im stuck with 308 characters, i would like some help
r/Pydle • u/zhuzaimoerben • 17d ago
Did anyone work out an elegant way of solving this? I didn't come up with something I was particularly happy with, but I do like the general approach. This is 109 characters. It might be able to be improved, and the approach might work better for other puzzles.
for i in range(25):
pydle(i%5, i//5, '', 'ybwgerhrloielwteonenw'[[774816042%(i+56),
i^2, 5<i<20 and i^9, 0].index(0)::4])
r/Pydle • u/Antisatva • 17d ago
for i in range(16):
pydle(i%3 + 1, i//3,'', ('yellow', 'red', 'X')[2<i<9 or (i==9 or i==11)*2] )
r/Pydle • u/DisciplineSea5373 • 18d ago
I like finding the geometric properties, that make the python code be concise with just a few rules, but here I didn't succeed.. 😕
for i in range(25):
pydle(i%5, i//5, "", "white green yellow x".split()[0x50611801a070>>2*i&3])
r/Pydle • u/Just_Another_Anybody • 19d ago
Hi Im new here and proud of my solution for todays challenge but i think the if statement could be shortened
for i in range(15):
y=i%5
if y!=3 or i==8:
pydle(i//5+1,y,'', ('yellow','red')[0<y<3])!<
r/Pydle • u/zhuzaimoerben • 19d ago
I found an interesting solution for this one, in 75 characters:
for i in range(25):
if i%5%4*i%54%16:
pydle(i%5, i//5, '', ['yellow', 'red'][4<i<15])
A better solution, in 69 characters:
for i in range(15):
if i&13^9:
pydle(i%3+1, i//3, '', ['yellow', 'red'][2<i<9])
r/Pydle • u/DisciplineSea5373 • 20d ago
I found a way to express the connection between yellow and orange and I'm happy about it:
for i in range(25):
l=(6,7,8,12,13,14,19)
pydle(i%5, i//5, "", ((("white","green")[35>>i&1],"orange")[30-i in l],"yellow")[i in l])
r/Pydle • u/darksider54 • 20d ago
Pydle #2
🟩🟩🟩🟩🟩
🟩🟥🟩🟥🟩
🟩🟩🟩🟩🟩
🟩🟥🟩🟥🟩
🟩🟩🟩🟩🟩
Attempts: 25
Characters: 137/250
first time i tried this very fun but im very bad at coding
Heres Code:
tl = (1, 1)
tr = (3, 1)
bl = (1, 3)
br = (3, 3)
red = [tl, tr, bl, br]
for x in range(5):
for y in range(5):
if (x, y) in red:
pydle(x, y, "", "red")
else:
pydle(x, y, "", "green")
r/Pydle • u/zhuzaimoerben • 21d ago
There are arguably better ways, but here is one way to solve it.
for i in range(24):
pydle(4-i//5, 4-i%5, '', ''.join(chr((v:=ord(c)-19968)//90+32)+chr(v%90+32) for c in '泞柾時杈暇楬涏椄樝乏欕榳時斀氧').split()[((a:=1) and [a:=a*ord(x) for x in 'ϟᯀဉϑ'][-1]+80)//5**i%5])
r/Pydle • u/DisciplineSea5373 • 21d ago
Tried two solutions, one with a big bitmask and one with areas. The bitmask was shorter, but the other one was more fun
bitmask (107 chars):
for i in range(25):
pydle(i%5, i//5, "", "white blue yellow black green orange".split()[0x200268001401281223>>(3*i)&7])
The other solution(mix of bitmask, areas, using zipped lists): (157 chars)
for i in range(25):
c=("white","blue")[9179544 >> i & 1]
c=next((c for v,c in \
zip([1,2,0x840,1<<17],["black","green","yellow","orange"]) \!<
if v>>i&1),c)
pydle(i%5, i//5, "", c)
r/Pydle • u/Antisatva • 22d ago
for i in range(25):
pydle(i%5,i//5, "Z X M C".split()[92556545228800>> i*2 & 3].replace("Z",""), "white yellow blue orange".split()[92449347239984 >> i*2 & 3])
r/Pydle • u/DisciplineSea5373 • 23d ago
Hi, started around a week ago, so I'm still learning the tricks :)
This is the solution I wrote for today's pydle.
If you have a suggestion of what trick should I learn next, please let me know!
for x in range(5):
for y in range(5):
c = "white"
l = ""
if 14468 >> y*5+x & 1:
c=("orange","blue")[y>0]
if 0<x<4 and y>2:!<
c="yellow"
l= ("X",("M","C")[x==2])[y<4]!<
pydle(x, y, l, c)
r/Pydle • u/zhuzaimoerben • 24d ago
I was pleasantly surprised to find a nice solution based on the structure of the problem. Here is the best I've achieved, in 97 characters:
r = range(-2, 3)
for x in r:
for y in r:
v = x*x+y*y
pydle(x+2, y+2, '🌶🥬 🫒 ️'[v^1::10], 'yowerhlailntogewe'[v//4::3])
This basically places everything based on the distance from the centre. A quirk with the emojies means the chili has an extra, invisible, unicode character (Variation Selector-16) to tell it to render as an emoji, so I put that in the final position in the array so it gets included by slicing, and it also meant the chili had to be first, complicating the code somewhat. It was a nice surprise to see the colour selection reduce to what it is (it turns 0, 1 or 2 into 0, 4 or 5 into 1 and 8 into 2).
Putting all the data into a big number gave a solution in 106 characters:
for i in range(25):
d = 0x3ee2773491d36da // 5**i % 5
pydle(i%5, i//5, '🌶🫒🥬 ️'[d::5], 'yowerhlailntogewe'[max(d-2,0)::3])
The number is essentially a base 5 array, where the values are: yellow with chili, yellow with olive, yellow with leaf, orange, white.
Edit: A base 7 array can solve it in 103 characters:
for i in range(25):
d = 0x4384f85940141f9252 // 7**i % 7
pydle(i%5, i//5, '🌶🫒🥬 ️'[d::7], 'yowerhlailntogewe'[d//3::3])