carte2france.py

Created by julien-bernon

Created on July 21, 2022

5.74 KB


from kandinsky import *
def ascii_to_nb(ch):
    nb=0
    puiss=0
    for c in ch:
        nb+=(ord(c)-48) << puiss
        puiss+=6
    return nb

def deRLE2_kandin(carte_compressee,width,height):
    couleur=[[255]*3,[0]*3]
    fill_rect(0,0,320,224,couleur[0])
    y=0
    while carte_compressee>0:
        courante=1 & carte_compressee
        carte_compressee >>= 1
        compteur=0
        while compteur<width:
            valeur=255 & carte_compressee
            carte_compressee >>=8
            for i in range(compteur,compteur+valeur):
                fill_rect(i,y,1,1,couleur[courante])
            courante=(not courante)*1
            compteur+=valeur
        y+=1
    return True
carte = 'R]05UZ228@R4E1528AP>022T@09bc1F@0428AM:@32P@09Zc0NX028`@M6`36HP03L`Nj<0940Q28H0mdI0B<`14L@0jYc0XH142@?M6@72P@0jYc0j8P448?M6@76@P2aYc02I0640>M6@84`@0`Yc14@P=4`Q0PCW:Pa0=`@Ij<P360S1H@P46H<M:024DA1G8PHfd04Fh11\\@PaXY01@P21D`0>8P52d01C9C1:808<8P18X0;8@1148PYLI1E<@088@1<8P22TP01<`D\\LP06PS?4PP42H01V2U3@`0N8@164P024@1=<01340ERT046H41Z8012@P2<H0Y\\82;@082TQ0=8PD<lP94041b@P62H:2FP61lQ0J4P36h4T:@62l@0?4831THPVPT01D@09821Q@@71TQ0DH0BBBP1:`P02APA4@06JhP;6031@RB1d`0O8@91L011D`1:Da0K40BBB064041<908Bh01X@P<@X02hAB2`P0P4P92@a0:4@52LQ01@@014@128`1343U2XQ1l8PC28T0Z@0;4hP1>8Q0>H5:9@33da06@`63hQ0E4062LP02<012``0YH91L8P14@342PP7>H01nH0:2031>0Q14`11@aB3dP2DL`16T`04D0820a2B<`12@P048@32PRV4P11>HQ38P01HH02:811n807:8P16XP74h116HP64h4>50320111HP13\\`2;4074``0=D@03TP0?8@12dP04808LB066801LH064X12NHP=6X11R0282XP1L@01<`P2T`C1dP1L8P33h01K<@32Ha028@030Q04<`34@023<04N:084`31jPP28H01LX066P31R@P22P442H03lD0A8P71dA02LP09\\P018`24dA0B<@03TQ0;<P0:4PW4021l80>4@222@014P02D@P?4@212H0<<0Q0H@P00U0?4P72P13?d@02T`0O<@434`0G8@0<`P018Z0FX0?6h21:@P0>@11J8P48X32RHP16HR1<H014P1140838`1U4P24TQ2G<@27D@1=<022lQ0B<@15l01H8P0lHP0:8012H0A4H11b@1<6h142@P76X01nH094@11P`P96@0D8@21`P0Q8P23d`08<`16@11=L`020111<`72@Q0;8048h013hP04PP0>@04J@0@4@Q1>hP0D`11RPP04P124`098841V@P68H21L@P2DP12<@14@P0?<`71\\P2<8P44h@04803<<a0Q<P42lP1>8@33HP0<02188P8601128P3:`01NH0B4h048@P6:XP0V@PA6821VXP54P11@X0K<042L@31<`14hP0T4P06\\P0;d`43011@4@42D1274031TP04H31PP018HP02PP04807N8PA>`11BHP44X21JP012X12RH0<<P01H8P4:`63<11>8@224Q0U8P43LP0:8@54HP158031801=@@76`P09DP36822T@P84011:H046HQ1`@094h01D@0;:@02D@P24@P1:HP56`S2J805bP41PB09<@0?H`01H0634a03@P22DQ02DP3<L@1:@043H`018@32X`12@184`41DPP248P04@P0H@01>P074HR06@064PR1h8078XP22@07FHP0L8P5<`01L@41HR0C8@16\\`03L@32<A1=4@51hQ0@P012D032@@12d@0;XP02HP:2`T0X@P;<XP0J@0:8X11X80?6hQ2>01;<8Q0F@178Q0RD@51HQ168`23LQ0;<@3:dA1<D`95LP0;X018@08:`S3X@P:4HQ1>X0<4PP16@P66@024H0?4hQ1:AP18PP0H019d032D@02lP0J4P51d015807<dP0<<@71011R8`128P0<l094`012XP1<8P06XP14@31Z@07BH31DH064P11j8P96041@PP6N`41DA11<@06\\Q0D<P45\\Q0;8P23d@0N4`430B0;4P388P04@21`P032P31V@0;:0S1H8P2>`Q2d8P94041F807LP0BL`62`Q0C4P66@Q0;`@03h@1ED`42la0;8@3@@044H12dPP=28R1b0166802J@064821VH0;:X02THP64P194`044P0=8P66H11@8P63<@17@@05`a0@8@46PQ024@058A0>8@3@@P148P2F@P?4`21V@0=4`P18`0B2821N@P18`R360116`P0L@P6P`158P02<01P8@52411K8`174`0T8P4ALP0G8`12@011@`01hP0=X254IP94@21fH086HT1ZP016X11\\8P:<`Q0L@728@0O<0358P0C4`634Q0R8P71l`0@DP56d@0>`S2jH05:8P6@8P12H31RHPA2`S1L@0860316H054`1R<`63DP188`0CPa0C8P82lQ0=<043PQ058@21l0B4HP028P04@R5DH05:P02XP0::HS2nH074021b@P22@11L@9<0a0D8`48l02C<`620b0?L019TQ04@@22dPB8804N8P;4032@8P0:P01XhQ74h31\\H016X32:HP44X1U@`034@01D023Ha0K@@034`08H@43P@118P22hQ0HD@02XA248021h0C6PP62`P;2801h8Q668S140Q34802>@P74h31Xh03B`01LP=7\\Q1L8`42Ta098@034027<@33d11C8`02X`02P`3ZAPB6@S1V@P=60Q12PP2HP11lH096h11f@=2HR0J8@52\\Q0?8`34<P03<`73l`0AD06ZAP>F@31\\8P<6021T0Q04841D`P:483dH`04<Q0R<P51PQ0A80574`0Q8P17HQ0Jh64ZPP?40S0`@P84@S2291>4@3n4P53lQ0HD`15<`1B<`624B01D073\\QM8031j@0>680628P04hR0hPP>4XP1b@P>\\C1F8074h1114P14XQ0M8@72LP0E@P7nIP98@33jH046XS0dX0>4011Z8P@4d0:8@08dP33<073T02G4@638`014P53PP0E<080Z04@804@@P44`02`@P84h21`@02>@21Dh07884o8`06<@018@02TP2;<`11H`09LP43Ha0G8@23X`02@@34\\01T`71<PP1<HQ1T@P32P03@@0<4hR0^@066P052@082HQ0>Q?1X`1?8P42L`138`11TQ0G4061d02:<P33T@0WX71JH088821PHP248S1\\@P;6`32JX032h4n<0830Q0A<011XQ0G8`53h11A8@11L2P6h31P80:2PP0d@P9<`R1n@P94HP1>A@3ha0?8`434P0J<@46d@028`05lQ0A@@03TRQ2h31N@0:8H31J`0288014@01FH41P@016@539P72hP0F8073XP18`@034P0W8`35`2R2h31JHP:4`31B@0:6H01BA086`549P72hP0E<@72TP0K8`934Q0^XX1h@P640S1f@P44PS0jH016HP1NH0GLd0J8@32T11I8`07dQ1HT`02l@0`8Y2\\@P64P31L@0448P1@A0;4`03P@04B`3=9@53d@0L<P13<04Z4P52TP0?HP06HP0M`Y2:XP04PP1J@P04`R9@@0168U0Z@P56PP1:HP068012@P44P3=5`08<@2?D054<P1E<0:1DQ0<<@068`038P01h@0LHY26X044H22TPP44XR28IP4D801NP01<8P24HP54P3<MP02XP0D8043\\P0I<023D11;8P014@024@02`A04@032`QW>P11T@086P11f@P1>XR04HP08H02<HP><0R1d@D6`@1?@P31d`0K4`044`0D8`0=H`0JD@52XQZ6h13BPP28@P2N@0=:XP1V@P58011bH0<803?=@12l023@@0>8P0@8@64P@378`22X@0J8072LQW:@P1ZHP04XP08HP38hQ0bHP6B0Q0D@P52@31j@0;lD038@02Pa0H8P31XQ0ED011\\@0;4`61dQ0Fh93480<4h22L8P04`R1b`P548Q1d@0780Q1^@D2401H4`54l01F8073dP0:@P23XP0>@P13T1Y:8S0^@P94@P0RH0?4XQ1H@04:h03F@018@01fPD5@a018P53<Q1><`720A0<\\`02HP02@@03@P06D`6V:P9:802XHP<:HQ1n@P748238@P24P022@014h014@0=<E0D4`62hQ01H@13lQ0>8@43PP03<P25`01GH:2R@P<:P322`P0<h31J@P84@Q1280@2h2FAP32H1134@65L0138`73``0><0340B0G`:2NH0:6P04PH092842HPP2>hQ10IP:D52=<`41H`044`26@A0T8@35801D4@84<1Z48P14H066h12JX02<h2189086H01X@026P31T0E1<`02<`22h01A<@06XQ0T8`37HQ11D06341Z2XP148064PQ1VhP>:041X80=8X01`@P8@E07D@24`@0I8P634P028P03PP224P04@@1<4092HQ0BPZ0Bh036PQ0bHP<28026hP1>`P74PP3:@02h@P;4@2C9@23<@12H022Pa0I8P36`P064P01L@068P064@1H4@54<QY4@Q1:@P34XP1b@0<6024h8Q120Q1^@098X2C5`23DP08PP62LQ0I8P74D@098063\\P1HHZ0FH038`01nH0;4831l@P328Q0`0Q0>@P1``D1`P098P024P0OH`42XQ0K<022P@0J8P024P028P7V:064@15lX094H32`@0540126@094HP18H0>8U0P8@828P0<@072XA0;8@27811:8`6TBP?4H44B@0?6h22D@P72XR1@@P=8E0O<P82D`03PP72Da0>8P31HQ09<@6T:P?4HT1<h014`Q1F`0:2021L8084@02Dh0:4U0N<013dQ07<@12``01@@15<P038P250A0?40398Q0D8:1n@1=6021F@P18P012@024@P38HP94h11...4PP1:8P1Xe0\\8`04@P038`0BD026PP12@02TX04@@114P048A1<@P28P09:P11PP048A1<P026P09:`12DP058A1@h030:'
nb=ascii_to_nb(carte)
deRLE2_kandin(nb,320,224)