From 3483bd16a8dbf252b7cbbe35a1d91f388de8f784 Mon Sep 17 00:00:00 2001 From: Joe R Date: Sat, 11 Nov 2023 12:27:33 -0500 Subject: [PATCH] Restored lost Mahjongg layouts (see issue #301). --- pysollib/gamedb.py | 11 +- pysollib/games/mahjongg/__init__.py | 1 + pysollib/games/mahjongg/mahjongg1.py | 266 +------------- pysollib/games/mahjongg/mahjongg2.py | 105 +----- pysollib/games/mahjongg/mahjongg3.py | 172 +-------- pysollib/games/mahjongg/mahjonggL.py | 518 +++++++++++++++++++++++++++ pysollib/ui/tktile/menubar.py | 53 ++- 7 files changed, 568 insertions(+), 558 deletions(-) create mode 100644 pysollib/games/mahjongg/mahjonggL.py diff --git a/pysollib/gamedb.py b/pysollib/gamedb.py index ca6d0bda..4ed8085a 100644 --- a/pysollib/gamedb.py +++ b/pysollib/gamedb.py @@ -323,6 +323,13 @@ class GI: 297: 631, # Alternation/Alternations 526: 447, # Australian/Outback Patience 640: 566, # Hypotenuse/Brazilian Patience + + # Lost Mahjongg Layouts + 5025: 5600, 5032: 5601, 5043: 5602, 5046: 5603, 5051: 5604, + 5061: 5605, 5062: 5606, 5066: 5607, 5085: 5608, 5093: 5609, + 5101: 5610, 5213: 5611, 5214: 5612, 5238: 5613, 5244: 5614, + 5501: 5615, 5502: 5616, 5503: 5617, 5504: 5618, 5505: 5619, + 5802: 5620, 5804: 5621, 5902: 5622, 5903: 5623 } # For games by compatibility, note that missing games may actually @@ -581,8 +588,8 @@ class GI: ('fc-2.21', tuple(range(897, 900)) + tuple(range(11014, 11017)) + tuple(range(13160, 13163)) + (16682,)), ('dev', tuple(range(906, 929)) + tuple(range(11017, 11020)) + - tuple(range(18000, 18004)) + tuple(range(22303, 22311)) + - tuple(range(22353, 22361))), + tuple(range(5600, 5624)) + tuple(range(18000, 18004)) + + tuple(range(22303, 22311)) + tuple(range(22353, 22361))), ) # deprecated - the correct way is to or a GI.GT_XXX flag diff --git a/pysollib/games/mahjongg/__init__.py b/pysollib/games/mahjongg/__init__.py index 713a4fed..14269a8b 100644 --- a/pysollib/games/mahjongg/__init__.py +++ b/pysollib/games/mahjongg/__init__.py @@ -23,4 +23,5 @@ from . import mahjongg1 # noqa: F401 from . import mahjongg2 # noqa: F401 from . import mahjongg3 # noqa: F401 +from . import mahjonggL # noqa: F401 from . import shisensho # noqa: F401 diff --git a/pysollib/games/mahjongg/mahjongg1.py b/pysollib/games/mahjongg/mahjongg1.py index 9a54426c..bd2ee70c 100644 --- a/pysollib/games/mahjongg/mahjongg1.py +++ b/pysollib/games/mahjongg/mahjongg1.py @@ -447,27 +447,6 @@ r(5024, "Dude", layout="0bfabtabhbbjbblb" + "kcjmclmcnmcrmctm" + "cvmcpncjocvockqc" + "mqcoqcqqcsqcuq") -# r(5025, "Eagle", layout="0cmadoacqaasbbmc" + -# "bocaedagdaudawdb" + -# "cebieakebmeboeaq" + -# "ebsebyeaefagfauf" + -# "awfbcgbigakgbmgb" + -# "ogaqgbsgbygaehag" + -# "hauhawhaaiacibmi" + -# "boiayiaAibejbwja" + -# "akackbmkbokaykaA" + -# "kaambkmanmbqmaAm" + -# "cioclocpocsoheeh" + -# "gehuehweheghgghu" + -# "ghwghbihzihbkhzk" + -# "omdoododeofeoheo" + -# "teoveoxeomfoofod" + -# "gofgohgotgovgoxg" + -# "omhoohobjomjoojo" + -# "zjvndveevgevuevw" + -# "evnfvegvggvugvwg" + -# "vnhvnjCfeCveCfgC" + -# "vg") r(5026, "Enterprise", layout="0agaaiaakaamaaoa" + "aqaasaauaawaayaa" + "acbccbecbgcbicbk" + @@ -570,7 +549,7 @@ r(5030, "Fish", layout="0afaajaasaauaawa" + "oteolfonfopfovfo" + "rgotgovhoxh") # -r(5031, "Five Pyramids", layout="0aaaacaaeaagaaya" + +r(5031, "Five Pyramids 1", layout="0aaaacaaeaagaaya" + "aAaaCaaEaaacacca" + "ecagcapcaycaAcaC" + "caEcaaeaceaeeage" + @@ -597,29 +576,7 @@ r(5031, "Five Pyramids", layout="0aaaacaaeaagaaya" + "hoqhocmoemoAmoCm" + "ocooeooAooCovddv" + "BdvphvdnvBn") -# r(5032, "Five Pyramids 2", layout="0aoaaabacbaebagb" + -# "awbaybaAbaCbboca" + -# "adacdaedagdaidak" + -# "damdaqdasdaudawd" + -# "aydaAdaCdcoeaafa" + -# "cfaefagfawfayfaA" + -# "faCfamgdogaqgadh" + -# "azhagibiickidmid" + -# "oidqicsibuiawiad" + -# "jazjamkdokaqkaal" + -# "aclaelaglawlayla" + -# "AlaClcomaanacnae" + -# "nagnainaknamnaqn" + -# "asnaunawnaynaAna" + -# "Cnbooaapacpaepag" + -# "pawpaypaApaCpaoq" + -# "hbchdchfchxchzch" + -# "Bchbehdehfehxehz" + -# "ehBehbmhdmhfmhxm" + -# "hzmhBmhbohdohfoh" + -# "xohzohBoocdoedoy" + -# "doAdocnoenoynoAn") -r(5033, "Flowers", layout="0baaccaceabgaaka" + +r(5033, "Flowers 1", layout="0baaccaceabgaaka" + "bmaboaaqaauabwab" + "yaaAadacdgcckccq" + "ccuccAcbaeccecee" + @@ -636,7 +593,7 @@ r(5033, "Flowers", layout="0baaccaceabgaaka" + "naoxaoneoxeodkon" + "koxkodoonooxovda" + "vde") -r(5034, "Flying Dragon", layout="0acaaeaagaaiaaka" + +r(5034, "Traditional", layout="0acaaeaagaaiaaka" + "amaaoaaqaasaauaa" + "waayaagcbicbkcbm" + "cbocbqcbscaucaee" + @@ -824,24 +781,7 @@ r(5042, "H for Haga", layout="0aaaacaaeaagaaka" + "oekomkookocmoemo" + "mmoomvddvndvdlvn" + "l") -# r(5043, "H for Haga Traditional", layout="0acaaeaagaaiaaka" + -# "amaaoaaqaasaauaa" + -# "waayabgcbicakcam" + -# "caocaqcbscbucaee" + -# "bgebieakeameaoea" + -# "qebsebueaweacgae" + -# "gbggbigbkgbmgbog" + -# "bqgbsgbugawgayga" + -# "ahaAhaciaeibgibi" + -# "ibkibmiboibqibsi" + -# "buiawiayiaekbgkb" + -# "ikakkamkaokaqkbs" + -# "kbukawkbgmbimakm" + -# "ammaomaqmbsmbuma" + -# "coaeoagoaioakoam" + -# "oaooaqoasoauoawo" + -# "ayoklcknckpchdhh" + -# "xhklmknmkpm") + r(5044, "Helios", layout="0eaadcaduaewadac" + "bccbucdwcbaeacea" + "eeaiedkedmeaoeas" + @@ -866,33 +806,7 @@ r(5045, "High and Low", layout="0eaadcaceabgaaia" + "miboiaqiaekagkbi" + "kakkamkahmajmhim") # -# r(5046, "Hourglass", layout="0aaaacaaeaagaaia" + -# "akaamaaoaaqaasaa" + -# "uaawaayaaacamcay" + -# "cacdawdaaeaeeame" + -# "aueayeacfagfasfa" + -# "wfaagaegaigamgaq" + -# "gaugaygachaghbkh" + -# "bohashawhaaiaeia" + -# "iiamiaqiauiayiac" + -# "jagjasjawjaakaek" + -# "amkaukaykaclawla" + -# "amammaymaaoacoae" + -# "oagoaioakoamoaoo" + -# "aqoasoauoawoayoh" + -# "abhmbhybhadhmdhy" + -# "dhcehwehafhefhuf" + -# "hyfhcghgghsghwgh" + -# "ahhehhihhqhhuhhy" + -# "hhcihgihsihwihaj" + -# "hejhujhyjhckhwkh" + -# "alhmlhylhanhmnhy" + -# "noacoycoaeoyeoag" + -# "oygoaioyioakoyko" + -# "amoymvadvydvafvy" + -# "fvahvyhvajvyjval" + -# "vylCaeCyeCagCygC" + -# "aiCyiCakCyk") + r(5047, "Inca", layout="0aoaaqaaibakbamb" + "asbaubawbbocbqca" + "idbkdbmdbsdbudaw" + @@ -950,26 +864,7 @@ r(5050, "K for Kyodai", layout="0caaccaceacmacoa" + "cemcimbkmcmmcaob" + "coceockobmocooca" + "qccqceqcmqcoqcqq") -# r(5051, "K for Kyodai Traditional", layout="0acaaeaagaaiaaka" + -# "amaaoaaqaasaauaa" + -# "waayaagcaicakcam" + -# "caocaqcascaucaee" + -# "ageaieakeameaoea" + -# "qeaseaueaweacgae" + -# "gaggaigakgamgaog" + -# "aqgasgaugawgayga" + -# "ahaAhaciaeiagiai" + -# "iakiamiaoiaqiasi" + -# "auiawiayiaekagka" + -# "ikakkamkaokaqkas" + -# "kaukawkagmaimakm" + -# "ammaomaqmasmauma" + -# "coaeoagoaioakoam" + -# "oaooaqoasoauoawo" + -# "ayokjckrckpdkjeh" + -# "gfknfhufkjghghkl" + -# "hhuhkjihgjknjhuj" + -# "kjkkplkjmkrm") + r(5052, "Km", layout="0baabcabiaakaboa" + "cqacyabAabacaccb" + "gcaicbocaqcdscdw" + @@ -1023,7 +918,7 @@ r(5054, "Labyrinth", layout="0caaacaaeaagaaia" + "caqacqbeqdgqdkqb" + "mqaoqaqqasqauqbw" + "qdyqdCqbEq") -r(5055, "Lion", layout="0bdbbfbcjbclbawb" + +r(5055, "Lion 1", layout="0bdbbfbcjbclbawb" + "aybbbcbhcaucaAcc" + "jdcldasdaCdbaeaq" + "ecvfczfaDfbbgapg" + @@ -1038,7 +933,7 @@ r(5055, "Lion", layout="0bdbbfbcjbclbawb" + "dhpehEfhoghFhhni" + "hGjhFlhEnhsohCoh" + "uphwphyphApwkc") -r(5056, "Lost ", layout="0afaaxaabbadbahb" + +r(5056, "Lost", layout="0afaaxaabbadbahb" + "ajbblbbnbbpbbrba" + "tbavbazbaBbafcax" + "cabdaddbkdcodbsd" + @@ -1130,43 +1025,9 @@ r(5060, "N for Namida", layout="0caaccaceacgacqa" + "akbckcekbmkbokbq" + "kbskcukcamccmcem" + "comcqmcsmcum") -# r(5061, "N for Namida Traditional", layout="0acaaeaagaaiaaka" + -# "amaaoaaqaasaauaa" + -# "waayacgcaicakcbm" + -# "ccoccqcasccucaee" + -# "cgecieakeameaoea" + -# "qeasecueaweacgae" + -# "gcggcigakgcmgaog" + -# "aqgasgcugawgayga" + -# "ahaAhaciaeicgiai" + -# "iakicmiaoicqiasi" + -# "cuiawiayiaekcgka" + -# "ikakkamkaokcqkas" + -# "kcukawkcgmaimckm" + -# "cmmbomaqmasmcuma" + -# "coaeoagoaioakoam" + -# "oaooaqoasoauoawo" + -# "ayoikfikhiohioji" + -# "sjisl") -# r(5062, "Naoki Haga Traditional", layout="0acaaeaagaaiaaka" + -# "amaaoaaqaasaauaa" + -# "waayadgcaicakcdm" + -# "caocaqcascaucaee" + -# "dgeaiedkedmeaoec" + -# "qecseaueaweacgae" + -# "gdggaigakgdmgaog" + -# "aqgasgaugawgayga" + -# "ahaAhaciaeiagiai" + -# "iakiamidoiaqiasi" + -# "duiawiayiaekagkc" + -# "ikckkamkdokdqkds" + -# "kdukawkagmaimakm" + -# "ammdomaqmasmduma" + -# "coaeoagoaioakoam" + -# "oaooaqoasoauoawo" + -# "ayojidvrevjk") + # -r(5063, "New Layout", layout="0aeaagaaiaakabpa" + +r(5063, "New Layout 1", layout="0aeaagaaiaakabpa" + "auaawaayaaAaacca" + "Ccahdajdavdaxdaa" + "eacealeateaCeaEe" + @@ -1230,31 +1091,7 @@ r(5065, "Pattern", layout="0aaaacaafaahaaka" + "cwmczmaBmibailai" + "fbihbibciqciqfil" + "hialihl") -# r(5066, "Phoenix", layout="0aaaacaapaaraaEa" + -# "aGaaebatbaCbaaca" + -# "gcapcarcaAcaGcai" + -# "daydakeboebqebse" + -# "aweaafacfaefamfa" + -# "ufaCfaEfaGfaggbp" + -# "gbrgaAgaahaihamh" + -# "auhayhaGhaeiakic" + -# "picriawiaCiaajam" + -# "jaujaGjbpkbrkacl" + -# "aelaglailamlaula" + -# "ylaAlaClaElakmbp" + -# "mbrmawmacnafnamn" + -# "aunaBnaEnaioaooa" + -# "soayoacpafpaBpaE" + -# "pakqawqhbbhFbhdc" + -# "hDchfdhBdhhehzeh" + -# "jfhxfhdghlghvghD" + -# "ghfhhBhhhihnihti" + -# "hzihjjhxjhdkhlkh" + -# "vkhDkhflhnlhtlhB" + -# "lhhmhzmhjnhxnhlo" + -# "hvohnphtponfppfp" + -# "rfotfoplorlvqivq" + -# "lCqf") + r(5067, "Portal", layout="0accagcawcaAcaed" + "aydaceageaweaAea" + "mgaqgamiaqiackag" + @@ -1449,34 +1286,7 @@ r(5074, "Siam", layout="0afaazaadbahbaxb" + "hoihowhoyhoAhoCh" + "odjofjohjoxjozjo" + "BjoelogloyloAl") -# -# r(5075, "Space Ship", layout="0afaahaajaalaana" + -# "apaaraataavaadba" + -# "xbabcancazcaaeaf" + -# "eaheajealeaneape" + -# "areateaveaAeadfa" + -# "xfangadhaxhaniad" + -# "jaxjankadlaxlanm" + -# "adnaxnanohgahiah" + -# "kahmahoahqahsahu" + -# "ahebhwbhcchychad" + -# "hmdhodhAdhgehieh" + -# "kehqehsehuehmfho" + -# "fhdghxghnhhdihxi" + -# "hnjhdkhxkhnlhdmh" + -# "xmhnnohaojaolaon" + -# "aopaoraotaofbovb" + -# "odcoxcobdozdoheo" + -# "jeoleoneopeoreot" + -# "eqngodhoxhqniodj" + -# "oxjqnkodloxlqnmv" + -# "iavkavmavoavqavs" + -# "avgbvubvecvwcvcd" + -# "vydvievkevmevoev" + -# "qevsevdivxivdkvx" + -# "kCnaCjeCleCneCpe" + -# "CreCdjCxj") -# + r(5076, "Square", layout="0daadcadeadgadia" + "dkadacdccdecdgcd" + "icdkcdaedcedeedg" + @@ -1619,31 +1429,7 @@ r(5084, "Temple 1", layout="0baaacaaeaalaana" + "oioqiosiouiookoq" + "kvpgvpi") # -# r(5085, "Teotihucan", layout="0aaaacaaeaagaaia" + -# "akaamaaoaaqaasaa" + -# "acascaaeaseaagcg" + -# "gckgcogasgaaicgi" + -# "ckicoiasiaakaska" + -# "amasmaaoacoaeoag" + -# "oaioakoamoaooaqo" + -# "asoajqhbbhdbhfbh" + -# "hbhjbhlbhnbhpbhr" + -# "bhbdhrdhbfhrfhbh" + -# "hrhhbjhrjhblhrlh" + -# "bnhdnhfnhhnhjnhl" + -# "nhnnhpnhrnhjpocc" + -# "oecogcoicokcomco" + -# "ocoqcoceoqeocgoq" + -# "gocioqiockoqkocm" + -# "oemogmoimokmommo" + -# "omoqmojovddvfdvh" + -# "dvjdvldvndvpdvdf" + -# "vffvhfvjfvlfvnfv" + -# "pfvdhwfhvhhwjhvl" + -# "hwnhvphvdjvfjvhj" + -# "vjjvljvnjvpjvdlv" + -# "flvhlvjlvllvnlvp" + -# "lvjn") + r(5086, "The Door", layout="0amaaoaaqaeicekc" + "emceoceqcesceuca" + "gediedueaweaegag" + @@ -1766,14 +1552,7 @@ r(5092, "Tomb", layout="0eaabcabeabgabia" + "bmkaimakmhjevfcv" + "hcvjcvlcvncCgcCi" + "cCkcCmc") -# -# r(5093, "Tower and Walls", layout="0ekadmaeoadqaesa" + -# "dkccmccoccqcdscd" + -# "aeecedeeegedieek" + -# "ecmedoecqeesedue" + -# "ewedyeeAedCedkgc" + -# "mgcogcqgdsgekidm" + -# "ieoidqiesi") + r(5094, "Traditional Reviewed", layout="0acaaeaaiaakaama" + "aoaaqaasaawaayaa" + "gcaicbkccmccocbq" + @@ -1913,22 +1692,7 @@ r(5100, "Well 1", layout="0aiaakaamaaoaagc" + "mmbomaioakoamoao" + "ohcfhufhchhuhhcj" + "huj") -# r(5101, "What a Pyramid", layout="0aaaacaaeaagaaia" + -# "akaamaaoaaqaasaa" + -# "uaawaaacaccbecbg" + -# "cbicbkcbmcbocbqc" + -# "bscaucawcaceaeeb" + -# "geciedkedmecoebq" + -# "easeaueaegbggdig" + -# "bkgbmgdogbqgasga" + -# "eibgidiibkibmido" + -# "ibqiasiackaekbgk" + -# "cikdkkdmkcokbqka" + -# "skaukaamacmbembg" + -# "mbimbkmbmmbombqm" + -# "bsmaumawmaaoacoa" + -# "eoagoaioakoamoao" + -# "oaqoasoauoawo") + r(5102, "Yummy", layout="0aoaaibakbbmbbqb" + "asbaubaocagdbidb" + "kdbmdbqdbsdbudaw" + diff --git a/pysollib/games/mahjongg/mahjongg2.py b/pysollib/games/mahjongg/mahjongg2.py index ecb95d85..063117ec 100644 --- a/pysollib/games/mahjongg/mahjongg2.py +++ b/pysollib/games/mahjongg/mahjongg2.py @@ -286,60 +286,7 @@ r(5212, "Floating City", layout="0oagoaiocdocfoch" + "nhzahzchzmhzooAd" + "oAfoAhoAjoAloApo" + "CgoCi") -# r(5213, "Flowers 2", layout="0aaiacgbciackadc" + -# "adoaeiafabfcafea" + -# "fmbfoafqahcahoai" + -# "haijhjiakfakhakj" + -# "aklhlghlihlkamda" + -# "mfamhomhamjomjam" + -# "lamnhnehnghnivni" + -# "hnkhnmaobaodaofo" + -# "ofaohoohaojoojao" + -# "loolaonaophpchpe" + -# "hpgvpghpivpihpkv" + -# "pkhpmhpoaqbaqdoq" + -# "daqfoqfaqhoqhCqh" + -# "aqjoqjCqjaqloqla" + -# "qnoqnaqphrchrehr" + -# "gvrghrivrihrkvrk" + -# "hrmhroasbasdasfo" + -# "sfashoshasjosjas" + -# "loslasnasphtehtg" + -# "htivtihtkhtmauda" + -# "ufauhouhaujoujau" + -# "launhvghvihvkawf" + -# "awhawjawlhxiayha" + -# "yjazcazoaBabBcaB" + -# "eaBmbBoaBqaCiaDc" + -# "aDoaEgbEiaEkaGi") -# r(5214, "Full Vision 3", layout="0aaeaagaaihbehbi" + -# "acbhccacdacfhcga" + -# "chacjhckaclacnhc" + -# "oacpaeahebaecaee" + -# "aegaeiaekhelaema" + -# "gbhgcagdagfhggag" + -# "hagjhgkaglagnhgo" + -# "agphhehhiaieaiga" + -# "iiainhioaiphjgak" + -# "eakgakiaknhkoakp" + -# "hlehliambhmcamda" + -# "mfhmgamhamjhmkam" + -# "lamnhmoampaoahob" + -# "aocaoehofaogaoia" + -# "okholaomaqbhqcaq" + -# "daqfhqgaqhaqjhqk" + -# "aqlaqnhqoaqphreh" + -# "riaseasgasiasnhs" + -# "oasphtgaueaugaui" + -# "aunhuoauphvehvia" + -# "wbhwcawdawfhwgaw" + -# "hawjhwkawlawnhwo" + -# "awpayahybaycayea" + -# "ygayiaykhylaymaA" + -# "bhAcaAdaAfhAgaAh" + -# "aAjhAkaAlaAnhAoa" + -# "AphBehBiaCeaCgaC" + -# "i") + r(5215, "Hidden Words", layout="0haahachaehaghal" + "abaabcobdabeabga" + "bjablbbnabphcahc" + @@ -796,33 +743,7 @@ r(5237, "Lattice", layout="0aaiacebciacmaec" + "ecAiaAmaCcbCeaCg" + "bCiaCkbCmaCoaEeb" + "EiaEmaGi") -# -# r(5238, "Leo", layout="0aapabiablhbphcf" + -# "acghchhclacnocpa" + -# "djodladpvdpheeae" + -# "fheiaelvelhepCep" + -# "ofihflCflafnofph" + -# "gdagevgiagjoglag" + -# "pvgphhiChiahlvhl" + -# "hhpChphicaidoiih" + -# "ilCilainoipvjiaj" + -# "jojlajpvjpbkabkc" + -# "hkiCkiaklvklhkpC" + -# "kpolbolihllalnol" + -# "pbmabmcvmiamjoml" + -# "ampvmphnianlhnpo" + -# "oiholaonoophpfap" + -# "hapjappaqfhqiaql" + -# "hqphrdarnasehsqh" + -# "tcatpaudbumhuphv" + -# "bcvgavqawccwlhwq" + -# "hxbcxjaxpayccylh" + -# "yphzbczgazqaAdbA" + -# "mhAqhBcaBpaCehCp" + -# "hDeaDgaDohEgaEia" + -# "EmhEohFiaFkhFmhG" + -# "k") -# + r(5239, "Loose Ends", layout="0aaaoabaaioapaaq" + "hbahbihbqacbocca" + "chociacjocoacphd" + @@ -901,27 +822,7 @@ r(5243, "Multi X", layout="0aaaaaiaaqhbbhbh" + "vzdvzfvzlvznoAco" + "AgoAkoAohBbhBhhB" + "jhBpaCaaCiaCq") -# r(5244, "New Layout 2", layout="0CabCadCafacapca" + -# "hccvccacepcehcgv" + -# "cgheaveaaecpeche" + -# "eveeaegpegCfaCfc" + -# "CfeCfgagapgahgcv" + -# "gcagepgehggvggCh" + -# "aChcCheChghiavia" + -# "aicpichievieaigp" + -# "igakaqkahkcwkcak" + -# "eqkehkgwkghmawma" + -# "amcqmchmewmeamgq" + -# "mgaoaqoahocwocao" + -# "eqoehogwoghqavqa" + -# "aqcpqchqevqeaqgp" + -# "qgCraCrcCreCrgas" + -# "apsahscvscasepse" + -# "hsgvsgCtaCtcCteC" + -# "tghuavuaaucpuchu" + -# "evueaugpugawapwa" + -# "hwcvwcawepwehwgv" + -# "wgCybCydCyf") + r(5245, "Okie's Nitemare", layout="0aaoaaqbbeabmhbp" + "acoacqcddbdgadmh" + "dpaeoaeqbfccffaf" + diff --git a/pysollib/games/mahjongg/mahjongg3.py b/pysollib/games/mahjongg/mahjongg3.py index 24d2fadf..29dfdd25 100644 --- a/pysollib/games/mahjongg/mahjongg3.py +++ b/pysollib/games/mahjongg/mahjongg3.py @@ -285,120 +285,6 @@ r(5414, "Bridge 2", layout="0daadacdaedagdai" + "AedAgdAidAkdAmdA" + "o") -# r(5501, "Big X", layout="0aacaamhbchbmacb" + -# "occacdaclocmacnh" + -# "dbhddhdlhdnaeaae" + -# "coedaeeaekoelaem" + -# "aeohfchfehfkhfma" + -# "gbagdogeagfagjog" + -# "kaglagnhhdhhfhhj" + -# "hhlaicaieoifaiga" + -# "iioijaikaimhjehj" + -# "ghjihjkakdakfokg" + -# "akhokiakjaklhlfh" + -# "lhhljameamgomgam" + -# "iomiamkhnfhnhhnj" + -# "aofoofaohoohaojo" + -# "ojhpfhphhpjaqeaq" + -# "goqgaqioqiaqkhrf" + -# "hrhhrjasdasfosga" + -# "shosiasjaslhteht" + -# "ghtihtkaucaueouf" + -# "augauioujaukaumh" + -# "vdhvfhvjhvlawbaw" + -# "doweawfawjowkawl" + -# "awnhxchxehxkhxma" + -# "yaaycoydayeaykoy" + -# "laymayohzbhzdhzl" + -# "hznaAboAcaAdaAlo" + -# "AmaAnhBchBmaCcaC" + -# "m") -# r(5502, "Axis", layout="0bafcahbajbbdvbh" + -# "bblcchCchbdcvdhb" + -# "dmcehCehbfbvfhbf" + -# "ncghahaahohiahio" + -# "ajabjhajohkabkfb" + -# "kjhkoalabldbllal" + -# "ohmacmhhmoanaanc" + -# "vnhanmanoiobcohi" + -# "onapbwphapniqbcq" + -# "hiqnaraarcvrharm" + -# "arohsacshhsoatab" + -# "tdbtlatohuabufbu" + -# "jhuoavabvhavohwa" + -# "hwoaxaaxocyhbzbv" + -# "zhbzncAhCAhbBcvB" + -# "hbBmcChCChbDdvDh" + -# "bDlbEfcEhbEj") -# r(5503, "Cobweb", layout="0aacaafhagaahoah" + -# "haiaajaamacbhcca" + -# "cdaclhcmacnadfhd" + -# "gadhodhhdiadjaea" + -# "aeohfaafcafeafha" + -# "fkafmhfoagaogaag" + -# "oogohhaahcahhahm" + -# "hhoaiaoiaaiooioh" + -# "jaajdajhajlhjoak" + -# "aakoalealhalkama" + -# "amoancanfhnganhh" + -# "nianjanmaoahoboo" + -# "gooihonaooopbapc" + -# "bpgvpgbpivpiapmo" + -# "pnaqahqboqgoqihq" + -# "naqoarcarfhrgarh" + -# "hriarjarmasaasoa" + -# "teathatkauaauohv" + -# "aavdavhavlhvoawa" + -# "owaawoowohxaaxca" + -# "xhaxmhxoayaoyaay" + -# "ooyohzaazcazeazh" + -# "azkazmhzoaAaaAoa" + -# "BfhBgaBhoBhhBiaB" + -# "jaCbhCcaCdaClhCm" + -# "aCnaEcaEfhEgaEho" + -# "EhhEiaEjaEm") -# r(5504, "Pyramids", layout="0aaaaacaakaamhbb" + -# "abeabgabihblacaa" + -# "ccackacmhdbadead" + -# "gadihdlaeaaecaek" + -# "aemaffhfgafhahba" + -# "heahiahlhibhiehi" + -# "ihilajbojbajdoje" + -# "ajfajhojiajjajlo" + -# "jlhkbvkbhkevkehk" + -# "ghkivkihklvklalb" + -# "olbClbaldoleClea" + -# "lfolgalholiClial" + -# "jallollCllhmbvmb" + -# "hmevmehmgvmghmiv" + -# "mihmlvmlanbonbCn" + -# "bandoneCneanfong" + -# "anhoniCnianjanlo" + -# "nlCnlhobvobhoevo" + -# "ehoghoivoiholvol" + -# "apbopbapdopeapfa" + -# "phopiapjaploplhq" + -# "bhqehqihqlarbare" + -# "ariarlatfhtgatha" + -# "uaaucaukaumhvbav" + -# "eavgavihvlawaawc" + -# "awkawmhxbaxeaxga" + -# "xihxlayaaycaykay" + -# "m") -# r(5505, "Wicker", layout="0bafbakbbcbbhbbm" + -# "bcebcjbdbbdgbdlb" + -# "edbeibenbfabffbf" + -# "kbgcbghbgmbhebhj" + -# "bibbigbilbjdbjib" + -# "jnbkabkfbkkblcbl" + -# "hblmbmebmjbnbbng" + -# "bnlbodboibonbpab" + -# "pfbpkbqcbqhbqmbr" + -# "ebrjbsbbsgbslbtd" + -# "btibtnbuabufbukb" + -# "vcbvhbvmbwebwjbx" + -# "bbxgbxlbydbyibyn" + -# "bzfbzkbAh") r(5801, "Faro", name="Double Mahjongg Faro", ncards=288, layout="0aaaha" + "baachadaae" + @@ -446,21 +332,6 @@ r(5801, "Faro", name="Double Mahjongg Faro", ncards=288, layout="0aaaha" + "chEdaEeoEehEfaEg" + "iEhaEihEjaEkoEkh" + "ElaEmhEnaEo") -# r(5802, "Big Square", name="Double Mahjongg Big Square", ncards=288, -# layout="0daadacdaedagdai" + -# "dakdcadccdcedcgd" + -# "cidckdeadecdeede" + -# "gdeidekdgadgcdge" + -# "dggdgidgkdiadicd" + -# "iedigdiidikdkadk" + -# "cdkedkgdkidkkdma" + -# "dmcdmedmgdmidmkd" + -# "oadocdoedogdoido" + -# "kdqadqcdqedqgdqi" + -# "dqkdsadscdsedsgd" + -# "sidskduaducduedu" + -# "gduidukdwadwcdwe" + -# "dwgdwidwk") r(5803, "Two Squares", name="Double Mahjongg Two Squares", ncards=288, layout="0daadacdaedagdai" + "dakdcadccdcedcgd" + @@ -476,20 +347,6 @@ r(5803, "Two Squares", name="Double Mahjongg Two Squares", ncards=288, "uidukdwadwcdwedw" + "gdwidwkdyadycdye" + "dygdyidyk") -# r(5804, "Rows", name="Double Mahjongg Rows", ncards=288, -# layout="0daadacCaddaeCaf" + -# "dagCahdaidakdcad" + -# "ckeeadeceeeeegde" + -# "ieekegaegkeiadic" + -# "eieeigdiieikekae" + -# "kkemadmcemeemgdm" + -# "iemkeoaeokeqadqc" + -# "eqeeqgdqieqkesae" + -# "skeuaduceueeugdu" + -# "ieukewaewkeyadyc" + -# "eyeeygdyieykdAad" + -# "AkdCadCcCCddCeCC" + -# "fdCgCChdCidCk") r(5805, "Twin Picks", name="Double Mahjongg Twin Picks", ncards=288, layout="0aacaaeaagaaiaak" + "aamhbdhbfhbhhbjh" + @@ -639,7 +496,7 @@ r(5808, "Eight Squares", name="Double Mahjongg Eight Squares", ncards=288, "vjdvldxadxcdxedx" + "hdxjdxldzadzcdze" + "dzhdzjdzl") -r(5809, "Big Flying Dragon", name="Double Mahjongg Big Flying Dragon", +r(5809, "Big Traditional", name="Double Mahjongg Big Traditional", ncards=288, layout="0aajacaaciackacs" + "aeaaegaeihejaeka" + "emaesagaageaggbg" + @@ -736,32 +593,7 @@ r(5901, "Happy New Year", name="Half Mahjongg Happy New Year", ncards=72, "nhbodbohaolopdop" + "hhplbqdbqhaqlase" + "asiasmaufaujaun") -# r(5902, "K 2", name="Half Mahjongg K 2", ncards=72, -# layout="0aagabcabehbfobg" + -# "hbhabiabkacgvcga" + -# "dbidgadlaegvegbf" + -# "aifgbfmaggbhaihg" + -# "bhmaigbjahjgbjma" + -# "kgokgblahlgblmam" + -# "gbnaingbnmaogbpa" + -# "ipgbpmaqgvqgarbi" + -# "rgarlasgvsgatcat" + -# "ehtfotghthatiatk" + -# "aug") -# r(5903, "Abstract", name="Half Mahjongg Abstract", ncards=72, -# layout="0aaaaagabcabebdd" + -# "adgadioedhehafch" + -# "fdafeafhagahhaah" + -# "dahgaiahjaojbbjc" + -# "ajfakaalcamfamha" + -# "nbhncandhngaogbo" + -# "iapdhqdaqiarcord" + -# "arehrihsdasgasia" + -# "tdauaaufhvbavcav" + -# "iawaawehxeaxiayc" + -# "ayebyghzdaAdaAha" + -# "BbaBfhCfaCiaDcaD" + -# "eaDghDhaEaaEi") + r(5904, "Smile", name="Half Mahjongg Smile", ncards=72, layout="0bagoahbaibbebbk" + "bccbcmbebbenaffb" + diff --git a/pysollib/games/mahjongg/mahjonggL.py b/pysollib/games/mahjongg/mahjonggL.py new file mode 100644 index 00000000..7afbad57 --- /dev/null +++ b/pysollib/games/mahjongg/mahjonggL.py @@ -0,0 +1,518 @@ +#!/usr/bin/env python +# -*- mode: python; coding: utf-8; -*- +# ---------------------------------------------------------------------------## +# +# Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer +# Copyright (C) 2003 Mt. Hood Playing Card Co. +# Copyright (C) 2005-2009 Skomoroh +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ---------------------------------------------------------------------------## + +from pysollib.games.mahjongg.mahjongg import r + +# These Mahjongg layouts are "Lost" layouts from Flowersol, and were +# commented in previous versions of PySolFC. + +# ************************************************************************ +# * game definitions +# ************************************************************************ + +r(5600, "Eagle", layout="0cmadoacqaasbbmc" + + "bocaedagdaudawdb" + + "cebieakebmeboeaq" + + "ebsebyeaefagfauf" + + "awfbcgbigakgbmgb" + + "ogaqgbsgbygaehag" + + "hauhawhaaiacibmi" + + "boiayiaAibejbwja" + + "akackbmkbokaykaA" + + "kaambkmanmbqmaAm" + + "cioclocpocsoheeh" + + "gehuehweheghgghu" + + "ghwghbihzihbkhzk" + + "omdoododeofeoheo" + + "teoveoxeomfoofod" + + "gofgohgotgovgoxg" + + "omhoohobjomjoojo" + + "zjvndveevgevuevw" + + "evnfvegvggvugvwg" + + "vnhvnjCfeCveCfgC" + + "vg") +r(5601, "Five Pyramids 2", layout="0aoaaabacbaebagb" + + "awbaybaAbaCbboca" + + "adacdaedagdaidak" + + "damdaqdasdaudawd" + + "aydaAdaCdcoeaafa" + + "cfaefagfawfayfaA" + + "faCfamgdogaqgadh" + + "azhagibiickidmid" + + "oidqicsibuiawiad" + + "jazjamkdokaqkaal" + + "aclaelaglawlayla" + + "AlaClcomaanacnae" + + "nagnainaknamnaqn" + + "asnaunawnaynaAna" + + "Cnbooaapacpaepag" + + "pawpaypaApaCpaoq" + + "hbchdchfchxchzch" + + "Bchbehdehfehxehz" + + "ehBehbmhdmhfmhxm" + + "hzmhBmhbohdohfoh" + + "xohzohBoocdoedoy" + + "doAdocnoenoynoAn") +r(5602, "H for Haga Traditional", layout="0acaaeaagaaiaaka" + + "amaaoaaqaasaauaa" + + "waayabgcbicakcam" + + "caocaqcbscbucaee" + + "bgebieakeameaoea" + + "qebsebueaweacgae" + + "gbggbigbkgbmgbog" + + "bqgbsgbugawgayga" + + "ahaAhaciaeibgibi" + + "ibkibmiboibqibsi" + + "buiawiayiaekbgkb" + + "ikakkamkaokaqkbs" + + "kbukawkbgmbimakm" + + "ammaomaqmbsmbuma" + + "coaeoagoaioakoam" + + "oaooaqoasoauoawo" + + "ayoklcknckpchdhh" + + "xhklmknmkpm") +r(5603, "Hourglass", layout="0aaaacaaeaagaaia" + + "akaamaaoaaqaasaa" + + "uaawaayaaacamcay" + + "cacdawdaaeaeeame" + + "aueayeacfagfasfa" + + "wfaagaegaigamgaq" + + "gaugaygachaghbkh" + + "bohashawhaaiaeia" + + "iiamiaqiauiayiac" + + "jagjasjawjaakaek" + + "amkaukaykaclawla" + + "amammaymaaoacoae" + + "oagoaioakoamoaoo" + + "aqoasoauoawoayoh" + + "abhmbhybhadhmdhy" + + "dhcehwehafhefhuf" + + "hyfhcghgghsghwgh" + + "ahhehhihhqhhuhhy" + + "hhcihgihsihwihaj" + + "hejhujhyjhckhwkh" + + "alhmlhylhanhmnhy" + + "noacoycoaeoyeoag" + + "oygoaioyioakoyko" + + "amoymvadvydvafvy" + + "fvahvyhvajvyjval" + + "vylCaeCyeCagCygC" + + "aiCyiCakCyk") +r(5604, "K for Kyodai Traditional", layout="0acaaeaagaaiaaka" + + "amaaoaaqaasaauaa" + + "waayaagcaicakcam" + + "caocaqcascaucaee" + + "ageaieakeameaoea" + + "qeaseaueaweacgae" + + "gaggaigakgamgaog" + + "aqgasgaugawgayga" + + "ahaAhaciaeiagiai" + + "iakiamiaoiaqiasi" + + "auiawiayiaekagka" + + "ikakkamkaokaqkas" + + "kaukawkagmaimakm" + + "ammaomaqmasmauma" + + "coaeoagoaioakoam" + + "oaooaqoasoauoawo" + + "ayokjckrckpdkjeh" + + "gfknfhufkjghghkl" + + "hhuhkjihgjknjhuj" + + "kjkkplkjmkrm") +r(5605, "N for Namida Traditional", layout="0acaaeaagaaiaaka" + + "amaaoaaqaasaauaa" + + "waayacgcaicakcbm" + + "ccoccqcasccucaee" + + "cgecieakeameaoea" + + "qeasecueaweacgae" + + "gcggcigakgcmgaog" + + "aqgasgcugawgayga" + + "ahaAhaciaeicgiai" + + "iakicmiaoicqiasi" + + "cuiawiayiaekcgka" + + "ikakkamkaokcqkas" + + "kcukawkcgmaimckm" + + "cmmbomaqmasmcuma" + + "coaeoagoaioakoam" + + "oaooaqoasoauoawo" + + "ayoikfikhiohioji" + + "sjisl") +r(5606, "Naoki Haga Traditional", layout="0acaaeaagaaiaaka" + + "amaaoaaqaasaauaa" + + "waayadgcaicakcdm" + + "caocaqcascaucaee" + + "dgeaiedkedmeaoec" + + "qecseaueaweacgae" + + "gdggaigakgdmgaog" + + "aqgasgaugawgayga" + + "ahaAhaciaeiagiai" + + "iakiamidoiaqiasi" + + "duiawiayiaekagkc" + + "ikckkamkdokdqkds" + + "kdukawkagmaimakm" + + "ammdomaqmasmduma" + + "coaeoagoaioakoam" + + "oaooaqoasoauoawo" + + "ayojidvrevjk") +r(5607, "Phoenix", layout="0aaaacaapaaraaEa" + + "aGaaebatbaCbaaca" + + "gcapcarcaAcaGcai" + + "daydakeboebqebse" + + "aweaafacfaefamfa" + + "ufaCfaEfaGfaggbp" + + "gbrgaAgaahaihamh" + + "auhayhaGhaeiakic" + + "picriawiaCiaajam" + + "jaujaGjbpkbrkacl" + + "aelaglailamlaula" + + "ylaAlaClaElakmbp" + + "mbrmawmacnafnamn" + + "aunaBnaEnaioaooa" + + "soayoacpafpaBpaE" + + "pakqawqhbbhFbhdc" + + "hDchfdhBdhhehzeh" + + "jfhxfhdghlghvghD" + + "ghfhhBhhhihnihti" + + "hzihjjhxjhdkhlkh" + + "vkhDkhflhnlhtlhB" + + "lhhmhzmhjnhxnhlo" + + "hvohnphtponfppfp" + + "rfotfoplorlvqivq" + + "lCqf") +r(5608, "Teotihucan", layout="0aaaacaaeaagaaia" + + "akaamaaoaaqaasaa" + + "acascaaeaseaagcg" + + "gckgcogasgaaicgi" + + "ckicoiasiaakaska" + + "amasmaaoacoaeoag" + + "oaioakoamoaooaqo" + + "asoajqhbbhdbhfbh" + + "hbhjbhlbhnbhpbhr" + + "bhbdhrdhbfhrfhbh" + + "hrhhbjhrjhblhrlh" + + "bnhdnhfnhhnhjnhl" + + "nhnnhpnhrnhjpocc" + + "oecogcoicokcomco" + + "ocoqcoceoqeocgoq" + + "gocioqiockoqkocm" + + "oemogmoimokmommo" + + "omoqmojovddvfdvh" + + "dvjdvldvndvpdvdf" + + "vffvhfvjfvlfvnfv" + + "pfvdhwfhvhhwjhvl" + + "hwnhvphvdjvfjvhj" + + "vjjvljvnjvpjvdlv" + + "flvhlvjlvllvnlvp" + + "lvjn") +r(5609, "Tower and Walls", layout="0ekadmaeoadqaesa" + + "dkccmccoccqcdscd" + + "aeecedeeegedieek" + + "ecmedoecqeesedue" + + "ewedyeeAedCedkgc" + + "mgcogcqgdsgekidm" + + "ieoidqiesi") +r(5610, "What a Pyramid", layout="0aaaacaaeaagaaia" + + "akaamaaoaaqaasaa" + + "uaawaaacaccbecbg" + + "cbicbkcbmcbocbqc" + + "bscaucawcaceaeeb" + + "geciedkedmecoebq" + + "easeaueaegbggdig" + + "bkgbmgdogbqgasga" + + "eibgidiibkibmido" + + "ibqiasiackaekbgk" + + "cikdkkdmkcokbqka" + + "skaukaamacmbembg" + + "mbimbkmbmmbombqm" + + "bsmaumawmaaoacoa" + + "eoagoaioakoamoao" + + "oaqoasoauoawo") +r(5611, "Flowers 2", layout="0aaiacgbciackadc" + + "adoaeiafabfcafea" + + "fmbfoafqahcahoai" + + "haijhjiakfakhakj" + + "aklhlghlihlkamda" + + "mfamhomhamjomjam" + + "lamnhnehnghnivni" + + "hnkhnmaobaodaofo" + + "ofaohoohaojoojao" + + "loolaonaophpchpe" + + "hpgvpghpivpihpkv" + + "pkhpmhpoaqbaqdoq" + + "daqfoqfaqhoqhCqh" + + "aqjoqjCqjaqloqla" + + "qnoqnaqphrchrehr" + + "gvrghrivrihrkvrk" + + "hrmhroasbasdasfo" + + "sfashoshasjosjas" + + "loslasnasphtehtg" + + "htivtihtkhtmauda" + + "ufauhouhaujoujau" + + "launhvghvihvkawf" + + "awhawjawlhxiayha" + + "yjazcazoaBabBcaB" + + "eaBmbBoaBqaCiaDc" + + "aDoaEgbEiaEkaGi") +r(5612, "Full Vision 3", layout="0aaeaagaaihbehbi" + + "acbhccacdacfhcga" + + "chacjhckaclacnhc" + + "oacpaeahebaecaee" + + "aegaeiaekhelaema" + + "gbhgcagdagfhggag" + + "hagjhgkaglagnhgo" + + "agphhehhiaieaiga" + + "iiainhioaiphjgak" + + "eakgakiaknhkoakp" + + "hlehliambhmcamda" + + "mfhmgamhamjhmkam" + + "lamnhmoampaoahob" + + "aocaoehofaogaoia" + + "okholaomaqbhqcaq" + + "daqfhqgaqhaqjhqk" + + "aqlaqnhqoaqphreh" + + "riaseasgasiasnhs" + + "oasphtgaueaugaui" + + "aunhuoauphvehvia" + + "wbhwcawdawfhwgaw" + + "hawjhwkawlawnhwo" + + "awpayahybaycayea" + + "ygayiaykhylaymaA" + + "bhAcaAdaAfhAgaAh" + + "aAjhAkaAlaAnhAoa" + + "AphBehBiaCeaCgaC" + + "i") +r(5613, "Lion 2", layout="0aapabiablhbphcf" + + "acghchhclacnocpa" + + "djodladpvdpheeae" + + "fheiaelvelhepCep" + + "ofihflCflafnofph" + + "gdagevgiagjoglag" + + "pvgphhiChiahlvhl" + + "hhpChphicaidoiih" + + "ilCilainoipvjiaj" + + "jojlajpvjpbkabkc" + + "hkiCkiaklvklhkpC" + + "kpolbolihllalnol" + + "pbmabmcvmiamjoml" + + "ampvmphnianlhnpo" + + "oiholaonoophpfap" + + "hapjappaqfhqiaql" + + "hqphrdarnasehsqh" + + "tcatpaudbumhuphv" + + "bcvgavqawccwlhwq" + + "hxbcxjaxpayccylh" + + "yphzbczgazqaAdbA" + + "mhAqhBcaBpaCehCp" + + "hDeaDgaDohEgaEia" + + "EmhEohFiaFkhFmhG" + + "k") +r(5614, "New Layout 2", layout="0CabCadCafacapca" + + "hccvccacepcehcgv" + + "cgheaveaaecpeche" + + "eveeaegpegCfaCfc" + + "CfeCfgagapgahgcv" + + "gcagepgehggvggCh" + + "aChcCheChghiavia" + + "aicpichievieaigp" + + "igakaqkahkcwkcak" + + "eqkehkgwkghmawma" + + "amcqmchmewmeamgq" + + "mgaoaqoahocwocao" + + "eqoehogwoghqavqa" + + "aqcpqchqevqeaqgp" + + "qgCraCrcCreCrgas" + + "apsahscvscasepse" + + "hsgvsgCtaCtcCteC" + + "tghuavuaaucpuchu" + + "evueaugpugawapwa" + + "hwcvwcawepwehwgv" + + "wgCybCydCyf") +r(5615, "Big X", layout="0aacaamhbchbmacb" + + "occacdaclocmacnh" + + "dbhddhdlhdnaeaae" + + "coedaeeaekoelaem" + + "aeohfchfehfkhfma" + + "gbagdogeagfagjog" + + "kaglagnhhdhhfhhj" + + "hhlaicaieoifaiga" + + "iioijaikaimhjehj" + + "ghjihjkakdakfokg" + + "akhokiakjaklhlfh" + + "lhhljameamgomgam" + + "iomiamkhnfhnhhnj" + + "aofoofaohoohaojo" + + "ojhpfhphhpjaqeaq" + + "goqgaqioqiaqkhrf" + + "hrhhrjasdasfosga" + + "shosiasjaslhteht" + + "ghtihtkaucaueouf" + + "augauioujaukaumh" + + "vdhvfhvjhvlawbaw" + + "doweawfawjowkawl" + + "awnhxchxehxkhxma" + + "yaaycoydayeaykoy" + + "laymayohzbhzdhzl" + + "hznaAboAcaAdaAlo" + + "AmaAnhBchBmaCcaC" + + "m") +r(5616, "Axis", layout="0bafcahbajbbdvbh" + + "bblcchCchbdcvdhb" + + "dmcehCehbfbvfhbf" + + "ncghahaahohiahio" + + "ajabjhajohkabkfb" + + "kjhkoalabldbllal" + + "ohmacmhhmoanaanc" + + "vnhanmanoiobcohi" + + "onapbwphapniqbcq" + + "hiqnaraarcvrharm" + + "arohsacshhsoatab" + + "tdbtlatohuabufbu" + + "jhuoavabvhavohwa" + + "hwoaxaaxocyhbzbv" + + "zhbzncAhCAhbBcvB" + + "hbBmcChCChbDdvDh" + + "bDlbEfcEhbEj") +r(5617, "Cobweb", layout="0aacaafhagaahoah" + + "haiaajaamacbhcca" + + "cdaclhcmacnadfhd" + + "gadhodhhdiadjaea" + + "aeohfaafcafeafha" + + "fkafmhfoagaogaag" + + "oogohhaahcahhahm" + + "hhoaiaoiaaiooioh" + + "jaajdajhajlhjoak" + + "aakoalealhalkama" + + "amoancanfhnganhh" + + "nianjanmaoahoboo" + + "gooihonaooopbapc" + + "bpgvpgbpivpiapmo" + + "pnaqahqboqgoqihq" + + "naqoarcarfhrgarh" + + "hriarjarmasaasoa" + + "teathatkauaauohv" + + "aavdavhavlhvoawa" + + "owaawoowohxaaxca" + + "xhaxmhxoayaoyaay" + + "ooyohzaazcazeazh" + + "azkazmhzoaAaaAoa" + + "BfhBgaBhoBhhBiaB" + + "jaCbhCcaCdaClhCm" + + "aCnaEcaEfhEgaEho" + + "EhhEiaEjaEm") +r(5618, "Pyramids", layout="0aaaaacaakaamhbb" + + "abeabgabihblacaa" + + "ccackacmhdbadead" + + "gadihdlaeaaecaek" + + "aemaffhfgafhahba" + + "heahiahlhibhiehi" + + "ihilajbojbajdoje" + + "ajfajhojiajjajlo" + + "jlhkbvkbhkevkehk" + + "ghkivkihklvklalb" + + "olbClbaldoleClea" + + "lfolgalholiClial" + + "jallollCllhmbvmb" + + "hmevmehmgvmghmiv" + + "mihmlvmlanbonbCn" + + "bandoneCneanfong" + + "anhoniCnianjanlo" + + "nlCnlhobvobhoevo" + + "ehoghoivoiholvol" + + "apbopbapdopeapfa" + + "phopiapjaploplhq" + + "bhqehqihqlarbare" + + "ariarlatfhtgatha" + + "uaaucaukaumhvbav" + + "eavgavihvlawaawc" + + "awkawmhxbaxeaxga" + + "xihxlayaaycaykay" + + "m") +r(5619, "Wicker", layout="0bafbakbbcbbhbbm" + + "bcebcjbdbbdgbdlb" + + "edbeibenbfabffbf" + + "kbgcbghbgmbhebhj" + + "bibbigbilbjdbjib" + + "jnbkabkfbkkblcbl" + + "hblmbmebmjbnbbng" + + "bnlbodboibonbpab" + + "pfbpkbqcbqhbqmbr" + + "ebrjbsbbsgbslbtd" + + "btibtnbuabufbukb" + + "vcbvhbvmbwebwjbx" + + "bbxgbxlbydbyibyn" + + "bzfbzkbAh") + +r(5620, "Big Square", name="Double Mahjongg Big Square", ncards=288, + layout="0daadacdaedagdai" + + "dakdcadccdcedcgd" + + "cidckdeadecdeede" + + "gdeidekdgadgcdge" + + "dggdgidgkdiadicd" + + "iedigdiidikdkadk" + + "cdkedkgdkidkkdma" + + "dmcdmedmgdmidmkd" + + "oadocdoedogdoido" + + "kdqadqcdqedqgdqi" + + "dqkdsadscdsedsgd" + + "sidskduaducduedu" + + "gduidukdwadwcdwe" + + "dwgdwidwk") +r(5621, "Rows", name="Double Mahjongg Rows", ncards=288, + layout="0daadacCaddaeCaf" + + "dagCahdaidakdcad" + + "ckeeadeceeeeegde" + + "ieekegaegkeiadic" + + "eieeigdiieikekae" + + "kkemadmcemeemgdm" + + "iemkeoaeokeqadqc" + + "eqeeqgdqieqkesae" + + "skeuaduceueeugdu" + + "ieukewaewkeyadyc" + + "eyeeygdyieykdAad" + + "AkdCadCcCCddCeCC" + + "fdCgCChdCidCk") +r(5622, "K 2", name="Half Mahjongg K 2", ncards=72, + layout="0aagabcabehbfobg" + + "hbhabiabkacgvcga" + + "dbidgadlaegvegbf" + + "aifgbfmaggbhaihg" + + "bhmaigbjahjgbjma" + + "kgokgblahlgblmam" + + "gbnaingbnmaogbpa" + + "ipgbpmaqgvqgarbi" + + "rgarlasgvsgatcat" + + "ehtfotghthatiatk" + + "aug") +r(5623, "Abstract", name="Half Mahjongg Abstract", ncards=72, + layout="0aaaaagabcabebdd" + + "adgadioedhehafch" + + "fdafeafhagahhaah" + + "dahgaiahjaojbbjc" + + "ajfakaalcamfamha" + + "nbhncandhngaogbo" + + "iapdhqdaqiarcord" + + "arehrihsdasgasia" + + "tdauaaufhvbavcav" + + "iawaawehxeaxiayc" + + "ayebyghzdaAdaAha" + + "BbaBfhCfaCiaDcaD" + + "eaDghDhaEaaEi") diff --git a/pysollib/ui/tktile/menubar.py b/pysollib/ui/tktile/menubar.py index 6aa63c0c..c09da8c9 100644 --- a/pysollib/ui/tktile/menubar.py +++ b/pysollib/ui/tktile/menubar.py @@ -967,7 +967,7 @@ class PysolMenubarTkCommon: self.tkopt.gameid) def _addSelectGameSubMenu(self, games, menu, select_data, - command, variable): + command, variable, short_name=False): # print select_data need_sep = 0 for label, select_func in select_data: @@ -981,7 +981,8 @@ class PysolMenubarTkCommon: menu.add_separator() need_sep = 0 submenu = MfxMenu(menu, label=label) - self._addSelectGameSubSubMenu(g, submenu, command, variable) + self._addSelectGameSubSubMenu(g, submenu, command, variable, + short_name=short_name) def _getNumGames(self, games, select_data): ngames = 0 @@ -1003,38 +1004,24 @@ class PysolMenubarTkCommon: mahjongg_games.sort(key=sort_func) # menu = MfxMenu(menu, label=n_("&Mahjongg games")) - - def add_menu(games, c0, c1, menu=menu, - variable=variable, command=command): - if not games: - return - label = c0 + ' - ' + c1 - if c0 == c1: - label = c0 + n, d = 0, self.cb_max + i = 0 + while True: + if self.progress: + self.progress.update(step=1) + columnbreak = i > 0 and (i % d) == 0 + i += 1 + if not mahjongg_games[n:n + d]: + break + m = min(n + d - 1, len(mahjongg_games) - 1) + label = mahjongg_games[n].short_name[:3] + ' - ' + \ + mahjongg_games[m].short_name[:3] submenu = MfxMenu(menu, label=label, name=None) - self._addSelectGameSubSubMenu(games, submenu, command, - variable, short_name=True) - - games = {} - for gi in mahjongg_games: - c = gi.short_name.strip()[0] - if c in games: - games[c].append(gi) - else: - games[c] = [gi] - games = list(games.items()) - games.sort() - g0 = [] - c0 = c1 = games[0][0] - for c, g1 in games: - if len(g0)+len(g1) >= self.cb_max: - add_menu(g0, c0, c1) - g0 = g1 - c0 = c1 = c - else: - g0 += g1 - c1 = c - add_menu(g0, c0, c1) + self._addSelectGameSubSubMenu(mahjongg_games[n:n + d], submenu, + command, variable, short_name=True) + n += d + if columnbreak: + menu.entryconfigure(i, columnbreak=columnbreak) def _addSelectPopularGameSubMenu(self, games, menu, command, variable): def select_func(gi):