happyha.py
Created by
schraf
Created on
October 29, 2021
9.71 KB
from kandinsky import fill_rect
img = b " [3d(3d#@#	d ' M#$#A#(#8#$ ' H#&#A#)#9#% ' E#&#B#*#9#& ' A#&#C#*#<#% ' .d#3#%#D#)#>#d&Rd#1#&#D#)#;b#$#d&Qd#0#&#E#(#?d#$#�d&P#$#.#&#F#)#=d#$d#$#&#/#$&Od#/#&#B#$#%# ' #?d#$d#$#&#/#$&Kc#$#.#&#Bc#$d# ' #Bb#$#&#.d&N#$#-#&#?d#%d#$d#$#&#,d#:d#$#&#-#$&Jc#$#.#%#Ad#$c#$d#&#*#$#:d#$c#&#-#%&K#%#,#&#C# ' #$#%# ' #&#<d#&#&#*c#%&J#%#,#&#E#$#$# ' #$#%#Bd#%#%#)d#$#%&K#$#,#%#G#$#%#(#Dbd#&#)d#$#$&J#%#+#&#;#,#%#*#(#+#8d#%#%#(d#$#&&I#%#+#%#:#9#$#2#5bd#&#(d#$#%&I#%#*##O#5d#$#%#)c#%&I#%#*##R#5c#&#(c#%&H#%#+#%#6#T#2d#%#&# ' d#$#%&I#$#+#%#6#U#3d#$#%#(c#&&G#%#*##W#1bd#%# ' d#$#%&H#%#*#%#5$##4#&# ' d#$#%&.d#8c#%#)##0#$#:b#/#1bd#$#*#%#9d%J#*#6#%#*#%#5#.c#$#9b#0#3#&#)##+%C#.#2c#%#(c#%#3#0#$c#8c#$#0#0bd#%#)#%#5#-%B#/#3#&# ' c#%#4#.#)#5#%d#%#.#2c#%#)##(d#(%@#&#(# ' #0c#%#)#%#4#.# ' c#6# ' c#.#0d#$#&#)#%#3#&#)#&%<d#$#%#$d#$d#%#%#3#%#)#%#3#.#&d##&b#$#.#0d#$#%#)#%#3#&ad#$#%%>#%#)d#$#�c#%# ' c#$#3#.#&#%b#2#&#%#$c#-#1c#%#(##%#)c#&%<c#%#*d#$#%#0c#%#(##-#%#&c#$#)d#)#&#&b#-#1c#%#)#%#2#%#,#&%:d#$#%#+c#%#2#%# ' c#$#2c#>b#>#0d#$#%#(##&#)bd#$%<c#%#-#&#/c#&# ' ##?b#>#1c#%#(#%#2#%#-#&%:d#$#%#+d#$#$#2#&#&c#$#2c#=#$c#>#0d#$#%#%c##&#*c#&%?#%#,##%#&c#%#2#?b#>#1c#%#%d#$#%#2#%#-#%%=c#%#,#%#1c#&#&#%#2c$ ' #2#&#&#c#%#*c#&%@#%#+##%# ' #%#2$(#3#%# ' #%#3#&#+#%%?c#&#)#c#&#$c#%#1c#+#%c#@c#%#,#0c#%#%c#%#3c#%#*#&%?d#$#&#)#%#+d#+#%#$d#$#$#1c#,#$d# ' #9#$ad#,#0d#$#%#$c#%#+d#+#%#)#&%Ac#&#(#%#+#%# ' d#$#&#%#%#2#-#%bd#(#/#&c#&c#,#2#&#&#%#+#%#(c#&# ' #&%F#&#%#&#+#%#+#&#%#$#3#-#&d#$# ' aab# ' #)#-#3#$#%#&#+#%#+#%#&# ' %Cd#$# ' #$#%#6d#$#%#%#%#0c#-#%d#$d#$d#(d#%d#$a#)#.#0c#%#%#d#$#&#$#&%Fd#%#*#:#%#%#$#3#.#$d#$d#3d#,#-#3#$#%#%#7d#$#+%Gd#$#)#8d#$#&#$#$#1c#.#&d#3d#*#/#2c#$d#	c#)%Jd#%# ' #=#%#$d#1d#$#0#.#&#.#/#4d#$#%#=# ' %M#*#<#&c#2c#2#+#&#,#1#4#$d#%#;#+%K#.#;# ' #1d#$#4#(# ' #(#4#4# ' #<#-%G#(#%#(#8d#%#%#2c#9d# ' d#8#5#%#;#(#&# ' %F#&bd#$c#(#;d#6#S#6#$#:#)bd#$#(%A#(c#$b#$c#)#3c#$#5bd#Q#9d#4c#)#)d#%#(%=#)#$d# ' b#$c#,ac# ' c#9c#P#:#(ac#.#-d#%#(%8#)#&d# ' d#%d#$d#%#2#=d#$c#K#A#2# ' d#-d#%#)%5#(bd#,d#$d#$d#(d#$b#Fbd#Gc#Gd#$d#*d#2d#&#(%0#)#$d#3d#$d#%d#Nd#$c#.c#$d#$c#-c$3d#%#)%,#)c#$d#8d#+d#Gd#0d#$d#$d#$d# ' d#%d#$b$2d#(#(% ' #($=aad#$d#$d#$d#$abd#$d$7b#%#)%$# ' $Sd#%d# ' d$=d# ' # ' $W# ' &Gd# ' # ' $T#&&Ld#&#&$Q#&#Ld&&d#$#&$P#%#N#$c$V#$$ ' #%$M#%#Q#)c$Kc#%$*#%$L#%#R#)bd#=#%$$#+#0#$c#Q#%$J#$#Qbd##$#.#&$ ' #*#1#*#L#%$H#%#T# ' #/#&#-c#(#;c#%c#5# ' #&#(#2#$#R#%$<#&#(#$#F#$#.c# ' #(#,#+#%d#*#8#$#&#�#%#&#&#%#(#.c#$#/d#F#$#)#&$1#&#(#$#Gd#1#&#,#(#1#(#-#.#(# ' d#/#(# ' #$#(#/#$#/d#G#$#(#&$0# ' #(d#Hd#/c#&#-# ' #.c#)#0#+#)#&#(#)#&d#$#&#$c# ' #-#$#1d#G#$# ' # ' $1#&# ' #$#H#$#.c#&#+c# ' #1c# ' #2#(# ' c# ' #(#(# ' d#$#&c#$# ' #-d#1d#Hd#(#&$0d#$d#(d#G#%#0# ' #+c#d#$# ' #,ad# ' #*# ' #&d#$#&#)c#&#$c#(#*#$#.d#$#%#G#$#&d$>d#G#�#&#+d#$#�#$#$#c#&#(d#$#&# ' c# ' #(c# ' #&#(#)d#2c#$#Gd$B#$#1d#5#$#%d#.c#&#,# ' #0#$b# ' #-bd# ' #)#(#(# ' #*# ' #%d#$#(# ' d#0d#$d#%#$#4d#1#$$Cd#2#$#1#%c#$d#.c#&#.#�bd# ' #2#&#+#&#)# ' #*#&#&d#$#(#%#$#0d#$d#&#%#1#$#2d$Cd#3#$#-#%#)d#/# ' #,c#%#0d#%c#&#/c# ' #(c# ' # ' c#&#)c#&# ' c#,#3#$#(#%#-#$#4d$Cd#5#&b# ' c#$d#&d#0#&#-# ' #/d#%c# ' #.d#$#&#*# ' #*#&#)# ' #+#)#5d#*# ' a#%#5d$Cd#5#(c#-#%#.c#&#,c#%#/#$#$c#(#/c#&#)# ' #)# ' #*#&#)c#)#5#%#-c#(#6d$;#)c#6b#1c#$#-c#&#-# ' #.#$#(#&#/c#&#*#&#+#&#)#&#-# ' #5c#$#1#c#)$1#-#5#$d#$#-#%#%d#.# ' #,# ' #/d#&c#(#-d#$#&#(# ' #*# ' #)#&#+c#(#5d#$#%#+c#$#$d#6#-$.#&#>d#%#$#*#%#&d#/# ' # ' #+#.# ' c#$# ' #.c#&#(#&#-#&# ' #�#d#&#&#*#$#$d#>#&$+# ' #>#$#&#+#)d#-c#+#(#&#.d#&#+#-c#*d#&#-#(b#&#.bd##$#)#+#%#$#?#&$*#%#Ad# ' #%#.d#-c#&#+c#&#.d#)#)#/#&#%d#2# ' c#%d#1c#d#.#%# ' d#A#%$(#&#Ad#&#$d#$#,#$#.# ' #-#&#-#$# ' d#$#(#,c# ' #6#	# ' #4#$#-#$c#%b#=d#%#%$(#%#Bd# ' d#$#$#*#&#.#&#+d#$#%#-#$#(d#$# ' #/# ' #5# ' #9##&#*#$#$d# ' d#?d#$#%$&#%#B#$#&#$#%#$#%c#$#%d#,c#&#,c#%#,#$#*c#(#+c# ' #3c# ' #8c#d#$#%#%#%#&d# ' d#B#%$&#%#Cd# ' d#&#)#&d#,c#&#,c#%#,#$#-# ' #.## ' #9#d#$d#&#)#&d# ' d#@d#$#%$$#%#Cd# ' d# ' #&#)d#-# ' #-#&#,d#,c# ' #+c# ' #3c# ' #8c##$#)#%# ' d# ' d#Ac#%$$#%#C#$#&#$#&d#$#$#(d#.#&#.#%#+#$#,d#$# ' #*d#$## ' #9#d#(d#$#$#&#$#&#$#C#%#X#&#Cd# ' d# ' d#%#%d#&#,#(#,c#%#+#$#-c# ' #+#(#3c# ' #8c##&d#%#%d# ' d# ' d#Ac#&$##%#Cd# ' d# ' #$#%# ' d#$#-#&#.#%#*#%#-c#(#,## ' #7c#d#$# ' #&d# ' d# ' d#C#%#X#%#C#$# ' d# ' d# ' #$#&d#+#(#,c#%#&c# ' #,d#$# ' #*c# ' #4c#	# ' #3d#%#%# ' d# ' d# ' d#Ac#%#X#&#Cd# ' d# ' d# ' c#$#$d#,# ' #.#%# ' c#&#-d#$# ' #+#(#3c# ' #8# ' #3c#$#$#$#&d# ' #$#&#$#B#&#W#%#B#$# ' d# ' d# ' d#&#%#+c#&#,c#%#,#%#,c# ' #)c# ' #5#(#7c##&#&d#&#$# ' d# ' d#@c#%#X#%#Cd#&#$#&#$#$c#%b#%#,# ' #.#%#.d#,c#(#*#(#5# ' #8#(#2#$ab#%#%b#$c#$#$#B#%#V#&#>#<bd#,c#&#-# ' #9#*# ' c#(#4#(#7#(#2c#&d#;#=#&#W#%#@d#$d#E# ' #*#,#8#+#&#)#4#)#6#)#Hd#$d#C#%#V#&#?d#Gc# ' #)d#?# ' bd#%d#$#+#2#*#1#/#<ac#$d#$d#Cc#%#W#%#=d#%d#F#)#,d#;#$#$d#,#-#/#-#3bd#(#Ad#(b#B#&#U#%$.# ' b#%#Gd#$d#(#&c#$d#$c#%#*#%abd#d# ' #$$2c#%#V#%$.d#%b#Ld#$d#,d#$d#)d#1d#)d$N#%#T#&$0d#&d#Ub#=d#$d$Rc#%#U#%#&d$(d#%b$Cd$S#%#T#%# ' #& ' Gc#&#S#%#)#)c ' C#%#R#&# ' d#$#)bd#=#%%Oc#$#3c#%#Ec#%#R#%#)d#$##$#/#&%4d#-#%ac#&d#&#%#$ac#&d# ' #H#%#P#&#(c#(#/#&#-c#(#-#%#8#%#?#,#Q#&c#+#)#*#$#&#*#*#$#Fc#%#P#%#-#&#)#,#+#-#/#*d# ' #,#*b#%#0#%#)# ' #Q#*d#$d#)#+d# ' #(#&b#%d#*c#$#=#%#N#%#*c#(#(d#%#(#0#)#1#*#.d#&#*#1#%#-# ' #P#(c#$c# ' #,d# ' #(#,d#$#,#+ad#(#%d#$#&#L#&#.#&#-# ' #.d#$#(#1#*#0d#$#)#2#%#.# ' #Ld#%#&# ' c#(#+d#(# ' #(d#%d#)#)#,# ' #-#&#I#&#-c# ' #+c# ' #,d#$#%d# ' #.d#$#(#0d#$#)#1#&#,d#$#(#Lc#&#%b#$# ' #,d#&c# ' #,d# ' c#)#.#%#+d#$#&#G# ' #-d#$#&#-# ' #-d#%d#$#&#/c#(#1d#$#)#0#�#(#1d#>#%#(c#(#2# ' #2c#*#-#$#1# ' #>#*#1c#&#+c# ' #.c#$d# ' #0#(#3c#(#0#&#/d#$# ' #0d#>#%#(d#$# ' #1c# ' #0d#$c#*#*c#$#2#*#=b#3c#&#.#�d#%# ' #0#(#2d#$# ' #0#�c#(#-#%#?d#*d#$# ' #3#c#$d#(#,d#/d# ' b#=d#8# ' #,c#&#/#$b# ' #.c# ' #4c# ' #/##(#+#&#?#$#+c#c# ' #1d#$#$#$#)#*#$$5#&#,c#&#/#$#&#&#.c# ' #4c# ' #/# ' #0d#$#(#(#(#?d#,c# ' #3#d#$#$#$#)#*d$3c#&#-#&#/#$#$c#(#.#(#3c#(#.# ' #2c#(#$#,#>#$#+c# ' #2c#d#$c#)#)d$3c#&#+d#$#&#/d# ' # ' #/# ' #6# ' #/#c#(#%d#$#)#-d#1d#/# ' #1c#&# ' d#/d# ' #)#(d$4# ' #*bd#%#/d#&d#$#&#-c# ' #3c# ' #.#(#3#)#)#(#,#$#0#$#,bd#&#&d#.#&# ' d#/d#$bd#(#(d$5#&#,#(#.#$#&c# ' #.# ' #6# ' #.# ' #4#(# ' d#$# ' #+#&#/#$#/# ' #&d#.# ' #&d#/d#&c#)# ' d$3c# ' #&c#*#.#$d#$#&# ' #,c#c#&#.c#d#$#(#(c# ' #*#(#.d#.c#,#,c#,#/d# ' c#)#%d$4c#*c# ' # ' #-d#&#+#.# ' #4c# ' #+d#$# ' #2d#$# ' #+# ' #*# ' #-#$#1#&#$#%#/#&b#$#/d# ' d#$#)#$#$$4#(#*c#&#.d#(#*#*c# ' #,d#+# ' #,bd# ' #0d#$#(#)c# ' #(#$d# ' #,d#0c#&#&d#,c# ' #%d#0d#(c#*c#R#%#9#&#+d#$#&#,#$#*#(#-# ' #+d#,# ' #+d#$#(#1d#$# ' #,# ' # ' d#%# ' #+d#0c#&#&d#/#&#&d#/d#+#,#9#%#7#%#7c#&#,c#%#-d#)d#$# ' #+c#&#,d#*c#&#,bd# ' #2#(#*c#(#&d#$c# ' #*d#2# ' #&d#-c#&#&d#/d#)d#$#+#9#$#9#$#7c#&#,c#&#,d#*d#$# ' #,# ' #,d#)c#&#,#$#$# ' #3# ' #-#(#%d# ' # ' #)d#3# ' #%d#-c#&#&d#/d#)bd#*#9#%#P# ' #-#&#,#$#+c# ' #*c#&#-d#*# ' #-bd# ' #1#(#+d#$# ' #$d#%c#(#(d#2c##d#,c#)$5#&#.#%#,#$#-# ' #,#&#-d#+#&#-d#%# ' #2#&#-c#(c#)# ' # ' d#4#c#d#,c#)$3c#&#,c#%#,d#,c#(#)c#&#-#$#(c#&#,#%b## ' #-c#*#%bd#(#%d#3d#$#%#4#d#-c# ' $5# ' #.#%#+#$#/# ' #)c#&#-#$#(c#&#-#$b# ' #0#&#.d#$#(#(c#)d#$#5# ' #1c#d#-d#$# ' $3c#&#,c#%#*#%#-c# ' #*# ' #,#&#(# ' #,#%#&# ' #.#&#.bd#(# ' d#$#+#5c#%#4#d#.c#&$5# ' #.#%#(c#%#.c# ' #*# ' #*# ' #(#(#*# ' c#$# ' #-#%#1c# ' #)d#$#*#5c#d#$#%#4d#2#%$3c#&#,c#%#&#)#,d#$#(#(#+b#*# ' #*a#)#%d#$#&#*#%#2d#$#&#+c#)#5c##&#-d#(d#/d#$#$$5# ' #.#&#+#%#+d#$#(#%#)ad#$a# ' #(aabd#(d#%# ' b#d#$#%#+d#$#(#8#&#,d#)#&#,d#(d#3d$##&#/c#&#.#%#.d#,c#(#$d#%d#6d#Eb#9c#$#-c#(#6c#%#-d# ' c#%#-d#(d#/d#6#&#G# ' #-#(#-#c#)$Gd#-d#$#c#&#+#$# ' c#&#,d#(d#A# ' #J# ' #+c#&#)c#*#6d#$#+$Bb#-bd#%#9# ' #*#%#&c#&#+#%#(d#?# ' #N# ' #*#(#(a#(d#5#(ad$Qd#$#$#5bd#(c#$c#&a#)#&c#&#(d#?#&#Q#&# ' c#(#E#$c%&d#$d#5ab#-#%ab#-#(#$#=#&#Qd#$#&#%#,#Gac$Wd#;d#+a#(b#+b#)#%#;# ' #Rd#$#&c#Od%Fd#$b#+b#%d#3#	# ' #Tbd#&#$ac&<a#,d#(b#(c# ' #8# ' #Sd#$c#& ' -ad#%#6#
#$#& ' 5#$#4#&#Wbd#&$)#$d#$d#$#%#$d#$#(#$#(#%# ' #$# ' #$#,#%#)# ' #,#*#$# ' c# ' #$d#$c#(#$# ' #$d# ' $ ' c#&$$d#$#&$(#+#$#)#&#$#&#*#%#$#%#%#+#)#&#*#)#+#$#*#%#*# ' #%#&#+$(#&$#bd#&$+#$#(#$#%#%#%#$#%#%#&d#%#$#%#$#+#%#&#%#%#$#$c#$#,#$# ' #%#%#%#$#%#,# ' #(#%$*#&$&d#$#%$+#%# ' #$#&#$#%#$#%#%#&d#%#%d#%#+#%# ' #$#%#%#&#$# ' bd#%# ' #$c#$#%#$#$#,#$d#$#)#$$+#%$ ' c#%$)c#$# ' #%#&#$#%#$#$#%#)c#(#*c#$#(#%#$#$#&#%#)c#$#$d#$#%#%#%#$#)# ' #$#$#$#&c#$$+#&$)#%$+#%# ' #$b#%#%#$#%#$#,# ' #*c#$#)#$#$#%b#$#(d#%#%# ' #&d#&#$#)#&#$#%#$# ' #%$+#%$ ' c#%$+#$#&c#)#%#%#$#%#(c#*#(d#$#%# ' #$b#*#)c#%# ' #*#$c#$#*#&d#%# ' #$$+#%$*#%$+#%# ' #%d#%#&#$#%#%#&d#&#$#$#%#(c#%# ' #$b#%d#%#-#%# ' #%d#%#$c#$#*#+#&#%$*#&$ ' c#%$+#$# ' #%#$#%#$c#$#%#&d#&d#%#&#$# ' d#%#&d#%#%#%b#%#*c#$# ' #%#$#%#&#&bd#$#$#&#%#&#$$*c#$$*#%$+#%# ' #$#&#$b#$c#%#)#$#%b#&# ' d#$#)#&#%#%#%#+#%# ' #%#$#&#$#*d#%# ' #%#%#%$+#%$(#&$3d# ' d#%b#%d#%d# ' d#0d#$d#$b# ' d#$b#.d#)d#&d# ' d#$d#$d$=c#%$)#%$Ed#*d#&d#+d#$d#1d#-d#/d$J#%$(#%$Ed#$d#9d#$d%:d#$#%$ ' #% ' Gc#%$&#% ' J#%$&#% ' K#%#Xc#%#M#&&%#&#M#$$$#$#&ac#C#&&$# ' #Dbd#$c#$#$#W#6#=# ' #6#(%&#(#6# ' #=#6#V#%#.#*c#9##+%##+#5#&#:#*c#,c#$#Td#5#*#5d#$d#6#,$X#-#2d#$d#8#*c$Ad#(#)#J#&#%#&#Mb#1#$#N#&#$c#d#8#*#&a$:d#$a#%#)#G#%#%d#$#&#K# ' #/#&#L#&#$d#$#&#F#)#&b$Gb#&#)#D#%#&d#$#%#K# ' #/# ' #K#%#%d#%#%#E#(bd$Jd#&b#%#(#B#%#(c#%#Ic# ' #.#(#J#&# ' c#%#B#(%#d# ' #(#@#%#)#%#I#)#/#)#I#%#)#%#@#(ad$Sd#$b#%#)#<c#%# ' c#%#G#+#.#+#G#&#(#&#>#(%*b#&#(#<#&#(#%#H#+#-#+#H#%#(#%#=#)#%d%+d#%#)#8d#$#%# ' #&#Ed#$#,#+#+#Gc#%# ' #&#:#)#&d%*d#&d#&#(#7d#$#&#%#&#Fd#%d#%# ' #)#(#M#&#&#%#:#)%6b#$#)#8#&#$#&#Id#$bd# ' # ' # ' #Mc#&#$##)%<d#%#)#4d#%#*#Oc# ' #%#(#P#*#8#)%?d#%#)#4c#)#=#$#1d#$c# ' d# ' #6d#;c#)#6#)%Cd#&#*#5# ' #;#$#4d#$c#+#9#%#:#(#4#)c%Ed#&#+#/#,#4# ' #8d#$#*#<##+#0#+%Jb#&#*c#*#)d#(#.#(#;d#$#)#?#&c#-#(d#)#+#*c%La#%#7#c#>c#)#@#6c#$#8%Sb#c#$d#%c#-c#&d#>#+#<d#(c#,c#&d#$c#2#$d%Rd#%b#%c#+c#(b#&d#.d#?#-#<a# ' d#$d#-d#$c#-c#$d&&d#9a#K#(#$# ' #?a#$d#/b#*d#%d#$d#$d&#d#$aad#-d#O# ' #$c#(#Vac#$b#$d&0d#%d$$#(#$d#%# ' $#d#$d ' 9#+# ' bd# ' d#%(8#+#+c#+ ' Dd#J#*#+d#$#*#Jd&Q#%#I#*#,d#$#*#I#%&O#%#Hc#)#-c#(#J#%&Rd#L# ' #-c# ' #Md ' Dbd#&#.# ' #Kd ' Ic#%#1#%#Kd ' Jd#2d~K "
w = 320
COUL = [( 54 , 54 , 54 ),( 254 , 183 , 52 )]
def taille ( n ):
return 54 * ( n [ 0 ] - 35 ) + n [ 1 ] - 34
def remplir ( x , y , t , c ):
while t > 0 :
if x == w :
x = 0
y += 1
d = min ( t , w - x )
fill_rect ( x , y , d , 1 , c )
x += d
t -= d
return x , y
def aff ():
i = 0
x , y , c = 0 , 0 , 1
while i < len ( img ):
v = img [ i ]
if 97 <= v <= 100 :
for _ in range ([ 5 , 3 , 2 , 1 ][ v - 97 ]):
x , y = remplir ( x , y , 1 , COUL [ c ])
c = 1 - c
i += 1
else :
t = taille ( img [ i : i + 2 ])
i += 2
x , y = remplir ( x , y , t , COUL [ c ])
c = 1 - c
fill_rect ( 0 , 0 , 320 , 222 ,( 0 , 0 , 0 ))
aff ()