├── .gitignore ├── LICENSE ├── README.md ├── logs ├── log_v1.txt ├── log_v2.txt ├── log_v3.txt ├── log_v4.txt ├── log_v5.txt └── log_v6.txt └── tetris ├── ai.py ├── field.py ├── genetic.py ├── gui.py └── tetris.py /.gitignore: -------------------------------------------------------------------------------- 1 | test.py 2 | 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | *.py[cod] 6 | *$py.class 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | env/ 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | downloads/ 18 | eggs/ 19 | .eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .coverage 43 | .coverage.* 44 | .cache 45 | nosetests.xml 46 | coverage.xml 47 | *,cover 48 | .hypothesis/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | 58 | # Flask stuff: 59 | instance/ 60 | .webassets-cache 61 | 62 | # Scrapy stuff: 63 | .scrapy 64 | 65 | # Sphinx documentation 66 | docs/_build/ 67 | 68 | # PyBuilder 69 | target/ 70 | 71 | # IPython Notebook 72 | .ipynb_checkpoints 73 | 74 | # pyenv 75 | .python-version 76 | 77 | # celery beat schedule file 78 | celerybeat-schedule 79 | 80 | # dotenv 81 | .env 82 | 83 | # virtualenv 84 | venv/ 85 | ENV/ 86 | 87 | # Spyder project settings 88 | .spyderproject 89 | 90 | # Rope project settings 91 | .ropeproject 92 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Florent THOMAS-MOREL 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tetris-AI 2 | 3 | ## Tetris Game 4 | 5 | We develop an AI for the Tetris Game. We fork the python Tetris from here: https://gist.github.com/silvasur/565419/7e044a90eb97eb67d600b2fb776000ba36f6fcc9. Our AI is inspired by this one: http://leeyiyuan.github.io/tetrisai/. 6 | 7 | We develop our own AI and plug it into the python Tetris. 8 | 9 | ## Genetic Algorithm 10 | 11 | We trained our AI using Genetic Algorithm and the Cross Entropy method. All of it is written in the ```genetic.py``` file that will train population. The logs of our different training are available in the ```logs``` folder. 12 | 13 | ```logs_v5.txt``` contains the logs of our lastest train using a limit of 500 pieces per game. We trained those population during about 4 days. 14 | 15 | ```logs_v6.txt``` contains the logs of our lastest train using a limit of 1000 pieces per game. We trained it non-stop during 2 weeks... 16 | 17 | In those two files, each line representing an individual is formated as following: 18 | 19 | ``` 20 | [score, [list of weights for each of the 34 heuristics]] 21 | 22 | Ex: 23 | [399000, [-2.100689734519437, -6.296337703002559, -3.6053570383018902, -5.174030015302046, -7.094388505722243, -7.163019117701906, -4.155623378939865, -7.470271464077066, -6.837060809015177, 4.055711464398931, -23.189118507055124, -17.22774140164603, -6.636151504678342, 3.169793808221626, -18.464118325281074, -3.892389642098916, -6.496728529483608, -9.168122545328442, -3.8031204486650156, -1.1073865709954989, -13.649143804127453, -4.615274667006191, 1.1085085503624723, -3.115040621666638, -6.324824019458616, -6.621636476173672, -3.356875697348909, -4.568217955358195, -7.329346044325321, -1.8518026355838344, 9.84688820557799, -8.194108483773855, -9.07005038806947, 3.149233388252534]] 24 | ``` 25 | 26 | The score is computed using the following formula : 27 | 28 | ``` 29 | nb_line_completed*1000 + nb_piece_dropped 30 | ``` 31 | -------------------------------------------------------------------------------- /logs/log_v2.txt: -------------------------------------------------------------------------------- 1 | indiv. 99/100[5390, [-0.3828068745842854, 0.8834206037839576, -0.6972950114617156, 0.8839005761277721, 0.8877581238998313, -0.003268484202391564, -0.9341290707513641, -0.3664483015689126]] 2 | [4644, [-0.4229038665408116, 0.5477192101104911, -0.7532125688607647, -0.07281721641270744, 0.32067238601526005, 0.7916193624131607, -0.6272886605631596, -0.4588381963072383]] 3 | [4473, [-0.3865061853364731, 0.8891170727835476, -0.4721859701110791, 0.5155906884679973, 0.9883808408076384, 0.7892522759858482, 0.8309452653103315, 0.04658334711184464]] 4 | [4172, [-0.07541941597291935, 0.7360880575686066, -0.8207083799449693, 0.8354074283854089, -0.7339014224467524, -0.22973012068177256, 0.5566390957841771, -0.06058651940094917]] 5 | [4042, [-0.7556018747575639, 0.03965320894354818, -0.19044167845443294, 0.12392409521762637, 0.18608834551947417, -0.9878688753448852, -0.36645187781377464, -0.3613958644428601]] 6 | [3925, [-0.9080894634252756, 0.09612747856842785, -0.9641636183159101, -0.37353868198274465, 0.23603009637249617, 0.3104049349214655, 0.7497625513040991, 0.06212739605929629]] 7 | [3920, [-0.2653910966618205, 0.04245128865569714, -0.46185436028171956, -0.19622812343839757, -0.9034168829747204, 0.29031048016620176, -0.2816630330573686, 0.7769874686226073]] 8 | [3678, [-0.15579286804354608, 0.47256591841146944, -0.4635165802322816, 0.6639502599045826, -0.011734114389662098, 0.3057718014234443, 0.4080646977301656, -0.21944350827374026]] 9 | [3577, [-0.25005921297753586, 0.023451767830948267, -0.22374022198804955, -0.4876367917705844, -0.7746071045538221, -0.5822421022465591, -0.17628255067509224, -0.6923118165436841]] 10 | [541, [-0.6440259852677928, -0.09753145822896458, -0.6369462623369755, -0.018406636305941637, 0.7896874369166103, 0.28290712725050393, 0.4970774350898792, -0.20408633717803015]] 11 | [537, [-0.14439220051800672, -0.24017320310418522, -0.8922811975347984, 0.9378201093138878, 0.41474458885487975, -0.9639638384513884, -0.5989350929414086, -0.497388296525199]] 12 | [533, [-0.6965122143834546, -0.14343912552106786, -0.2187890336043321, -0.7845322311961824, -0.0547806408186835, 0.5036337189478961, 0.0010554705028913425, 0.313959211094075]] 13 | [531, [-0.7049724866518341, -0.054946499316886, -0.7533117491717523, -0.7620391851895005, -0.11713637930173348, -0.39573650624443557, -0.3227127987704459, -0.6235385132168347]] 14 | [517, [-0.07703528171625673, -0.5107987697121619, -0.7680392908237512, -0.6889456496292592, 0.47188235073031404, -0.07932831503820625, 0.23781310550841517, -0.2055051918240598]] 15 | [503, [-0.7773131302667398, -0.3351038764065113, -0.8706006128505308, -0.6121539049998197, -0.9432585397176962, -0.8020115289765901, 0.11244971634034373, 0.5613199623163254]] 16 | [500, [-0.028897847635968033, -0.3622028570666733, -0.45063228111378173, 0.4595833757984573, -0.6868594473884502, -0.7709897772824448, 0.6759700085043099, -0.9682983458103633]] 17 | [488, [-0.31677842388147615, -0.7888533359694805, -0.6737103410175087, 0.896461574179249, 0.15699440943106913, -0.10626133634227597, -0.966239769363167, 0.03443624137236734]] 18 | [481, [-0.8001433645728164, -0.592241792797936, -0.6146646285936237, 0.5484171776664297, -0.9782087793453267, -0.6245530372948507, 0.8271871856515352, 0.11773686533213601]] 19 | [473, [-0.031646078739759, -0.42172581333421144, -0.39925599881194085, 0.3929826132882688, 0.48394652377311487, 0.7176547506244255, 0.6238005105493623, 0.2016004172399899]] 20 | [465, [-0.2110611156956026, -0.5714491153905445, -0.1033282520678569, 0.6706979763026382, -0.7446123139911704, 0.6386948473817924, -0.12154391390515151, -0.11646337167658105]] 21 | [392, [-0.860457248041191, 0.6492793286618654, 0.9956840661641129, -0.8036329346132756, -0.19105967731629558, -0.6963916750579751, 0.04565071110759966, 0.30039172064156716]] 22 | [387, [-0.7804161802368161, 0.6410156070096855, 0.9680055562042698, -0.4476461537238192, 0.3320191944091673, 0.2093067641557831, 0.7500356476213701, -0.018211247063561586]] 23 | [383, [-0.08810736067857716, 0.4207710174734809, 0.33309654983741677, -0.5955341744516509, 0.42405614896313937, -0.023683427182395578, -0.3222271048748422, 0.06531203571930111]] 24 | [380, [-0.9072372085661982, 0.044771693096685494, 0.33918011562382144, -0.7870028413803469, 0.3987256987772303, -0.12335900400463595, -0.5964925844944302, 0.6388337594048219]] 25 | [379, [-0.646616450382423, 0.7138088866788155, 0.8818171406627455, 0.4466257608164277, 0.7343371405479575, -0.2372504346825257, -0.03619723217861459, -0.9185015466984523]] 26 | [373, [-0.5619745653478323, 0.4942833260598649, 0.6961685898041541, -0.8515571461818088, 0.8308214443087685, 0.04922791716567132, 0.5541852888694947, 0.6635878516841287]] 27 | [370, [-0.5225211525869027, 0.4303844193934172, 0.7793985662000278, 0.34718287650980884, -0.5061615346039392, 0.3496704445944079, -0.13649658788448904, -0.2493442597973312]] 28 | [360, [-0.4193700424086013, 0.7277348948292595, 0.08823077496651499, -0.655981061894862, -0.09975407695184679, 0.26751075150239667, -0.4393800825002807, 0.9253872041956843]] 29 | [357, [-0.6745336505746868, 0.1908606630255918, 0.9154128361666583, 0.9788484195449638, -0.3521410972244572, -0.5987215658502991, 0.1576303478445753, -0.007366379994058425]] 30 | [345, [-0.8076145724745298, 0.7593084769120466, 0.8988131689163386, 0.33196040267597593, -0.7407251589331134, -0.0031736745293748925, -0.015376189743141921, 0.0504472201757622]] 31 | [344, [-0.02237027355046517, 0.657966023163606, 0.5921617707141011, 0.7603713037353994, -0.06222656883440991, 0.6574126283645452, -0.5982641944734302, 0.7791682692754263]] 32 | [340, [-0.434641030397267, 0.9003752099491649, 0.14750447454440296, 0.07003772148130571, 0.7775419936963297, 0.8462709950035241, 0.35580848144464117, -0.8721468581922611]] 33 | [334, [-0.12353498778377503, 0.9277548235291693, 0.1946562922781485, 0.10338282451660197, 0.0625797863592108, -0.26416966646661844, -0.39763298090626376, 0.49104263235505363]] 34 | [324, [-0.9482656864350907, 0.15270182208726468, 0.9623669813759359, -0.28931094001882474, 0.728341075198466, -0.9147545642011075, 0.9205639811909185, 0.5474417634151891]] 35 | [315, [-0.8176760619294232, 0.5612153016546408, 0.8185775311994035, -0.6077881338943631, -0.5486424812910671, -0.7861868946381667, 0.0531253986082143, 0.8675982711864838]] 36 | [313, [-0.6237044203838764, 0.041232439370151086, 0.14346533129659034, 0.07594719597260902, -0.32396736094514567, 0.09752575844131428, 0.09539591298136041, 0.09364800745333102]] 37 | [304, [-0.09693145498383471, -0.38797511996640877, 0.3425536448237696, 0.20133692555385574, -0.8923710579615178, 0.48833422333466947, 0.7370488938356166, -0.15280886733092935]] 38 | [293, [-0.9982946059507993, -0.5302309473408138, 0.963295092049216, -0.37351007088262, 0.1019571932674852, -0.9910621418816827, -0.7121918546825574, 0.1863125029965158]] 39 | [291, [-0.8617301816645078, -0.23938028930217037, 0.6291303682723266, -0.3274398063704942, -0.05174614063975613, 0.2671055419404966, 0.3593664239231573, 0.3530506143634944]] 40 | [289, [-0.2003334893349824, -0.7927938235340415, 0.8627832089511895, -0.15491846051579783, 0.9647560521302752, -0.7361777645080751, 0.7917532676092569, 0.7782070638493441]] 41 | [288, [-0.24558305670112857, -0.2650621620021907, 0.6712181031739284, 0.8910029030842148, 0.23868185755555693, 0.5043220041337946, 0.5640877380665554, 0.37215606174372784]] 42 | [282, [-0.040037214165321355, -0.6561318567116088, 0.875974621134789, -0.2789075003766506, -0.8000364710839829, -0.11752742285218298, 0.5628632654109471, -0.9173945171514852]] 43 | [280, [-0.7103024225734578, -0.45637425652178387, 0.7432822271943189, 0.28789810816399064, -0.9751506602774429, 0.9418890347939222, 0.12748322472157736, -0.8334995698828469]] 44 | [279, [-0.02572450347674171, -0.10097368205820856, 0.7895721050430964, 0.3749732315597034, 0.5098791802627691, 0.37223953040064384, -0.7848241653089918, -0.5146276656292736]] 45 | [277, [-0.2627011074490131, -0.6210514462576069, 0.09305807421610268, -0.8330513743182362, -0.666177108153698, -0.5403377880301132, -0.6374607669917538, 0.979813147710576]] 46 | [275, [-0.6546116164596119, -0.5845783863149319, 0.31757986307145614, -0.35244938468460574, 0.340964202991926, 0.5088810777040571, -0.4069180073428731, 0.5019294391257334]] 47 | [193, [0.984354924335838, 0.9051906887338879, -0.4687203146834038, 0.3754142097833635, -0.6665739802684918, 0.12386680270501049, 0.5624260646849408, 0.6367385879468697]] 48 | [191, [0.885143140540618, 0.8323243926769734, -0.7576436250561089, 0.53957182227212, -0.5743058773861098, -0.8136568291599782, 0.18955812989598497, -0.8429394156805845]] 49 | [190, [0.318020458447942, 0.5823574296621827, -0.5618969189269687, -0.6702049585116536, -0.8820796612402524, 0.641529007358111, 0.2008892118387715, -0.6618339056797995]] 50 | [189, [0.49727466319761016, 0.16257256571442036, -0.13809109930473507, -0.12468975408836314, -0.008704141040685176, -0.03594150731158652, -0.4438471800221233, 0.5745882654333965]] 51 | [189, [0.5453405968346785, 0.15319546716278953, -0.8751332891474679, -0.16984706950568218, -0.49819628562864704, -0.7214851562298059, -0.8922188054167302, -0.26509890702709815]] 52 | [187, [0.6817490871303331, 0.3119063485911755, -0.6406513028750955, 0.5805789642056727, -0.6393822970844933, 0.27553101518897205, -0.9006989274880404, 0.8142052779932925]] 53 | [186, [0.9307210385147895, -0.8769874673053863, -0.8412296643226842, -0.5274350226715219, -0.7125456038568887, -0.4822177946758077, -0.19756250891309302, -0.4137042034575742]] 54 | [186, [0.8946299654297951, 0.6065139552080383, -0.30779097202001426, -0.3070935554191785, -0.4352071346175457, -0.936817907770342, 0.989401430642306, -0.5748984889995976]] 55 | [186, [0.39424937048143516, -0.5915438538011575, -0.490777237838788, -0.9267325492959115, -0.2708499106752782, 0.4269516443993566, -0.4927954243166357, 0.2757979232279877]] 56 | [185, [0.02063918419932742, 0.6689938339688641, -0.6973240949087269, -0.9581663517418815, -0.318735408997191, 0.9583854905809164, 0.4500432407000534, 0.7508258455424575]] 57 | [185, [0.25500353267367215, 0.6823363816556482, -0.22951955630434195, -0.8025131119968845, -0.9139821016290961, 0.3087546900196907, -0.4099813826823, 0.6685794040395778]] 58 | [183, [0.46807534904629944, -0.8213898586567425, -0.6060086031157412, 0.7985599826342094, -0.6377102285029452, -0.7522878584925867, 0.5843253997159108, 0.20369845845561452]] 59 | [183, [0.8836344579902953, 0.5322609211800418, -0.09273788588673493, 0.22241706827794894, 0.14897589722583504, -0.3869332155235097, 0.5967169815289521, -0.8025502488289027]] 60 | [182, [0.12412754193042042, 0.878683002467318, -0.901154445390413, -0.5559658578939306, -0.594639051585395, 0.4265958733321549, -0.47309756160428074, 0.22155765171018693]] 61 | [181, [0.5968928891128573, -0.40046434490927485, -0.8684113697270366, -0.7322428934032343, -0.3732755570324795, 0.010067805566213783, 0.7696889502924222, 0.3189715110420219]] 62 | [181, [0.9773827869617417, -0.6746385215637654, -0.8648484124446676, -0.6824467904804363, -0.17838045261554836, -0.9643278008510847, -0.4595068585976285, -0.15846051596528143]] 63 | [181, [0.37077559843231245, -0.9880529635586275, -0.6478611716206033, 0.2152878407714378, -0.9831675801108184, -0.3739247983924501, -0.541142737324892, -0.07956712604469507]] 64 | [180, [0.5070369462479427, 0.9943861226464288, -0.057373794882806806, 0.874545259922838, 0.39383836301803843, 0.4465296046402125, 0.38525228876922357, -0.15615784064302374]] 65 | [180, [0.03261147850712187, -0.26173610761082955, -0.6677156973401801, -0.911401891921513, 0.619724965567017, 0.4563267737371939, 0.08044524120466034, 0.5209694566496368]] 66 | [179, [0.6395741540947475, 0.6889760341453304, -0.5087741174292488, -0.2787626098878919, 0.8918321413405557, -0.7928923403074852, 0.6279083047799292, -0.5167347536951215]] 67 | [179, [0.9164294831948303, 0.07142047806043195, -0.9905051713367841, -0.4614146242892563, 0.6882444751608214, 0.006939954108320601, -0.8843122578183968, 0.9314014171941596]] 68 | [179, [0.4434447093614815, -0.24608032630298848, -0.2581380412846046, -0.3487191098229787, -0.5893435435513019, -0.24471915731669447, -0.3459408819355889, 0.27596751459365176]] 69 | [178, [0.07128490662230469, -0.37575320062811857, -0.21499529845669985, 0.3307242415467222, 0.6528091844702466, 0.010914644304252263, -0.18828621248840594, -0.2253644180872898]] 70 | [169, [0.45452448611881713, -0.3165282186830982, 0.8116334733190831, 0.7129564876750765, -0.6109459948670233, -0.011646903488317095, -0.9957789399374166, 0.47929804359374795]] 71 | [168, [0.4335506094017145, 0.6896657215044486, 0.7431407663200131, -0.5999571843500537, -0.22443887280272068, -0.7138168140628556, -0.15871145656981445, -0.3107330915014219]] 72 | [167, [0.7797394454894355, 0.1465421858989806, 0.5853983308247546, 0.3213923145435482, 0.8278039295814659, -0.2208002433237688, -0.8054248927519054, -0.9190927483054223]] 73 | [166, [0.3944019434726853, -0.7842495403639396, 0.5673126971747762, 0.8752516195265914, -0.5920854467386985, -0.5040642564751778, 0.31302590589500845, 0.3106067077430428]] 74 | [166, [0.38836857868938024, -0.0980204704519978, 0.634205545254666, -0.42241188160364884, -0.4507537302239424, -0.7210149262443104, 0.8273873071681719, -0.43857848237272523]] 75 | [166, [0.38737166200430684, -0.5629413103576724, 0.738162251087646, -0.26079819485711475, -0.6572673282455017, -0.019064525114563358, 0.6680404894885335, -0.4753956512749342]] 76 | [166, [0.467000756955283, 0.14056991144012398, 0.21560362565288926, 0.9707345590841296, -0.7888384341037107, 0.8587635285250055, -0.9902173701970487, 0.8933614535745347]] 77 | [165, [0.5931628677617649, -0.4036944961773963, 0.5449075118522739, -0.28875890055062525, -0.13525238933559924, -0.010323661841388443, -0.6093986874714885, -0.03617234408332548]] 78 | [165, [0.5949572944871062, 0.7282261938100372, 0.8348045442162173, 0.3141711198776642, 0.31014701847953297, -0.9885986919007685, -0.905372489220152, 0.02823441239167712]] 79 | [164, [0.1795608021405779, -0.2303532705015252, 0.4558897476901911, -0.7699982989242722, -0.5500551454389355, -0.8472064403819197, -0.4005372015449691, -0.5715818322177555]] 80 | [164, [0.746502466979067, 0.3018603243235032, 0.9058398718034544, -0.677741876465856, 0.3083603669518702, -0.13076073335181237, 0.48949636105706396, 0.42930414997288735]] 81 | [164, [0.016333892309499554, -0.10566738243715013, 0.7395324761871782, 0.8733330771467418, -0.9306520706240857, 0.671515000308903, 0.04711549480427446, 0.2758003493405594]] 82 | [164, [0.07187252675044542, -0.15288802322732264, 0.6115057042865286, -0.8880959623394613, -0.9521829119414955, 0.4078674692385127, 0.2783429358393532, 0.8897752212426444]] 83 | [164, [0.49395202904477387, 0.7677654957716897, 0.05719042314675926, 0.6562301880955921, -0.7619134483687984, 0.47002782263089027, 0.5628440038258025, 0.5304995196086513]] 84 | [163, [0.9116408391491235, -0.011748721273909135, 0.1443035917315021, -0.715490017478541, -0.949425013548373, 0.769816130033536, -0.5748787958802248, 0.6798934891710524]] 85 | [163, [0.7758696176269999, 0.11963372501923697, 0.51543462873174, 0.9758328593605379, -0.277565544895644, -0.08481365495622417, 0.6672558463813207, 0.3778716167993763]] 86 | [163, [0.21424018537364642, -0.5946402407059634, 0.9682533907897664, 0.8299589217263776, 0.9804233386290611, -0.8176158372712823, -0.24597187680680777, -0.12800596085571514]] 87 | [163, [0.25324867862728406, 0.2938585571350034, 0.3252777485547358, -0.462627099672418, 0.49766275107769986, 0.8561396775190928, 0.7206889425854448, 0.6298607513530994]] 88 | [163, [0.8067341787528386, 0.5537972602034773, 0.9426595718330446, 0.6876311671837572, -0.46956844804847364, 0.8185874908725448, 0.1775314001204078, -0.29710855722356677]] 89 | [163, [0.47141460625260034, 0.38518337861661434, 0.09197315502345949, 0.4565193727555741, 0.607442646097226, 0.291294825411232, -0.5858815940803432, 0.6025353968164029]] 90 | [162, [0.319964838210377, -0.4768725149950488, 0.029660266349904818, 0.8206404230256048, 0.7038106844750263, -0.1770452774232747, -0.5608755537046572, -0.3632396846790529]] 91 | [162, [0.2564587364884159, 0.4352033870124099, 0.5301171924061707, -0.9954298959834329, -0.16194569536109538, -0.7776777583932917, -0.43890051757823567, 0.21357712193228684]] 92 | [162, [0.13280026685597823, 0.08732594579525554, 0.6056101667321403, -0.16665587285748495, 0.4724210678637095, 0.9549294769931442, 0.23206880295173082, 0.39052831104316343]] 93 | [160, [0.093520476122398, -0.6543283909384063, 0.162485582547355, -0.1859984562762027, 0.9955287831772375, -0.17118628555983917, 0.06928417402731113, 0.5814748075865883]] 94 | [160, [0.34885762742599136, 0.34594168139272763, 0.8630096174185362, -0.08946147502636181, 0.4091512933518453, 0.03812066256631086, 0.6501801254795179, -0.5239395430469391]] 95 | [160, [0.6910354242972794, -0.07519646200835006, 0.5352183214401258, -0.4566283331339236, -0.8000418978983577, -0.4025294605848939, 0.6012455436569322, 0.2903057707146679]] 96 | [159, [0.8452588786394453, 0.28418012505441004, 0.783088497008467, -0.9383913650144411, 0.6356508509891199, -0.6224829013622646, -0.42345450546267394, 0.3224906627699313]] 97 | [158, [0.5141273171492733, -0.9819433792769707, 0.5616764422788827, 0.5297130002601915, -0.8490089570406281, -0.8733227252837927, 0.9572642097045863, 0.01601737141857007]] 98 | [158, [0.220268169535365, -0.42122687418805915, 0.32776989273678336, 0.4272278956779716, 0.5033414176870683, 0.07700179175893185, 0.1150567074223181, 0.28520996817875477]] 99 | [157, [0.7010662596545312, 0.8801735991167079, 0.8002123479834085, 0.9067189887413438, -0.720461199118275, -0.039703366270115614, 0.31968037123401793, -0.02373074962000654]] 100 | [155, [0.7970810808971724, -0.3628330522495773, 0.13795396499624735, 0.9945747270215457, 0.5623633584232641, 0.13451890737248884, -0.004523104950255652, -0.7436143975980318]] 101 | 10 102 | 103 | 104 | --- Batch 1 --- 105 | 106 | indiv. 99/100[5249, [-0.25005921297753586, 0.5477192101104911, -0.22374022198804955, -0.9352582178364708, 0.32067238601526005, -0.5822421022465591, -0.2509408647919682, -0.6923118165436841]] 107 | [5086, [-0.02015510989893632, 0.5477192101104911, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, -0.4588381963072383]] 108 | [4962, [-0.2653910966618205, 0.04245128865569714, -0.46185436028171956, -0.19622812343839757, -0.9034168829747204, 0.3104049349214655, 0.7497625513040991, 0.7769874686226073]] 109 | [4880, [-0.3865061853364731, 0.8891170727835476, -0.9641636183159101, -0.37353868198274465, 0.23603009637249617, 0.7892522759858482, 0.7497625513040991, 0.06212739605929629]] 110 | [4848, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.18608834551947417, -0.4226504739875223, -0.36645187781377464, -0.4588381963072383]] 111 | [4803, [-0.02015510989893632, 0.09612747856842785, -0.9641636183159101, -0.9352582178364708, 0.23603009637249617, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 112 | [4747, [-0.15579286804354608, 0.47256591841146944, -0.4635165802322816, 0.6639502599045826, -0.011734114389662098, -0.39757508703890787, -0.27777263434207256, 0.6208140616608147]] 113 | [4732, [-0.2653910966618205, 0.8891170727835476, -0.4721859701110791, -0.19622812343839757, 0.9883808408076384, 0.29031048016620176, 0.8309452653103315, 0.04658334711184464]] 114 | [4731, [-0.3828068745842854, 0.8834206037839576, -0.6972950114617156, 0.8839005761277721, 0.8877581238998313, -0.003268484202391564, -0.9341290707513641, -0.3664483015689126]] 115 | [4722, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, 0.8333558230317624, 0.024485916975683253, 0.09410893572315127, 0.7493951287764098, 0.32441492658921844]] 116 | [4685, [-0.3865061853364731, 0.8891170727835476, -0.4721859701110791, -0.9471027728872461, 0.9883808408076384, 0.7892522759858482, 0.8309452653103315, 0.04658334711184464]] 117 | [4683, [-0.4229038665408116, 0.5477192101104911, -0.9641636183159101, -0.07281721641270744, 0.23603009637249617, 0.7916193624131607, 0.7497625513040991, -0.4588381963072383]] 118 | [4607, [-0.02015510989893632, 0.5477192101104911, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, -0.4588381963072383]] 119 | [4555, [-0.07541941597291935, 0.47256591841146944, -0.4635165802322816, 0.8354074283854089, -0.011734114389662098, 0.8340284347935119, 0.4080646977301656, -0.06058651940094917]] 120 | [4544, [-0.7556018747575639, 0.03965320894354818, -0.6062855628188946, -0.46338293737099256, 0.18608834551947417, -0.9878688753448852, -0.5227487439554726, 0.31751961680036467]] 121 | [4421, [-0.6536488154128766, 0.2651456087101012, -0.6583236806631356, 0.627771722917619, 0.07322438522771457, 0.34092459704745437, 0.12644737020870367, 0.7880666672518781]] 122 | [4368, [-0.3828068745842854, 0.8834206037839576, -0.7532125688607647, -0.07281721641270744, 0.8877581238998313, 0.7916193624131607, -0.6272886605631596, -0.4588381963072383]] 123 | [4318, [-0.2653910966618205, 0.04245128865569714, -0.4635165802322816, 0.6639502599045826, -0.9034168829747204, 0.29031048016620176, -0.2816630330573686, -0.4522193496929148]] 124 | [4306, [-0.5549675837959644, 0.6108124722095132, -0.7034049268883462, -0.897359727321055, 0.6884451355775183, 0.6824532600795494, -0.8871593717153521, 0.9257397960985916]] 125 | [4211, [-0.15579286804354608, 0.47256591841146944, -0.4635165802322816, 0.6639502599045826, -0.011734114389662098, -0.39757508703890787, -0.27777263434207256, 0.6208140616608147]] 126 | [4192, [-0.7556018747575639, 0.03965320894354818, -0.8207083799449693, 0.12392409521762637, -0.7339014224467524, -0.22973012068177256, -0.36645187781377464, -0.06058651940094917]] 127 | [4143, [-0.02015510989893632, 0.5477192101104911, -0.7532125688607647, -0.9352582178364708, 0.7896874369166103, 0.28290712725050393, -0.2509408647919682, -0.20408633717803015]] 128 | [4143, [-0.07541941597291935, 0.7360880575686066, -0.4635165802322816, 0.6639502599045826, -0.7339014224467524, 0.3057718014234443, 0.4080646977301656, -0.06058651940094917]] 129 | [4141, [-0.15579286804354608, 0.8891170727835476, -0.4635165802322816, 0.6639502599045826, 0.9883808408076384, 0.7892522759858482, 0.8309452653103315, -0.21944350827374026]] 130 | [4094, [-0.1297733454860699, 0.38416685069882384, -0.636685721972293, 0.7886488584533329, 0.9272978102889347, -0.9897602808355697, 0.997925624982579, -0.9353871678703456]] 131 | [4051, [-0.2653910966618205, 0.04245128865569714, -0.3623796245194526, -0.19622812343839757, -0.9034168829747204, 0.29031048016620176, -0.2816630330573686, -0.4522193496929148]] 132 | [4046, [-0.7556018747575639, 0.03965320894354818, -0.6062855628188946, -0.46338293737099256, 0.18608834551947417, -0.9878688753448852, -0.5227487439554726, 0.31751961680036467]] 133 | [3992, [-0.3865061853364731, 0.8891170727835476, -0.4721859701110791, -0.9471027728872461, 0.9883808408076384, 0.7892522759858482, 0.8309452653103315, 0.04658334711184464]] 134 | [3885, [-0.4229038665408116, 0.5477192101104911, -0.7532125688607647, -0.07281721641270744, 0.32067238601526005, 0.7916193624131607, -0.6272886605631596, -0.4588381963072383]] 135 | [3821, [-0.7556018747575639, 0.03965320894354818, -0.19044167845443294, 0.6639502599045826, 0.18608834551947417, 0.3057718014234443, -0.36645187781377464, -0.21944350827374026]] 136 | [3818, [-0.2653910966618205, 0.04245128865569714, -0.3623796245194526, -0.19622812343839757, -0.9034168829747204, 0.29031048016620176, -0.2816630330573686, -0.4522193496929148]] 137 | [3638, [-0.2653910966618205, 0.47256591841146944, -0.4635165802322816, -0.19622812343839757, -0.9034168829747204, 0.3057718014234443, -0.2816630330573686, -0.21944350827374026]] 138 | [581, [-0.2960927754865812, -0.791656156285699, -0.7640943419324817, -0.7992001276363863, 0.5314023615036023, -0.561721476575729, 0.8294919649226575, 0.5239076704047994]] 139 | [545, [-0.9080894634252756, -0.24594598637090503, -0.9641636183159101, -0.37353868198274465, 0.23603009637249617, 0.3104049349214655, 0.7497625513040991, -0.6899427955710098]] 140 | [531, [-0.7954756280848307, -0.6439730524259435, -0.6236179052370256, -0.8253986173471095, -0.6843427347434312, -0.04147123844674816, -0.10781099726943877, 0.9247840696245193]] 141 | [518, [-0.25005921297753586, -0.00019340145662716246, -0.6972950114617156, 0.8839005761277721, -0.7746071045538221, -0.5822421022465591, -0.17628255067509224, 0.36585009002682756]] 142 | [504, [-0.9080894634252756, -0.24594598637090503, -0.9641636183159101, -0.37353868198274465, 0.23603009637249617, 0.3104049349214655, 0.7497625513040991, -0.6899427955710098]] 143 | [502, [-0.5303473535039844, -0.09753145822896458, -0.6369462623369755, 0.6950792447770602, 0.7896874369166103, -0.578726008099469, 0.4970774350898792, -0.20408633717803015]] 144 | [501, [-0.8562112883568855, -0.1442283075020283, -0.3630989091433354, 0.16812887332106086, -0.4004785399145179, 0.6403236088239375, -0.2598342450443658, -0.15671400408363123]] 145 | [494, [-0.23761436803338776, -0.46328908896000875, -0.42429938195563643, -0.514891105948744, -0.5620561384125182, -0.31010605084487564, -0.1951287967788935, 0.8765617775040995]] 146 | [483, [-0.6440259852677928, -0.09753145822896458, -0.6369462623369755, 0.6639502599045826, -0.011734114389662098, -0.39757508703890787, 0.4970774350898792, -0.20408633717803015]] 147 | [482, [-0.020123682224355566, -0.7032998198460052, -0.9537080075585336, 0.25500220957874453, -0.6110967687535929, 0.8230072749679924, -0.12378497826059509, -0.4841443145738502]] 148 | [481, [-0.5303473535039844, -0.09753145822896458, -0.6369462623369755, 0.6950792447770602, 0.7896874369166103, -0.578726008099469, 0.4970774350898792, -0.20408633717803015]] 149 | [479, [-0.18835270978235985, -0.6829104816822458, -0.9203367982765138, 0.7585111701814387, -0.32532403924674913, -0.5901156879615845, 0.5410017215370324, 0.03218744090916381]] 150 | [479, [-0.24170424130961798, -0.8350056222715248, -0.5763080023578397, -0.3125954083226261, 0.9801940899451034, -0.55362470400945, -0.0008439435669858053, -0.44133810250477]] 151 | [469, [-0.0574682741746424, -0.08184289127868749, -0.18061893689240138, -0.3556759128612741, -0.08088484658597239, 0.9864563474083914, 0.39455781493952835, -0.6612178168276961]] 152 | [462, [-0.5201640125781917, -0.46062239586850784, -0.6363122230619658, -0.7261643171145096, 0.9768392954914165, -0.28513047387522383, -0.5877160186045087, 0.6198488675639937]] 153 | [407, [-0.10553691138353627, 0.4546098889143593, 0.7736285750982836, -0.796084908690659, -0.8141109067894603, 0.24691771501072135, 0.28163012312742497, -0.8768556964990044]] 154 | [391, [-0.2034991884748072, 0.7270699501372884, 0.08744937878119785, -0.14712449537807393, 0.1679350464317435, -0.8236071471223378, -0.45040515452584673, 0.12692194631886355]] 155 | [391, [-0.639551765959486, 0.9601985659079684, 0.043729095561021, -0.08869671945144808, 0.2521019072612083, -0.8625481767492849, 0.992302885109116, -0.6093060641976196]] 156 | [390, [-0.5276028060880122, 0.023072047755499536, 0.6029290992096439, -0.9748186366652738, -0.8624619478272573, -0.6526953856162783, -0.9086979907219304, -0.11531820290985828]] 157 | [385, [-0.910320671948676, 0.2632032231980552, 0.6355228152636814, 0.7499851328326845, -0.6763868272906275, 0.4558878493445737, 0.483063614320004, -0.04607764445424367]] 158 | [360, [-0.07541941597291935, 0.7360880575686066, 0.11016034527401763, 0.8354074283854089, -0.7339014224467524, 0.8340284347935119, 0.5566390957841771, -0.06058651940094917]] 159 | [352, [-0.45573084803059305, 0.6492279519357718, 0.7234301598582951, 0.10221244463471457, 0.41808533972427675, 0.20241712685540003, -0.6107282525180471, 0.21133899710578374]] 160 | [322, [-0.72693655237992, 0.7508281975049267, 0.8112170291146688, 0.6353829037992145, -0.15035813715587665, 0.29937685047950713, 0.17621652798915544, 0.40024277437816025]] 161 | [315, [-0.13231966415593144, 0.9636876703430184, 0.06945616773025942, -0.20691103848903936, -0.5075100196872064, 0.37489148496066305, -0.8542709881766997, 0.891977372835679]] 162 | [312, [-0.07541941597291935, 0.7360880575686066, 0.11016034527401763, 0.8354074283854089, -0.7339014224467524, 0.8340284347935119, 0.5566390957841771, -0.06058651940094917]] 163 | [301, [-0.4190779423393387, -0.48921774190923406, 0.3851995210385746, -0.09994041560584477, 0.18908252471798193, -0.9472669407109089, -0.9885791040946093, 0.11409759549709375]] 164 | [292, [-0.16340566232332465, -0.44878218205858333, 0.8462396925213478, 0.5579521301290913, 0.4025335024950758, -0.870710762623182, -0.2573762150332637, 0.29380109889548023]] 165 | [292, [-0.9358762162968457, -0.3601473225216245, 0.2702637335629996, 0.9647212319271645, 0.7221789510023999, 0.8638545077798931, 0.12303979618128658, 0.9417215129813812]] 166 | [290, [-0.5115967346847099, -0.6217639728948063, 0.4143403858025152, -0.23552756549349985, 0.1695587693513012, 0.5352771539173145, 0.33840727303336293, -0.9330305171593094]] 167 | [290, [-0.17300135940708272, -0.8301346381163661, 0.5083072876963559, -0.34518868433584116, -0.15840318994262925, -0.035908740204620315, 0.005652216098881668, -0.03288299614989243]] 168 | [286, [-0.886994435578601, -0.04447152432953572, 0.32156797887821975, -0.2851077092997387, 0.14620742459251246, 0.23400746038016385, 0.42536072629993615, 0.011828483465781359]] 169 | [189, [0.2730901308432043, 0.2872985539649251, -0.930478874080501, 0.18803679016000907, 0.8916914222688792, 0.21759177771290306, 0.9667018422213072, 0.7297098286595145]] 170 | [189, [0.8456264308675385, 0.023451767830948267, -0.22374022198804955, -0.33035450917825004, -0.18099143995010647, -0.5822421022465591, -0.17628255067509224, 0.3630988292695676]] 171 | [188, [0.5780523833128708, 0.9676747764059928, -0.22259654891071246, 0.4664933443063737, -0.36499036774008964, 0.8702857414109617, 0.6818300786894049, -0.2523876415274431]] 172 | [188, [0.6198794427552017, -0.548442554088475, -0.9531399001325196, 0.2637061483793106, -0.9721701801661868, -0.6680613200175671, -0.2025734187076751, -0.99595765866281]] 173 | [188, [0.8456264308675385, 0.023451767830948267, -0.22374022198804955, -0.33035450917825004, -0.18099143995010647, -0.5822421022465591, -0.17628255067509224, 0.3630988292695676]] 174 | [187, [0.536170169556534, -0.00019340145662716246, -0.6972950114617156, 0.8839005761277721, -0.9616380974847956, -0.003268484202391564, -0.9341290707513641, 0.36585009002682756]] 175 | [186, [0.19059857581293982, 0.5580063421022254, -0.31851459580478414, 0.7707760116557578, -0.33155167792130724, -0.6817537671577873, -0.5982789737704417, 0.03186917022806335]] 176 | [186, [0.536170169556534, -0.00019340145662716246, -0.6972950114617156, 0.8839005761277721, -0.9616380974847956, -0.003268484202391564, -0.9341290707513641, 0.36585009002682756]] 177 | [185, [0.5875741149586544, -0.9392841318950831, -0.8473923327201707, -0.20410638347582788, -0.6006400166352206, -0.8510425351150117, 0.6076878564615911, -0.971017629670087]] 178 | [184, [0.8068009589779672, 0.5224577177548575, -0.6980825322698172, 0.01833515968367605, 0.7179354710008576, -0.06797943811764817, -0.10335280530524771, -0.6264739535049539]] 179 | [183, [0.8479064877676521, 0.42963534653584934, -0.6139139539876315, 0.723152334556266, 0.7916981589002945, 0.09032420352664272, 0.8019657496803625, -0.6112431583275082]] 180 | [183, [0.19156072812710923, -0.9281984824996163, -0.6546460513146819, 0.8366608453609119, -0.11304244710037303, -0.7712695227003745, -0.39131811644084213, 0.5508350201511123]] 181 | [182, [0.7143392824987249, 0.4719308713818009, -0.25683213231940605, -0.4910199471851806, 0.1850060543645924, 0.19117339439921666, -0.16557561316431157, 0.19887724422995667]] 182 | [181, [0.35111706481658556, -0.4336890021339985, -0.18741755256651071, -0.01948402000903582, 0.1638667488876695, 0.3342765343890093, -0.20309372672446901, 0.8299683525105597]] 183 | [181, [0.3788932683339421, -0.5527346084369398, -0.9163852312611684, -0.05867772385753911, 0.5895716064556338, -0.5892510621008242, 0.903533724753997, -0.20411438452398545]] 184 | [180, [0.49470561730718043, 0.9484430349439033, -0.9466346651934316, 0.08714755544477915, -0.22695066131858965, 0.398551907351848, 0.6076248128047099, -0.9639473960802456]] 185 | [180, [0.19261665567376096, -0.7267707033455884, -0.5265571968687219, -0.4945073556506068, -0.8953276948843187, 0.7480239326673721, 0.2454324918321602, 0.5837146999018765]] 186 | [177, [0.5024996459526889, 0.3481630179119024, -0.4214910753727641, 0.7858657777967448, 0.7742711753690181, 0.6226757064770214, -0.666030874157078, 0.06834717291478287]] 187 | [169, [0.39641151363174343, 0.22909450139026966, 0.3302103922457367, -0.7868370264853826, -0.8254735162222253, -0.965711644535759, -0.4786441955754206, -0.7717532944305192]] 188 | [166, [0.01928884114942342, 0.8809794356818574, 0.16898469466367172, 0.4007155897561743, -0.3707590601047326, 0.0023717149433857276, -0.15277334224995776, 0.6648994942832438]] 189 | [166, [0.9657961968791369, 0.5373670020157175, 0.9705659726707283, 0.8266927445571495, -0.8004418653359351, -0.8443710475217303, -0.44046719458210637, -0.06579418149040284]] 190 | [165, [0.00491644736490926, 0.5370734979830918, 0.33608976678945224, -0.12351640975134615, -0.12744989496113512, -0.324264549869933, -0.4738853947696364, -0.21961792812956604]] 191 | [165, [0.9709429173730377, 0.825932015240942, 0.5384594691286329, -0.5673336782519753, 0.1801663457078404, -0.09761232017816424, 0.8058267961920571, 0.7790678554303225]] 192 | [165, [0.3637888771948763, 0.24102621872159213, 0.045929262187101916, 0.6540146574811199, -0.09168225577011824, 0.008172819644790108, -0.20182280615540837, 0.6875618936638739]] 193 | [165, [0.3474384912019777, -0.031241648844327896, 0.3098254084796883, 0.9456159719569659, -0.7717741422800617, 0.8333121235347505, 0.4874236941786003, 0.335654362681002]] 194 | [164, [0.6303561941862463, -0.8953305500888835, 0.3391577487006088, -0.03223013872509539, -0.9282249685448103, 0.5189579172663124, -0.4332002631070051, 0.2605033949938431]] 195 | [163, [0.19210735821587632, -0.28258055824593464, 0.8966283566169664, 0.9988963066084195, -0.7192096152240999, 0.11771750296775552, 0.3686089648963997, 0.5766149040191946]] 196 | [163, [0.9555067129823345, 0.7000607999856476, 0.05487757977409169, 0.24801491889593197, 0.8783424850671193, -0.5292222053812441, -0.07935360202307584, -0.4143279685013814]] 197 | [162, [0.6232249704084178, 0.7682780558661104, 0.636986986881249, -0.06704235499072553, 0.05562163217428395, 0.5832189928901665, -0.44436534216485035, -0.6323413732239538]] 198 | [162, [0.22469634973072594, 0.6999175979865557, 0.691029267506112, -0.7543135216274703, 0.860716852302019, -0.49126441738808424, 0.9476972001392925, 0.16739095534530612]] 199 | [162, [0.7699977959259123, -0.5934973169988818, 0.5374242530088085, 0.9609596549932526, -0.7800519888033826, 0.7842958531174464, 0.28763471821668607, -0.050197163420446334]] 200 | [162, [0.6494787945169826, -0.6587178851278523, 0.574475045529858, -0.26953912246484757, 0.20212042027703703, 0.6718281113477185, -0.1447176022371639, -0.9026473185744219]] 201 | [160, [0.3211665741588603, 0.14972435045282806, 0.46236315763963254, 0.17964765772381242, 0.3165102382503546, 0.5337745959842264, 0.7232794920188406, 0.7752248390591285]] 202 | [158, [0.055261168333787136, 0.8834803239315219, 0.13985594892877895, 0.1407137625999466, 0.9598505076958195, 0.43793887403065623, -0.5842484026767005, -0.5254898699056738]] 203 | [158, [0.272833559173548, -0.4601297745900881, 0.5379312191541281, -0.44933790875603585, -0.7624024817164095, 0.3814785883528049, -0.7991163162303498, -0.643470574837087]] 204 | [157, [0.3861353248819186, -0.3737948869139476, 0.7685585647906854, -0.6426561681134244, 0.03424850225253828, 0.9460444616670365, 0.4526488499293315, 0.09393090897964806]] 205 | [156, [0.12889654708128262, 0.04580231715453098, 0.8643034384460304, -0.838761302422679, -0.6293165130738019, -0.34543474921055517, 0.37575907926508, 0.06371946274411999]] 206 | 10 207 | 208 | 209 | --- Batch 2 --- 210 | 211 | indiv. 99/100[5728, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, -0.4588381963072383]] 212 | [5480, [-0.02015510989893632, 0.09612747856842785, -0.9394298188922448, 0.6636219377296071, 0.23603009637249617, -0.4226504739875223, 0.3433152163782782, -0.18247154558240108]] 213 | [5475, [-0.25005921297753586, 0.5477192101104911, -0.22374022198804955, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 214 | [5336, [-0.9451004887068304, 0.6657382513780312, -0.9883318155609988, 0.30724886538270013, -0.2715718561298448, 0.0335414271130261, 0.7519930598604925, -0.26630992956816346]] 215 | [5206, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, 0.024485916975683253, 0.7892522759858482, 0.7497625513040991, 0.32441492658921844]] 216 | [5080, [-0.3405719614258176, 0.8434911081927989, -0.02576825099183999, -0.47542556011532744, 0.7650239663040468, 0.17733911611101982, -0.431749216740978, 0.6695856028023914]] 217 | [4958, [-0.02015510989893632, 0.5477192101104911, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.36645187781377464, -0.4588381963072383]] 218 | [4919, [-0.3865061853364731, 0.8891170727835476, -0.9641636183159101, -0.37353868198274465, 0.23603009637249617, 0.7892522759858482, 0.7497625513040991, 0.06212739605929629]] 219 | [4808, [-0.0744972797679222, 0.7006542538956078, -0.11406617633085214, -0.09180577315441063, 0.0839680184742484, -0.344931338322614, -0.9217597556078057, 0.6323065369617209]] 220 | [4621, [-0.3828068745842854, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.18608834551947417, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 221 | [4590, [-0.2653910966618205, 0.8891170727835476, -0.4721859701110791, -0.19622812343839757, 0.9883808408076384, 0.29031048016620176, 0.8309452653103315, 0.04658334711184464]] 222 | [4336, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, 0.8333558230317624, 0.024485916975683253, 0.09410893572315127, 0.7493951287764098, 0.32441492658921844]] 223 | [4245, [-0.800145971045374, 0.34730002489504175, -0.5326524360996374, -0.06383555315036604, 0.13002009184913144, -0.9551400840244157, 0.43295423053336757, 0.6234784904879138]] 224 | [4168, [-0.12434731458897197, 0.9358440306072859, -0.033484310571733955, -0.4506876279557548, 0.9276364561025474, -0.8061809603898922, -0.35447268938350085, 0.9922841775267306]] 225 | [4139, [-0.31840782946773305, 0.023027127238665734, -0.2181696109639777, -0.8089157153104456, -0.33321277307092045, -0.08277411578443616, -0.3317137251525668, -0.18985895168618705]] 226 | [4056, [-0.3828068745842854, 0.8736837626851721, -0.6972950114617156, 0.8839005761277721, 0.024485916975683253, 0.09410893572315127, -0.9341290707513641, -0.3664483015689126]] 227 | [3956, [-0.02015510989893632, 0.09612747856842785, -0.9641636183159101, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 228 | [3950, [-0.09317046295825371, 0.3944934523490842, -0.4881351169732586, -0.5900928580777296, -0.5760111737723241, -0.5682509060456575, -0.37909654290981254, 0.604611838005902]] 229 | [3902, [-0.5563088245580261, 0.8792193895972997, -0.39345949221803744, 0.5945277108707525, 0.02719199391309357, -0.2895041933671867, 0.4063304223119748, 0.08624081551194673]] 230 | [3872, [-0.20069529607018488, 0.22958852519390738, -0.07067256433616698, 0.22233920374721072, -0.34475996060337133, 0.41535812071228384, -0.6305879488147681, -0.39491397463975386]] 231 | [3855, [-0.3828068745842854, 0.8834206037839576, -0.6972950114617156, 0.8839005761277721, -0.5571864386835381, -0.4226504739875223, -0.9341290707513641, -0.3664483015689126]] 232 | [3831, [-0.2653910966618205, 0.8891170727835476, -0.4721859701110791, -0.19622812343839757, 0.9883808408076384, 0.29031048016620176, 0.8309452653103315, 0.04658334711184464]] 233 | [3809, [-0.02015510989893632, 0.09612747856842785, -0.9394298188922448, 0.6636219377296071, 0.23603009637249617, -0.4226504739875223, 0.3433152163782782, -0.18247154558240108]] 234 | [3749, [-0.3828068745842854, 0.47256591841146944, -0.6972950114617156, 0.6639502599045826, -0.011734114389662098, -0.39757508703890787, -0.9341290707513641, -0.3664483015689126]] 235 | [3631, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.18608834551947417, -0.4226504739875223, -0.36645187781377464, -0.4588381963072383]] 236 | [3527, [-0.2653910966618205, 0.8891170727835476, -0.46185436028171956, -0.19622812343839757, 0.9883808408076384, 0.869285980979229, 0.8309452653103315, 0.04658334711184464]] 237 | [3511, [-0.02015510989893632, 0.09612747856842785, -0.4635165802322816, 0.6639502599045826, -0.011734114389662098, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 238 | [3473, [-0.3828068745842854, 0.04245128865569714, -0.6972950114617156, 0.8839005761277721, -0.9034168829747204, 0.3104049349214655, -0.9341290707513641, 0.7769874686226073]] 239 | [3193, [-0.25005921297753586, 0.8891170727835476, -0.22374022198804955, -0.9352582178364708, 0.32067238601526005, 0.29031048016620176, 0.8309452653103315, 0.04658334711184464]] 240 | [547, [-0.2653910966618205, -0.16239279589780975, -0.22374022198804955, -0.9352582178364708, -0.9034168829747204, -0.5822421022465591, -0.2509408647919682, 0.021488689720654763]] 241 | [543, [-0.7606217453238378, -0.8733846141221486, -0.7571822086657756, 0.8333558230317624, 0.024485916975683253, 0.9632059862511706, 0.7493951287764098, 0.32441492658921844]] 242 | [518, [-0.7606217453238378, -0.8733846141221486, -0.7571822086657756, 0.8333558230317624, 0.024485916975683253, 0.9632059862511706, 0.7493951287764098, 0.32441492658921844]] 243 | [515, [-0.9626847870219397, -0.16239279589780975, -0.22374022198804955, -0.9352582178364708, 0.767609410566773, -0.5822421022465591, -0.2509408647919682, 0.021488689720654763]] 244 | [511, [-0.9626847870219397, -0.16239279589780975, -0.22374022198804955, -0.9352582178364708, 0.767609410566773, -0.5822421022465591, -0.2509408647919682, 0.021488689720654763]] 245 | [503, [-0.10207728857729159, -0.3351760336205032, -0.306066285134047, -0.8230719329580158, -0.08874582373142337, -0.058263607983520815, 0.5502710968546562, 0.41056734241142867]] 246 | [498, [-0.9523848933949206, -0.9810612838520623, -0.48451946440427585, -0.6764341632001267, -0.30019051825208654, -0.8694537294497693, -0.5618755939086595, 0.2619090255307732]] 247 | [469, [-0.5942451507754605, -0.1544085927930372, -0.019148978505711067, 0.8878428916241361, -0.7439791357730441, 0.22476919287983166, 0.9489930034227263, -0.5974400868582612]] 248 | [457, [-0.4436360992740618, -0.9602314654385806, -0.20370620152742225, 0.40094895239845374, -0.8537632507585484, 0.6283704290538408, -0.48404864527693325, -0.9747379323854679]] 249 | [390, [-0.5598259138867641, 0.05414264840807603, 0.7005063713919655, -0.3059105508999207, -0.3419078799528237, -0.7412304104997374, -0.4652815869775979, 0.19476143606167806]] 250 | [387, [-0.4022897575905262, 0.9638499634165092, 0.326147036097038, 0.41800586393821315, -0.39614962044837787, -0.05664817987399551, 0.14669151904803446, 0.628102441294794]] 251 | [364, [-0.9826071047152722, 0.47256591841146944, 0.28928077000652586, 0.6639502599045826, 0.1559542916668144, 0.4152815990517691, -0.7126717774663986, 0.6208140616608147]] 252 | [357, [-0.6653701428056675, 0.22585059506820504, 0.19946490117446936, -0.9026474598377574, 0.8910529174241066, -0.41282540774348786, -0.5116745093441091, -0.3741098075739522]] 253 | [353, [-0.9826071047152722, 0.47256591841146944, 0.28928077000652586, 0.6639502599045826, 0.1559542916668144, 0.4152815990517691, -0.7126717774663986, 0.6208140616608147]] 254 | [349, [-0.7618344090149811, 0.4991768470979827, 0.6100107627210722, 0.9217383376829342, -0.7963491198914896, 0.16294257805528978, 0.7461062786613399, 0.93296025460578]] 255 | [343, [-0.37781756741555705, 0.6788695661506037, 0.02818671719061583, 0.35040289870734553, 0.8562808257027745, -0.47720450205619724, -0.45807560603551956, -0.30073196028307714]] 256 | [341, [-0.7810179357329448, 0.599831457561625, 0.3229367239893184, -0.552119274742374, 0.006487150813542231, 0.7343814773172932, -0.7411374063822136, -0.13643430071885643]] 257 | [339, [-0.5053771615777505, 0.32351101347071576, 0.7785985725073921, -0.9250223361249028, -0.7554129897495911, -0.08331985356723326, 0.6711021427791792, 0.6536163673395265]] 258 | [336, [-0.11083900570084726, 0.6838991267750356, 0.4357622280875548, -0.7133461194611317, -0.12300354991690465, -0.9621484065117059, 0.08153045345950738, -0.11917183409799037]] 259 | [330, [-0.7502049725300939, 0.37950120680595667, 0.9707716133668955, 0.9493284603185206, 0.7171029447601951, -0.43121202336431597, 0.35968591993473376, -0.8759202361136416]] 260 | [307, [-0.3983700300734483, 0.25735925496367207, 0.46997931201394305, -0.9316716749308245, -0.6142838768345884, -0.2727164296592808, -0.8366453795621247, 0.5345982929955153]] 261 | [290, [-0.17759865326321855, -0.010314863708232203, 0.004199082894074335, 0.6531054671774186, 0.36880504817037396, -0.49494128668410675, 0.38553185341594953, -0.47646958796998873]] 262 | [288, [-0.9928644540893838, -0.05896549743117063, 0.6554806783115859, 0.028382099590375853, -0.65104245854646, 0.75605372380476, -0.7308403718277625, -0.12131679777287752]] 263 | [286, [-0.7206270954625988, -0.9846659961848923, 0.6236453695178323, 0.6874350362265407, -0.6007927601401057, -0.6990855506484845, -0.07755745223376365, 0.7574303484779521]] 264 | [286, [-0.3828068745842854, -0.8532952159077731, 0.4153528450807842, -0.6467298355570592, 0.8877581238998313, -0.003268484202391564, 0.22503497496597147, -0.3664483015689126]] 265 | [284, [-0.09926408812634491, -0.9706483175457639, 0.7632888563894056, 0.999205264783712, -0.14397137320594755, -0.25808156585574893, 0.06299528798540455, -0.6844559418426786]] 266 | [284, [-0.3828068745842854, -0.8532952159077731, 0.4153528450807842, -0.6467298355570592, 0.8877581238998313, -0.003268484202391564, 0.22503497496597147, -0.3664483015689126]] 267 | [273, [-0.8701499470956653, -0.8169625598936621, 0.2290528889841239, -0.826341489505068, -0.3289122176982744, 0.6849286834573425, 0.5131409883488058, 0.03939554756909258]] 268 | [189, [0.11599317043223145, -0.7261396066600903, -0.12411163216561505, -0.3624542131567796, -0.3150344524808355, -0.7789282815241418, -0.4237253436586499, -0.9834577883463858]] 269 | [189, [0.5241931577311727, 0.04245128865569714, -0.46185436028171956, -0.19622812343839757, -0.9034168829747204, 0.869285980979229, 0.7497625513040991, 0.7769874686226073]] 270 | [188, [0.8326202326762382, -0.9791859288039451, -0.6771487172389403, 0.09448343240654222, -0.861789008828739, -0.7649168326136753, -0.6242124101493787, 0.8658494898276152]] 271 | [188, [0.026627828772500584, -0.6514953122929565, -0.7784989442557966, -0.5936619528801175, 0.4804036273410295, -0.00540680398741511, 0.0376157596500708, -0.3543557547001004]] 272 | [187, [0.69455704919385, 0.2577337928344319, -0.00775957329085597, -0.7501557453312326, -0.3845651311819267, 0.06109915511808306, -0.23790919570105795, -0.960830009117233]] 273 | [187, [0.02970052244532373, 0.2569118905060144, -0.40990629516115273, -0.3166020376360452, -0.45622768607011466, 0.7414890211063376, 0.7954750129954018, -0.08392932131476005]] 274 | [187, [0.2924937826861509, 0.03965320894354818, -0.7532125688607647, 0.8333558230317624, -0.5571864386835381, -0.4226504739875223, -0.36645187781377464, 0.32441492658921844]] 275 | [186, [0.33523968385196157, -0.8832975279002371, -0.18332681505125126, 0.7945767327933073, -0.7682240782425378, -0.4982263287006663, -0.3624995661639552, 0.598429085691623]] 276 | [186, [0.22951081474468182, 0.2051785547416285, -0.500664810968019, 0.3620321040404768, -0.3505237068630649, -0.9793250664034034, -0.3329532915811346, 0.9425172298672693]] 277 | [186, [0.2924937826861509, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, -0.5571864386835381, -0.4226504739875223, -0.36645187781377464, 0.9474387291926918]] 278 | [186, [0.10601103540212287, 0.12267053908402503, -0.7589189267602099, -0.2969068223040723, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, -0.4588381963072383]] 279 | [185, [0.2924937826861509, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, -0.5571864386835381, -0.4226504739875223, -0.36645187781377464, 0.9474387291926918]] 280 | [184, [0.5525595134987684, 0.803247212268668, -0.31502289809753337, -0.7716642059178755, 0.484289386575389, 0.23724543145214172, 0.11330958514848755, 0.5796433879092611]] 281 | [184, [0.5241931577311727, 0.04245128865569714, -0.46185436028171956, -0.19622812343839757, 0.9883808408076384, 0.29031048016620176, 0.8309452653103315, 0.7769874686226073]] 282 | [184, [0.2924937826861509, 0.47256591841146944, -0.7532125688607647, 0.6639502599045826, -0.5571864386835381, -0.4226504739875223, -0.36645187781377464, 0.9474387291926918]] 283 | [184, [0.10601103540212287, 0.12267053908402503, -0.7589189267602099, -0.2969068223040723, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, -0.4588381963072383]] 284 | [183, [0.6391391921517073, 0.2868977868147169, -0.6364308960339189, 0.5909538788943351, 0.6764973758985828, -0.26985782748469056, 0.6800253500847275, -0.5983043857286447]] 285 | [183, [0.24258483517704166, -0.49745499315846864, -0.05275937224216931, 0.048395027301147975, 0.7971654099321912, 0.4649341282153292, -0.3347646067862746, 0.5593356037876458]] 286 | [182, [0.9920502515497647, 0.32467379887248216, -0.39504899957427364, -0.9772378835541333, -0.23560513766644764, 0.10263004812775778, 0.9310422181158633, 0.396712779848744]] 287 | [182, [0.5985171161303515, -0.09350103789091713, -0.6695183332632157, -0.9762808117143142, 0.9610875573449342, 0.5490893890786277, -0.033365650682159576, -0.818582386604461]] 288 | [181, [0.1340636448784971, 0.17170802305372224, -0.7299514035822812, -0.616254848276677, -0.6159078913813762, 0.2913241217363367, -0.46267798712638264, -0.433728207576751]] 289 | [181, [0.8333902424149708, -0.010604048113355358, -0.9096505931143, -0.13829668496181324, 0.9605485915513476, 0.23213360069277367, 0.9051130649023136, 0.46900344894923607]] 290 | [181, [0.5241931577311727, 0.04245128865569714, -0.46185436028171956, -0.19622812343839757, -0.9034168829747204, 0.869285980979229, 0.7497625513040991, 0.7769874686226073]] 291 | [180, [0.9036731328600014, -0.8968310782566737, -0.8091922012825852, -0.8899668440888124, 0.703327812959387, 0.5347736739196725, -0.7707204707559805, 0.2994848305951259]] 292 | [180, [0.9969249553550004, 0.6090025328439079, -0.3716928177742811, 0.34473748771194224, 0.6479241155109832, 0.10359556284363247, -0.8373826281385444, 0.3275706256371005]] 293 | [179, [0.7339746136818863, -0.04410015376996679, -0.9279055418359503, -0.6195048174101048, 0.33247176345149176, 0.8859014986269749, -0.9577068120566421, -0.5272641035960874]] 294 | [179, [0.6497707944250155, -0.09716637604717326, -0.9880623046896875, 0.2761447185164465, -0.601524657165246, 0.5133137196129625, 0.07113778163815399, 0.020043581607542382]] 295 | [166, [0.5559992568898735, -0.9846996469774514, 0.9756328694216387, 0.4887243977998559, -0.6724611461240384, 0.6679617605873414, -0.5052301762277112, 0.7067103418434895]] 296 | [166, [0.9387749109432824, 0.7450428125078372, 0.6199343498016423, 0.4687068482114187, -0.8697678013050834, 0.7107893830067369, 0.10572146688480433, -0.5906091192430838]] 297 | [164, [0.937845563753398, -0.557803371894976, 0.28074759887809053, -0.9371236558293237, -0.41967824183721114, 0.15851163178165617, -0.8659456556381349, -0.45480387386096965]] 298 | [164, [0.23978127967062113, -0.00201391642581239, 0.8212466677703856, 0.8394613610518327, 0.10356329478937343, -0.5544041040214616, -0.8040335984329539, -0.2727943091748426]] 299 | [164, [0.7027746633277365, 0.8891170727835476, 0.5937716087707661, -0.37353868198274465, 0.23603009637249617, -0.20814795131695463, 0.7497625513040991, -0.6294496666741782]] 300 | [163, [0.38195047995771714, -0.5221470468946936, 0.34996548573699715, 0.6057497032047032, 0.6246014813245977, 0.6594882990361166, 0.20311819078548443, 0.9689036009524825]] 301 | [163, [0.332270182807449, -0.12452445700912951, 0.14500541493319874, -0.31631138416875126, 0.3788536551518089, 0.16691307269998434, 0.9781287387399391, -0.8840581868269615]] 302 | [163, [0.3131586115052678, -0.8810821491158727, 0.659453046460069, -0.02819072945572576, -0.58601540951342, 0.38377357388445343, 0.9697716069417868, 0.13642151158186966]] 303 | [163, [0.7027746633277365, 0.8891170727835476, 0.5937716087707661, -0.37353868198274465, 0.23603009637249617, -0.20814795131695463, 0.7497625513040991, -0.6294496666741782]] 304 | [162, [0.7454379336990735, 0.40755696824041565, 0.8058081774616013, 0.48426299999516087, -0.7926254337049621, -0.36456237032188143, -0.9310948400809917, 0.20037851875856516]] 305 | [162, [0.16600179123200665, 0.49276502920829923, 0.4862926973096524, 0.026561220943273733, 0.26744499574169445, 0.10869715605066554, 0.8822505725798464, -0.8755729905731287]] 306 | [162, [0.018941681339671224, 0.2869018989941219, 0.975467499954874, 0.8440913131565289, 0.3610538026517123, 0.3882278635195384, -0.4746528384092037, -0.6379329637116042]] 307 | [161, [0.4265556428443491, -0.9411507027573283, 0.8551658034756353, 0.8305868911329297, 0.7130913172816782, -0.8004557865650341, -0.02772678795049721, 0.34594930216676256]] 308 | [161, [0.09487731673776412, -0.8800862397932419, 0.11151726809921847, 0.9355466497602691, 0.2321954573566427, 0.06604212210817106, 0.9027383432579104, -0.7705473464138484]] 309 | [161, [0.78122534579748, -0.30735932205133665, 0.09839900968437587, -0.6028012824606495, -0.1756195333155497, -0.9716388741078588, 0.7521193494706828, -0.6134805600914117]] 310 | [160, [0.402312389315608, 0.531162502186814, 0.06234542079424399, 0.7860048994933315, -0.45058202155853055, -0.26538927898745945, 0.6207134228152729, -0.5437862163379776]] 311 | 10 312 | 313 | 314 | --- Batch 3 --- 315 | 316 | indiv. 99/100[5290, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, 0.024485916975683253, 0.7892522759858482, 0.7497625513040991, 0.32441492658921844]] 317 | [5146, [-0.9451004887068304, 0.6657382513780312, -0.02576825099183999, -0.47542556011532744, -0.2715718561298448, 0.17733911611101982, 0.7519930598604925, 0.6695856028023914]] 318 | [5139, [-0.3405719614258176, 0.8434911081927989, -0.02576825099183999, -0.47542556011532744, 0.23603009637249617, -0.4226504739875223, 0.008929605170121091, 0.6695856028023914]] 319 | [5074, [-0.25005921297753586, 0.5477192101104911, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, -0.4588381963072383]] 320 | [5031, [-0.3405719614258176, 0.8434911081927989, -0.02576825099183999, 0.3469645477294754, 0.7650239663040468, 0.9780964507726935, -0.431749216740978, 0.9323899772843398]] 321 | [5005, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 322 | [5004, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.18608834551947417, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 323 | [4954, [-0.3865061853364731, 0.09612747856842785, -0.6909298516920899, 0.4174145815997845, 0.23603009637249617, 0.7892522759858482, 0.008929605170121091, -0.8397747170234928]] 324 | [4944, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.18608834551947417, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 325 | [4931, [-0.02015510989893632, 0.4904539814762108, -0.030630276264601353, -0.9352582178364708, 0.37244478287351157, -0.4226504739875223, -0.151294180247856, -0.4588381963072383]] 326 | [4927, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.05501194086713901, -0.4226504739875223, -0.5162571737260242, -0.4588381963072383]] 327 | [4921, [-0.3405719614258176, 0.09612747856842785, -0.9394298188922448, -0.47542556011532744, 0.7650239663040468, 0.17733911611101982, 0.3433152163782782, -0.18247154558240108]] 328 | [4881, [-0.9890633419854733, 0.09612747856842785, -0.6909298516920899, 0.4174145815997845, 0.23603009637249617, -0.4226504739875223, 0.008929605170121091, -0.8397747170234928]] 329 | [4877, [-0.5406133193568423, 0.7936516432355516, -0.4862821406923641, -0.8476494575576501, 0.8540846447906996, 0.35688111479382356, 0.1230305337454729, -0.4598616199876373]] 330 | [4844, [-0.7606217453238378, 0.03965320894354818, -0.7571822086657756, -0.9352582178364708, 0.05501194086713901, -0.4226504739875223, 0.7497625513040991, 0.32441492658921844]] 331 | [4817, [-0.02015510989893632, 0.5477192101104911, -0.7532125688607647, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.36645187781377464, -0.4588381963072383]] 332 | [4741, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, -0.035955503702431946, -0.04063885960417979, 0.7497625513040991, 0.32441492658921844]] 333 | [4723, [-0.02015510989893632, 0.4904539814762108, -0.030630276264601353, -0.9352582178364708, 0.37244478287351157, -0.4226504739875223, -0.151294180247856, -0.4588381963072383]] 334 | [4711, [-0.0744972797679222, 0.7006542538956078, -0.7532125688607647, -0.9352582178364708, 0.0839680184742484, -0.344931338322614, -0.36645187781377464, 0.6323065369617209]] 335 | [4696, [-0.5203789984881348, 0.8861594137550026, -0.5264193297034814, -0.04638568372402774, 0.07861530985440446, -0.8644076515791179, 0.35933917296365436, 0.006204885631803547]] 336 | [4646, [-0.3828068745842854, 0.03965320894354818, -0.7571822086657756, 0.8839005761277721, -0.035955503702431946, -0.003268484202391564, 0.7497625513040991, -0.4588381963072383]] 337 | [4521, [-0.0744972797679222, 0.7006542538956078, -0.11406617633085214, 0.30724886538270013, -0.05954461807485423, 0.0335414271130261, 0.7519930598604925, -0.26630992956816346]] 338 | [4508, [-0.02015510989893632, 0.5477192101104911, -0.22374022198804955, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 339 | [4421, [-0.17836643765803095, 0.41588918659101726, -0.6061873494093493, -0.14473546704961548, 0.180676647192636, -0.9715178860832618, -0.8247724463130299, -0.7275987607793939]] 340 | [4403, [-0.9890633419854733, 0.7006542538956078, -0.6909298516920899, 0.4174145815997845, 0.23603009637249617, -0.4226504739875223, 0.008929605170121091, -0.8397747170234928]] 341 | [4320, [-0.02015510989893632, 0.8736837626851721, -0.9394298188922448, -0.37353868198274465, 0.024485916975683253, -0.4226504739875223, 0.7497625513040991, 0.32441492658921844]] 342 | [4258, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, -0.035955503702431946, -0.04063885960417979, 0.7497625513040991, 0.32441492658921844]] 343 | [4162, [-0.7606217453238378, 0.5477192101104911, -0.22374022198804955, -0.37353868198274465, 0.32067238601526005, -0.4226504739875223, 0.7497625513040991, 0.32441492658921844]] 344 | [4145, [-0.010793821957981065, 0.8376099216843682, -0.7421025983206395, 0.2774696137664492, -0.3041515822079861, 0.020723719057614165, -0.5951095073964783, 0.9597868988057487]] 345 | [4119, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.05501194086713901, -0.4226504739875223, -0.5162571737260242, -0.4588381963072383]] 346 | [4080, [-0.7797476282695117, 0.1225186848110944, -0.8540185650167724, 0.37065691100618925, -0.7015474128092098, -0.46325482567979126, 0.9284663426697823, 0.34305650156301537]] 347 | [4040, [-0.6277890057987376, 0.16108573526181247, -0.43900261076931035, -0.49156536611385304, -0.7742587542653565, 0.7320351244286059, 0.15026111973921408, -0.8938185115442643]] 348 | [4034, [-0.3865061853364731, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, -0.035955503702431946, 0.7892522759858482, 0.7497625513040991, 0.32441492658921844]] 349 | [3990, [-0.9890633419854733, 0.09612747856842785, -0.6909298516920899, 0.4174145815997845, 0.23603009637249617, -0.4226504739875223, 0.008929605170121091, -0.8397747170234928]] 350 | [3929, [-0.7556018747575639, 0.03965320894354818, -0.7532125688607647, 0.8839005761277721, 0.18608834551947417, -0.4226504739875223, -0.5162571737260242, -0.4588381963072383]] 351 | [3919, [-0.18136647257169614, 0.8540330213605514, -0.32423227781850206, 0.10885677358786894, -0.6432774425789747, 0.1951154718780772, -0.4456217648736063, 0.16217617665388073]] 352 | [3843, [-0.3405719614258176, 0.8434911081927989, -0.02576825099183999, 0.3469645477294754, 0.7650239663040468, 0.9780964507726935, -0.431749216740978, 0.9323899772843398]] 353 | [3842, [-0.46149109725445325, 0.4498866527597374, -0.4531852408731627, 0.9084341203627653, -0.4593709460833215, -0.35957087028314816, 0.20715790441983684, -0.8346386714035474]] 354 | [3670, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, -0.035955503702431946, 0.17733911611101982, 0.7497625513040991, 0.32441492658921844]] 355 | [3627, [-0.9451004887068304, 0.6657382513780312, -0.9883318155609988, 0.30724886538270013, -0.2715718561298448, 0.7892522759858482, 0.7519930598604925, 0.06212739605929629]] 356 | [3604, [-0.25005921297753586, 0.7674194402511032, -0.22374022198804955, 0.06782457962985933, -0.0638068703772634, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 357 | [3473, [-0.25005921297753586, 0.7674194402511032, -0.22374022198804955, 0.06782457962985933, -0.0638068703772634, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 358 | [3357, [-0.5888419722756544, 0.15402915157719144, -0.3760565228020152, -0.7976509556848814, -0.3153477775270168, 0.49017347865264993, -0.27424179179837127, 0.31849049629655224]] 359 | [531, [-0.0755450761610279, -0.5229120382984078, -0.7131743830006316, 0.4109020556932643, -0.9800135549435103, -0.17372557641108122, 0.9511519765442595, -0.8810155864913494]] 360 | [514, [-0.5243000460040648, -0.6762463206282738, -0.14129355754059025, 0.6148778332835019, 0.8138626606561203, -0.6725196239645883, -0.26021111325863244, -0.38917006298487156]] 361 | [504, [-0.7749485727479082, -0.9991766929402095, -0.2689606221913772, -0.2605429944346236, -0.21213343364816906, 0.65074042132063, -0.692053957726356, -0.9258369780678322]] 362 | [484, [-0.579629317576569, -0.5609000836031888, -0.8769886938788214, -0.4055834389111994, -0.9813570864679377, -0.30433406883500136, -0.26353321757630677, 0.3628303081681836]] 363 | [397, [-0.3865061853364731, 0.8891170727835476, 0.4461266885174324, -0.19000620122359413, 0.23603009637249617, 0.7892522759858482, -0.8201826098040725, -0.08089013072466966]] 364 | [389, [-0.2520595663466969, 0.7962518748785652, 0.7501742531637898, 0.8783354752184431, 0.7927877120945503, 0.7408191183798181, -0.10872398992580523, 0.7190327407139523]] 365 | [388, [-0.12458003499938886, 0.43983744105383105, 0.9817160147357602, -0.10568265906048446, -0.5626386505887186, -0.43131839161642427, 0.7716937176917034, -0.6952745853455384]] 366 | [364, [-0.9451004887068304, 0.2552928598459696, 0.18497069054258808, 0.30724886538270013, -0.05954461807485423, 0.0335414271130261, 0.7519930598604925, -0.26630992956816346]] 367 | [354, [-0.14490234203732566, 0.9499347991218408, 0.9191925963570775, 0.4622391373289252, -0.1390890667600786, -0.19999447157299244, -0.6764075068412829, 0.7439776733172687]] 368 | [353, [-0.3865061853364731, 0.8891170727835476, 0.4461266885174324, -0.19000620122359413, 0.23603009637249617, 0.7892522759858482, -0.8201826098040725, -0.08089013072466966]] 369 | [350, [-0.17479810277237995, 0.6273346583328001, 0.06153714196977145, 0.16589756918234588, 0.07419830715662212, 0.9256625728387535, 0.5055322076851188, -0.035388682894288426]] 370 | [348, [-0.7389212819622366, 0.5587761698344818, 0.31889489593321674, -0.8685570316147073, -0.3993477728645154, -0.9105941423753299, 0.15617519834665772, -0.5733309957766093]] 371 | [344, [-0.24706993766727714, 0.8284292104037574, 0.27957779884243394, 0.6097617256307633, -0.7166067646454963, -0.6187956743634837, -0.028266633105020755, -0.3208423325999237]] 372 | [331, [-0.176209826546889, 0.6272712708762147, 0.39479421994386166, 0.9788774989864915, 0.06281157314009134, 0.8979342798352556, -0.8241989757074601, 0.58853756341118]] 373 | [321, [-0.5370295974443895, 0.6613503380380996, 0.915425459445204, -0.6612147251163125, -0.6481348244098268, -0.9623480924113383, -0.8841620587719514, -0.08140675060303693]] 374 | [311, [-0.12092880068908851, 0.41398080167688045, 0.5314572496541448, -0.17652752919184178, -0.0953964839485899, -0.972445917750639, 0.5844101530768335, -0.3187770075532166]] 375 | [303, [-0.9451004887068304, 0.2552928598459696, 0.18497069054258808, 0.30724886538270013, -0.05954461807485423, 0.0335414271130261, 0.7519930598604925, -0.26630992956816346]] 376 | [298, [-0.819632894794748, -0.5900710367653512, 0.3309746762442658, -0.05308610786713186, 0.26717200343706415, -0.08407203138777586, -0.964402114324977, 0.22184106558668737]] 377 | [293, [-0.3618434076863217, 0.3265486361059944, 0.775519075290473, 0.9274762643176144, -0.016450067687192815, 0.03300025560021447, 0.6957929454431051, -0.03692107287847035]] 378 | [292, [-0.09080309207024095, -0.29899010563208095, 0.5186275595312295, 0.7402936235527617, 0.7390555661765166, 0.7163026072761185, -0.44820347237167546, -0.6362317173529706]] 379 | [291, [-0.4192592481708761, -0.31856384727235976, 0.9525567346299646, -0.7873354276017517, 0.980411698938682, 0.15455513298126577, 0.2781565001155417, 0.47783115381321273]] 380 | [291, [-0.40031660341077213, -0.3474961815370461, 0.7595832906965339, 0.6449012764172706, -0.41425029100048505, 0.24580537996677854, -0.7259536488427107, -0.15814786849534612]] 381 | [288, [-0.0175061527138638, -0.12950943426354833, 0.6061749969149206, -0.931205317003567, -0.8256702479714708, 0.9251678091066318, -0.7984343424557907, -0.8080733178196231]] 382 | [283, [-0.4517452755438869, -0.29870224041328264, 0.49241003203176437, -0.14123359345432207, -0.5248906279618688, -0.8851585577626819, 0.4615785355490487, -0.5133154585980444]] 383 | [192, [0.00796009630683514, 0.020281286874070048, -0.6667265211500877, 0.14428202388648526, -0.06417693274646408, -0.031693944753244274, -0.25792378587836207, 0.05332083497732665]] 384 | [189, [0.2749659163013989, 0.4523241553716395, -0.42174968447008077, -0.3484989680504802, -0.5507652025658782, 0.8657409282827666, -0.602894724442929, 0.01231467864373248]] 385 | [188, [0.9432500072286654, -0.10408674720762101, -0.7098655607571316, -0.1629736706628846, 0.5005733910996315, 0.035144244325094665, -0.9313856762587116, 0.748774977789566]] 386 | [186, [0.27568440791010684, -0.12720358424402933, -0.06430589925775854, -0.324966602332746, 0.717660403294341, -0.8255625827756718, -0.8993034205649615, -0.13257119202269108]] 387 | [186, [0.4452981031713681, 0.8107129930395349, -0.820871486393173, -0.09180577315441063, -0.5997576188950604, -0.344931338322614, -0.9217597556078057, 0.6323065369617209]] 388 | [185, [0.4452981031713681, 0.8107129930395349, -0.820871486393173, -0.09180577315441063, -0.5997576188950604, -0.344931338322614, -0.9217597556078057, 0.6323065369617209]] 389 | [184, [0.32628280543814414, -0.2021312004674174, -0.1324509373887348, 0.5215177320513504, -0.7571453082805446, -0.29762666809552507, -0.32356701277638367, -0.059815966582135616]] 390 | [184, [0.6435007230096261, 0.9662942529858447, -0.3946472110294539, -0.9254325997753172, 0.7552887438684848, 0.11592667059550954, -0.3356776348198294, 0.20012510343948198]] 391 | [183, [0.36216701888606195, 0.43340782065094174, -0.9364511543816731, -0.36087824819975856, -0.6224461848773784, -0.9631339876249219, -0.7335735960192498, -0.1510254137939524]] 392 | [182, [0.5462552378839471, 0.19894768653491823, -0.19209111034208193, -0.6052614565536323, 0.4625272017090496, 0.1065749317974829, -0.4508615265751783, -0.23544972742734926]] 393 | [181, [0.5339817874561539, -0.0801676878256452, -0.22048895732217688, 0.9390780133001482, 0.7830250066327726, 0.850923410240747, 0.63443431523476, -0.9548838837377103]] 394 | [180, [0.4377494170379739, -0.8643970472426223, -0.5857419449467103, 0.7010658847949411, -0.27009650189818646, 0.3342830898838911, 0.9965723045361183, -0.31745906480805486]] 395 | [180, [0.9587662822301359, -0.4763490775011672, -0.9599178194201834, -0.276271533786171, 0.0748664972524431, 0.5811722864657911, -0.7364928870388345, -0.6085342642033509]] 396 | [179, [0.029685644155650337, -0.1841187540124325, -0.00027638941395169425, -0.662639593369265, -0.2174584664452326, 0.7380901455244815, -0.062183449758677956, -0.5717474003330352]] 397 | [179, [0.08091561091774024, 0.08607844082183669, -0.9047458818574607, -0.7278473933384004, 0.07835903786291287, -0.06580194226915048, -0.8269479859434026, 0.6140224141792658]] 398 | [178, [0.4779618183861467, -0.5012536381142183, -0.22648793049128235, -0.4093605658266539, 0.16991763976927965, -0.757338797636415, -0.6843199190986624, -0.6986806985410257]] 399 | [176, [0.08162073883356591, -0.45597451275417056, -0.26476054207348043, -0.9557493663667667, 0.1461888798466937, 0.7601951240785736, -0.0020066928693958097, 0.9360327620400635]] 400 | [169, [0.9483896799024538, 0.8485931203333246, 0.6166728910086059, 0.10686017193007324, -0.8419694531418913, -0.21167101453689163, -0.3675310906331557, 0.9984628787799128]] 401 | [167, [0.8869400075400455, 0.053578848956352676, 0.70899615937871, 0.4332502677552805, -0.07940024093808673, 0.762661015955155, -0.9409915000635005, -0.6985060830326615]] 402 | [166, [0.25750451762822335, -0.012888172320260294, 0.44957817605495953, -0.01514149276312593, -0.7115900927659384, 0.4637357641947999, -0.24259846805785945, -0.7259032137807031]] 403 | [165, [0.9042918681328385, -0.9513724864613591, 0.16531840790520236, -0.5493824430008913, -0.44869159833930183, 0.9444716230210415, -0.17857981636397358, 0.42054534911297026]] 404 | [165, [0.7187310367191602, -0.9184735099828418, 0.7601083119923058, -0.5088240986907175, 0.7107723614863959, -0.9749099961287111, 0.2124188117051129, 0.3112128905938949]] 405 | [165, [0.036837372315531525, -0.5806744286656964, 0.7507027358015756, -0.6252206707000354, -0.567057598096778, 0.20682131300552964, 0.8161725104567652, -0.9760344661317331]] 406 | [165, [0.28814687474865286, -0.4174301435511336, 0.6712282624235573, -0.7283607494663351, -0.5860240883855194, 0.32424493671724197, -0.05563621742925551, 0.6092919380413018]] 407 | [164, [0.6929932944907449, 0.7951385057082754, 0.9570481377421138, 0.9042093899278121, -0.8317396096053997, 0.07033301426362093, -0.018791890625571295, -0.5586351619831658]] 408 | [164, [0.6447065598390307, 0.9907477618548908, 0.11076728280225923, 0.33046698023661647, 0.27084556362373347, 0.6747099291242593, -0.9873584763244005, -0.425803892982366]] 409 | [164, [0.218509007268189, 0.6177834108352835, 0.6166319098058695, -0.9464178950089679, 0.6718121462239728, -0.22543026009019762, 0.7991341136208967, 0.8434785205883892]] 410 | [164, [0.16618403815003502, -0.02379505406789484, 0.5795733696622767, -0.2300420661379463, 0.8223840185310562, 0.3125596263690964, -0.057505450534634406, 0.5285322534665275]] 411 | [163, [0.7748987399771701, 0.004212981079227962, 0.8437494117853153, 0.016749016182502796, -0.942801841965307, -0.7880542302125422, -0.7345259289970076, 0.13748366867870043]] 412 | [163, [0.004157066950360111, -0.46048177258834144, 0.8593635451405537, -0.6282826647288291, -0.4682455851564973, -0.997683563419862, -0.12015305216997119, -0.4245640827148409]] 413 | [161, [0.9937862148168919, -0.7217394431746893, 0.32807690373801646, 0.06097500265416822, 0.9189572128719983, -0.4444910483940421, 0.9603856882419375, -0.12678276576981395]] 414 | [160, [0.7172613433806447, 0.7955818739179694, 0.20214038171138715, 0.23881647299882314, -0.9627509605630731, -0.45928554806437827, 0.8140225729430555, -0.9382073930431363]] 415 | [156, [0.4398006678117701, -0.08881039506019772, 0.2661851506686519, 0.2817402619337459, 0.8235320804340955, 0.4349426636114675, 0.9013089756868691, -0.495170357984857]] 416 | 10 417 | 418 | 419 | --- Batch 4 --- 420 | 421 | indiv. 99/100[5533, [-0.7474592320040829, 0.8238139554056148, -0.6866004048528931, 0.5433131307453867, 0.3071387080896899, -0.7367431445156085, 0.8648001057266395, 0.035471391139907604]] 422 | [5509, [-0.7556018747575639, 0.8434911081927989, -0.02576825099183999, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 423 | [5368, [-0.3405719614258176, 0.8434911081927989, -0.02576825099183999, -0.47542556011532744, 0.23603009637249617, -0.4226504739875223, 0.8003197546800207, 0.9323899772843398]] 424 | [5326, [-0.3865061853364731, 0.7708942934190546, -0.02576825099183999, 0.4174145815997845, 0.23603009637249617, -0.4226504739875223, 0.008929605170121091, -0.8397747170234928]] 425 | [5322, [-0.25005921297753586, 0.5477192101104911, -0.6909298516920899, 0.4174145815997845, 0.32067238601526005, 0.7892522759858482, 0.008929605170121091, -0.8397747170234928]] 426 | [5191, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.21031903028821564, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 427 | [4979, [-0.02015510989893632, 0.4904539814762108, -0.6972950114617156, 0.8839005761277721, 0.21031903028821564, -0.4226504739875223, -0.9341290707513641, -0.4588381963072383]] 428 | [4962, [-0.9642819523484492, 0.36824945171984047, -0.5969435821999229, -0.7334579191809285, 0.06938996671484832, 0.6796604067989405, -0.059023363139191654, -0.5569469266480815]] 429 | [4936, [-0.3405719614258176, 0.8434911081927989, -0.6179100083872189, 0.3469645477294754, 0.7650239663040468, 0.9780964507726935, -0.431749216740978, 0.9323899772843398]] 430 | [4861, [-0.25005921297753586, 0.7708942934190546, -0.02576825099183999, -0.9352582178364708, 0.32067238601526005, -0.4226504739875223, 0.8003197546800207, 0.6695856028023914]] 431 | [4783, [-0.031233469472017772, 0.32714782518097474, -0.9095856283279182, 0.47900319495506904, 0.753169673916628, -0.46977488412998225, 0.19576208917372284, 0.3444874427593869]] 432 | [4744, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.18608834551947417, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 433 | [4736, [-0.5232599567851413, 0.7224027884667183, -0.9004072755325365, 0.5021326892390641, 0.5773770701199776, 0.612928424952959, 0.983331836515658, -0.2872888822306312]] 434 | [4727, [-0.15546027828933995, 0.5796651197399132, -0.7012302225672631, 0.26430558966754303, 0.6300400549817897, 0.9201044240426628, 0.5898574688920792, -0.7137316972322933]] 435 | [4709, [-0.02015510989893632, 0.4904539814762108, -0.6972950114617156, -0.9352582178364708, 0.37244478287351157, -0.4226504739875223, -0.9341290707513641, -0.4588381963072383]] 436 | [4709, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.32067238601526005, -0.003268484202391564, -0.9341290707513641, 0.06212739605929629]] 437 | [4677, [-0.7556018747575639, 0.8434911081927989, -0.02576825099183999, -0.9352582178364708, 0.7650239663040468, -0.4226504739875223, -0.2509408647919682, 0.06212739605929629]] 438 | [4625, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.21031903028821564, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 439 | [4585, [-0.3865061853364731, 0.09612747856842785, -0.7532125688607647, 0.4174145815997845, 0.23603009637249617, 0.3784305464241253, -0.2509408647919682, -0.4588381963072383]] 440 | [4582, [-0.7606217453238378, 0.03965320894354818, -0.7532125688607647, -0.9352582178364708, 0.024485916975683253, 0.7892522759858482, -0.2509408647919682, 0.32441492658921844]] 441 | [4469, [-0.3405719614258176, 0.8434911081927989, -0.6179100083872189, 0.3469645477294754, 0.7650239663040468, 0.9780964507726935, -0.431749216740978, 0.9323899772843398]] 442 | [4466, [-0.7606217453238378, 0.8736837626851721, -0.7571822086657756, -0.37353868198274465, 0.024485916975683253, 0.9780964507726935, 0.7497625513040991, 0.32441492658921844]] 443 | [4445, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.21031903028821564, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 444 | [4407, [-0.3405719614258176, 0.7708942934190546, -0.02576825099183999, -0.47542556011532744, 0.23603009637249617, -0.4226504739875223, 0.8003197546800207, 0.6695856028023914]] 445 | [4383, [-0.9451004887068304, 0.6657382513780312, -0.02576825099183999, -0.47542556011532744, -0.2715718561298448, 0.23141978191972257, -0.7142796760607275, 0.6695856028023914]] 446 | [4381, [-0.9451004887068304, 0.6657382513780312, -0.02576825099183999, -0.47542556011532744, 0.37244478287351157, 0.23141978191972257, -0.151294180247856, 0.6695856028023914]] 447 | [4363, [-0.9184924944310966, 0.882638160227996, -0.9956858314200554, 0.7162759560124616, 0.3342046574433941, 0.4123311117467692, -0.13659653458432564, 0.5375445424858245]] 448 | [4357, [-0.3405719614258176, 0.7708942934190546, -0.02576825099183999, -0.47542556011532744, 0.23603009637249617, -0.4226504739875223, 0.8003197546800207, 0.6695856028023914]] 449 | [4250, [-0.02015510989893632, 0.4904539814762108, -0.4127973372885405, 0.3949560348013781, 0.37244478287351157, -0.4226504739875223, -0.151294180247856, -0.4588381963072383]] 450 | [4249, [-0.3405719614258176, 0.6657382513780312, -0.02576825099183999, -0.47542556011532744, -0.2715718561298448, 0.17733911611101982, 0.7519930598604925, 0.9323899772843398]] 451 | [4059, [-0.7917808298887625, 0.9759546396973247, -0.9199077254698205, 0.5937812537583256, -0.01869301782973798, 0.3884682183960384, 0.30435660899834827, 0.22435348282313505]] 452 | [4057, [-0.6707755818841215, 0.8048221360272463, -0.7045403214751524, 0.22119596769690375, -0.9139574280691023, -0.2906136342494685, 0.15942326005366758, 0.9099863217899433]] 453 | [3972, [-0.3405719614258176, 0.8434911081927989, -0.6179100083872189, -0.9352582178364708, 0.32067238601526005, 0.9780964507726935, -0.431749216740978, 0.06212739605929629]] 454 | [3939, [-0.9454707630780443, 0.23194363619443692, -0.26006147244560607, -0.8233668556526843, 0.3698092945026683, 0.7708373187806299, 0.4092825371802171, -0.22987386357646633]] 455 | [3916, [-0.13070368393984588, 0.08931807869093156, -0.6076621042174617, -0.3291637405563004, 0.4056059703544628, 0.840420769591834, -0.09497823769857638, 0.006366975687214449]] 456 | [3886, [-0.41820361510109416, 0.7145804435530769, -0.7532125688607647, -0.3248111401458804, 0.32067238601526005, 0.3784305464241253, -0.2509408647919682, -0.4588381963072383]] 457 | [3865, [-0.9280316768075247, 0.09612747856842785, -0.6972950114617156, 0.4174145815997845, 0.18608834551947417, 0.7892522759858482, 0.008929605170121091, -0.4588381963072383]] 458 | [3816, [-0.41820361510109416, 0.7145804435530769, -0.7532125688607647, -0.3248111401458804, 0.32067238601526005, 0.3784305464241253, -0.2509408647919682, -0.4588381963072383]] 459 | [3584, [-0.1484887115390756, 0.381090988062075, -0.482880167275872, -0.6583965784937496, -0.11955469803743912, -0.4447192305472554, 0.42679573763244516, -0.7997873154307227]] 460 | [3554, [-0.3405719614258176, 0.8434911081927989, -0.02576825099183999, 0.3469645477294754, 0.7650239663040468, -0.4226504739875223, -0.431749216740978, 0.6695856028023914]] 461 | [3548, [-0.02015510989893632, 0.4904539814762108, -0.4127973372885405, 0.3949560348013781, 0.37244478287351157, -0.4226504739875223, -0.151294180247856, -0.4588381963072383]] 462 | [3537, [-0.9451004887068304, 0.6657382513780312, -0.02576825099183999, -0.47542556011532744, -0.2715718561298448, 0.23141978191972257, -0.7142796760607275, 0.6695856028023914]] 463 | [3514, [-0.9280316768075247, 0.03965320894354818, -0.6972950114617156, 0.8839005761277721, 0.21031903028821564, -0.003268484202391564, -0.9341290707513641, -0.4588381963072383]] 464 | [3363, [-0.9451004887068304, 0.8434911081927989, -0.02576825099183999, 0.3469645477294754, -0.2715718561298448, 0.17733911611101982, -0.431749216740978, 0.9323899772843398]] 465 | [558, [-0.8895483045947432, -0.7918524213823361, -0.7532125688607647, -0.24277110872273666, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.9474204589923707]] 466 | [546, [-0.49018139635856195, -0.29136985298868745, -0.807258886131845, 0.5468963485181075, -0.9154194374578364, 0.13679021176754325, -0.877031987065068, 0.7516030493563051]] 467 | [528, [-0.8895483045947432, -0.7918524213823361, -0.7532125688607647, -0.24277110872273666, 0.32067238601526005, -0.4226504739875223, -0.2509408647919682, 0.9474204589923707]] 468 | [517, [-0.6051760230737129, -0.4048064490690031, -0.6956158310794505, 0.9522832658469651, 0.7424341318349126, 0.6659361050304597, -0.5651014446448337, 0.14046880656319205]] 469 | [508, [-0.1147675885141819, -0.5174528249402841, -0.43442930333743646, -0.8653440372920072, -0.37890832502509353, 0.9187499647987254, 0.9276772312919273, -0.9328366209758214]] 470 | [492, [-0.6060053245586241, -0.5756101108073506, -0.29514918912387045, 0.22821705088211464, 0.7375030242007032, -0.3798371157492446, 0.3994821978264089, -0.5678670545734799]] 471 | [475, [-0.4057650880131125, -0.5640774363698284, -0.7965318350589505, -0.60351712365205, -0.21675763962174543, -0.4837891340207754, -0.6276072244110678, 0.7972369432528876]] 472 | [459, [-0.43608762380515564, -0.8652006219493951, -0.13005474066970546, -0.41537398902196543, -0.5812760096274896, 0.7844578981108954, -0.10216751687347503, -0.011897180554100384]] 473 | [413, [-0.9958313379020802, 0.970005963735922, 0.3070086883539085, 0.5807691325413973, 0.7778915945970519, 0.8518680495056985, -0.44918469222922996, 0.1508948913930248]] 474 | [408, [-0.15993436189801202, 0.8835959905753021, 0.1677718918247919, -0.6091439965919296, 0.3361941301203377, -0.19529418606402604, 0.8096012508075832, -0.9299021584017939]] 475 | [403, [-0.1150581034109337, 0.7398923405769087, 0.08802725901998087, -0.48263740080463324, 0.39649360707490233, 0.7868935701510642, 0.511578403440885, 0.15122508407484525]] 476 | [377, [-0.3765112017038508, 0.6848933290369785, 0.45527780785554617, 0.5682115956209182, -0.207391971243019, -0.800120091649978, 0.058057311954959445, -0.13448397799650236]] 477 | [312, [-0.323640888663838, 0.007244454123817912, 0.3014015575678619, -0.7289042586656849, -0.5101751758909709, -0.5511193126080607, 0.4453733093732699, -0.21829495818106848]] 478 | [312, [-0.5730803865525076, 0.8727211494399669, 0.33657504238107117, 0.8876100611602129, -0.2496198105329841, -0.08867319940477758, 0.610096127561844, -0.4667116129682274]] 479 | [310, [-0.23292699757385726, 0.8605237989673262, 0.5532580814403745, 0.3434615775886878, -0.4266039618144408, 0.9495584136015369, -0.48591755445227247, 0.5261636581235223]] 480 | [297, [-0.8478398018385755, -0.32829450663993653, 0.8614660617072045, 0.3035754650828677, 0.21388886024845055, 0.5306225797342108, 0.8087029747710213, -0.4091854564356858]] 481 | [294, [-0.4472885969907985, -0.5832573655251705, 0.37196302597189557, -0.5048223677575863, 0.6662314619482008, -0.99321085846487, 0.4252095424653992, -0.6252681736079313]] 482 | [293, [-0.9095576281173163, -0.02910074205507951, 0.8405392688603155, -0.35599418306572006, -0.1771001811947044, 0.28791577017721903, -0.40021003955427603, -0.06369674464710284]] 483 | [292, [-0.1865280348419711, -0.6263498852104421, 0.7583756707808875, 0.9526615763697119, -0.3099219020074657, 0.8700438499998377, 0.6060818485794077, 0.8061182681111396]] 484 | [289, [-0.255438986162567, -0.29635948917975163, 0.4710637498336243, 0.7788244429447737, 0.9361791993187052, 0.587931990260554, -0.04517136910015207, 0.9602278787561753]] 485 | [286, [-0.6645029091920456, -0.4360937395404778, 0.9585172884911479, -0.854233389797312, 0.9112221861936314, 0.5424769382723356, 0.43539571287535717, 0.3990161064294351]] 486 | [285, [-0.7480160877939013, -0.623164564439489, 0.7157514026433807, 0.4816320875353912, 0.9105705728487745, 0.4293094004888427, 0.30249780944983007, 0.8685130270580126]] 487 | [285, [-0.004496438763751831, -0.7764594359388715, 0.2699616832034837, -0.7678117110094491, -0.19637086840932105, -0.7276577234736237, 0.2930516505781602, 0.5453050349763828]] 488 | [284, [-0.22796033862379428, -0.5873140389721743, 0.48110229748398203, -0.5820651833708284, -0.9660468564587015, 0.8740534393162434, 0.9347034015665701, -0.7875806119129511]] 489 | [281, [-0.0815164119208378, -0.24055699145547838, 0.9119483386327989, 0.4132324689178748, 0.8447854798967986, -0.4027729975516472, 0.3899961990875018, -0.6773644365787919]] 490 | [270, [-0.7244541299715681, -0.25449877326574066, 0.006182728658732151, -0.024192215849504484, -0.8369567644880052, -0.8980143836516121, -0.6881670818513628, -0.1010153410347947]] 491 | [191, [0.575326793347847, 0.5550602830876008, -0.18749818930617201, -0.414000548654301, -0.23208894599661845, 0.5083131008294111, -0.9802948562034859, 0.21596768931995158]] 492 | [186, [0.8616295840472492, -0.2034467828247215, -0.07868509029436321, -0.5242891351748413, -0.9094468865797816, -0.10429069025818904, 0.32011063146778196, -0.7336083806197005]] 493 | [186, [0.019862576173335755, 0.4417665175170722, -0.6909298516920899, -0.5372075223479165, 0.23603009637249617, 0.9844426198337242, 0.008929605170121091, -0.8397747170234928]] 494 | [185, [0.7659575518060571, 0.08966757608666498, -0.6238458253321146, 0.7613472213403742, 0.7596101944262823, -0.12566987384303663, 0.8801756507271041, 0.6674887495970152]] 495 | [184, [0.16490377287202063, 0.4261840227891922, -0.550366006684156, 0.3593462095487374, -0.12003885252727176, -0.7677462336042538, 0.8293144124530554, -0.3431823081906875]] 496 | [182, [0.019862576173335755, 0.4417665175170722, -0.6909298516920899, -0.5372075223479165, 0.23603009637249617, 0.9844426198337242, 0.008929605170121091, -0.8397747170234928]] 497 | [181, [0.7250985387312718, -0.7003035204461063, -0.0014018785729790206, 0.7857583941794142, 0.8634076208489936, 0.7954078673224729, -0.3614893570748814, -0.5677180715744596]] 498 | [180, [0.8679565428034515, 0.12029589714874689, -0.18214023967174775, 0.2514382113810494, 0.2326777598569767, 0.8193292353885833, 0.07198915571904774, -0.12415242988684572]] 499 | [179, [0.9871615918836338, -0.8636617453081024, -0.9114376521508998, 0.9770281799109768, -0.843557699442494, -0.5586518744815459, 0.42060577918685493, 0.008082072336489832]] 500 | [178, [0.7000597039443963, -0.4872486793781263, -0.9293841035418631, -0.6343303705823611, 0.008792860736179131, 0.49646073350165043, -0.4034574845920069, 0.3144470156815862]] 501 | [178, [0.019862576173335755, 0.4417665175170722, -0.6909298516920899, -0.5372075223479165, 0.23603009637249617, 0.9844426198337242, 0.008929605170121091, -0.8397747170234928]] 502 | [170, [0.5280233556848823, 0.3304456445606503, 0.4171132956353678, 0.7787078182830889, -0.38122861770619765, 0.033055329736159766, -0.7971701365891768, -0.21302921011711562]] 503 | [170, [0.7915184032910703, 0.791902938558803, 0.02998936433859245, 0.11256896896234636, 0.8608056347108204, -0.08889534238720764, -0.21978968675978972, -0.05085736828539322]] 504 | [168, [0.18685237853614156, -0.6158464231616154, 0.9069511749519921, 0.6954254663700177, -0.4055881733813058, 0.2981329632602858, -0.8100878403746019, -0.731919334240785]] 505 | [166, [0.8983317846063896, -0.6772177737097638, 0.745752932674496, -0.5528146571305308, -0.9032137968136154, 0.07018191664927143, 0.4417944034786616, 0.7210830114222566]] 506 | [166, [0.1058248431568205, 0.5810834742512201, 0.16899907752786758, 0.8133828844799116, -0.48182196573232017, 0.6097420546898009, 0.11668696135834367, 0.5867939170648182]] 507 | [166, [0.30522065830419565, 0.04751495606614142, 0.7821771803432811, -0.5739421625479406, 0.41856740050393326, -0.31973223430045805, 0.20446213716456918, 0.21683309576094012]] 508 | [165, [0.20617365060182546, 0.9126147786218235, 0.5455712845460408, 0.9825329736925088, 0.09900040762674278, -0.4461121667808894, 0.8601933496990817, -0.007886670514348992]] 509 | [164, [0.2878535121537473, 0.7355529093795605, 0.919040600611144, 0.34836916746273805, 0.9990211778890028, 0.8078856711597335, -0.7738207100677474, -0.3528847304037941]] 510 | [163, [0.8042938686973637, -0.5513025401846319, 0.21065666551386086, -0.28684670220263064, -0.5268646295434625, 0.5466273457774387, -0.4224385496485348, -0.5035049698276355]] 511 | [163, [0.3910491051111602, 0.2357654150061339, 0.2616791958105025, -0.8338906748434856, -0.6432617703823136, -0.19144328511395758, 0.07634823853571082, 0.7456831337768015]] 512 | [163, [0.5568675698212986, 0.9836465504397494, 0.2639636177168099, -0.2684780928541397, 0.9469089520013814, 0.46354322487466293, -0.24505726973927877, -0.6894491757275905]] 513 | [163, [0.9239718817151794, -0.4160884882394229, 0.3361175234916647, -0.8845556807495354, -0.6996156525552693, 0.5267101393156066, 0.2797904993390423, -0.2484511223850958]] 514 | [160, [0.22657434520121367, -0.039572844729804935, 0.6455252302088001, -0.18722071350458802, 0.19927945598800223, -0.3731439175431981, -0.09071510366655722, -0.7294792113149438]] 515 | [160, [0.9378094356474789, 0.8736837626851721, 0.31035237488860656, 0.9585012561905442, 0.024485916975683253, 0.22391099664725966, 0.7497625513040991, 0.32441492658921844]] 516 | [160, [0.9378094356474789, 0.8736837626851721, 0.31035237488860656, 0.9585012561905442, 0.024485916975683253, 0.22391099664725966, 0.7497625513040991, 0.32441492658921844]] 517 | [159, [0.9813713688356533, 0.894810884903348, 0.4928661567247907, 0.41994687726276103, -0.5738164354791215, 0.7578786556039019, 0.572114506847679, -0.8714405838209016]] 518 | [159, [0.7311814231484921, -0.0529157736179946, 0.464827694368082, 0.2750214991407196, 0.9864712568824614, 0.6113667214952201, -0.18923536017472786, -0.5038279922561535]] 519 | [157, [0.7164892611158418, -0.7110439919988223, 0.9719849128874789, 0.377106522057856, 0.25129469562968887, -0.7382917340773998, -0.639854369169518, 0.3168020019376492]] 520 | [155, [0.250341262824906, -0.7238138473548688, 0.9077032619303913, -0.622561621989058, 0.0648535347996757, 0.1474227708223843, -0.8236212287959317, -0.07663254590006208]] 521 | 10 522 | -------------------------------------------------------------------------------- /logs/log_v3.txt: -------------------------------------------------------------------------------- 1 | 2 | --- Batch 0 --- 3 | 4 | indiv. 49/50 5 | 6 | [160578, [-7.809023787961575, 0.1535642761053353, -1.278580215662, 1.5035103194035138]] 7 | [34014, [-3.4232088566820256, 4.222257335234749, -3.082505721487796, -1.2811941276834542]] 8 | [9018, [-3.909070682841909, 1.1849934534935862, -3.573774967066532, -1.2641556891280672]] 9 | [5997, [-1.7440734131673512, 4.1722375343291915, -3.995408916539425, -4.942497516318179]] 10 | [3654, [-0.32985509400059954, 2.147451221338059, -5.906090868662506, -8.430605290406188]] 11 | [2800, [-7.093315660670452, 2.8200347743463006, -1.3601298611739132, 5.739834286174926]] 12 | [2266, [-9.707480786909953, 2.9330485166458313, -7.948440151087903, 6.28881221679093]] 13 | [2193, [-0.3961024630450467, -1.4867115199041585, -2.4189534657166334, -8.880276021202306]] 14 | [1334, [3.9659126378744425, 5.565731803835476, -7.212628885805805, -8.638766052457088]] 15 | [956, [-0.7600803007587782, -8.214958808732264, -7.427042770919203, -3.868910581387068]] 16 | [858, [-0.7932543575663669, 9.448066724324026, -7.251252750846691, 1.7071231185732127]] 17 | [651, [-1.4460644514273042, 5.20942894938463, -8.097125285179317, 2.869418385160415]] 18 | [585, [7.27069291851182, -1.9752063970158709, -1.0124807468419679, -9.243589664952507]] 19 | [553, [-3.5689875303751473, -0.5019143584302768, -9.95326298616879, 5.110547215544887]] 20 | [552, [-8.626393217680823, -8.432481067743353, -2.2810529914662308, -2.1104161913303487]] 21 | [532, [2.1688240520540063, -7.101608848184171, -6.807638351550056, -3.511718758642653]] 22 | [268, [0.5068191804780895, -7.278019386373373, 0.4303250855869081, -4.4349117767239115]] 23 | [261, [0.03169736498480802, -3.3438589242123467, 4.229621512373292, -9.717352904796172]] 24 | [242, [-4.7013828536837625, 9.375883300406109, 2.9602452002725403, -5.089502657611272]] 25 | [235, [-5.319978871076914, -0.4202886561042991, 2.383397149394664, -1.5357370280659666]] 26 | [229, [-5.321328087319661, -9.249397521153229, 8.217968156794605, -3.8634631114624396]] 27 | [223, [-7.584874392541563, 9.106244610261093, 1.7442517791477066, 3.424784062698434]] 28 | [221, [-4.866733304662807, 1.4460254898718699, 9.954176810034546, 4.631907550822241]] 29 | [219, [-8.211800717513771, 1.2539343270146297, 6.840917562179516, 3.8905322693108744]] 30 | [219, [-3.945610879562153, 4.77404918852616, 4.841730220219283, 0.4348756140748904]] 31 | [213, [8.595722895803917, -8.543992140529362, 6.444168442822942, -9.20027105796539]] 32 | [202, [0.43847129647436844, -6.727720275078253, 9.644499959561049, -8.99993117149355]] 33 | [202, [1.149682628065495, -4.846702314140527, 2.885557952974686, -3.8395628138561833]] 34 | [195, [2.1821884406350094, 9.099960478782968, 8.039284703378392, -6.707632917834879]] 35 | [187, [-2.4883640948005343, 8.322956694895538, 3.9128824266098743, -4.131304817071806]] 36 | [158, [7.652334805022829, 7.728823729423194, -8.445843489170922, 6.286578793965173]] 37 | [155, [2.436389850397841, -3.7333077022836036, -5.810313048361371, 8.227405150491535]] 38 | [146, [8.42812290554076, -6.076905442381328, -2.601114133094457, -5.489892080180403]] 39 | [145, [3.080387351102299, -7.807655543876133, -7.8935889466894675, 9.281182297330645]] 40 | [142, [8.454359625348882, 2.3291762909977027, -7.1154437393891845, 7.249190310289727]] 41 | [141, [5.079865235725441, 5.310985311065233, -3.186301776470062, 9.877215470014523]] 42 | [139, [6.966217467675474, 5.633529901201285, -6.538256500536496, 3.6941843092415088]] 43 | [139, [9.524337450211998, -1.9343916829084566, -4.796995595912752, 7.3439758398296995]] 44 | [126, [9.757593207560479, 7.519682819528953, 1.397045145044702, 2.205904426632273]] 45 | [122, [7.374397305936313, -1.8398107872461935, 0.8123669959741768, -0.6603655154539361]] 46 | [113, [8.477721661853781, -7.15805571050981, 2.036159854475194, 9.001556543101085]] 47 | [110, [-2.0454065185251817, -8.237685612985661, 4.342968377633259, 8.899756527444914]] 48 | [107, [-0.21261191484276587, -3.251842795131159, 7.351599603282345, 6.420349393335091]] 49 | [103, [0.7341674147219361, -9.915824665649547, 3.3130040594331973, 5.145812534026588]] 50 | [102, [-1.8146522685873467, 5.925916382520221, 6.122745792492392, 9.147445260652884]] 51 | [101, [7.8408983750437145, -6.338633829998268, 9.352981247591508, 1.6636056323235628]] 52 | [101, [-5.307034308284077, -3.0518158330328315, 4.943142017416321, 8.87369419588774]] 53 | [97, [5.396246576357896, -4.257216092332568, 5.787247116468938, -2.049753689388205]] 54 | [90, [-4.708062939274784, 3.8091197458136605, 8.334819388010846, 7.008741709901798]] 55 | [84, [1.3060274008203763, -0.06530502879232358, 7.308323324247606, 0.010070141749620731]] 56 | 10 57 | 58 | average : [-3.120629840816324, 1.3497648586692106, -4.420355582412172, -2.377424845621298] 59 | std : [4.146762163781319, 3.9480559089942613, 2.5258708756731543, 5.631586479795927] 60 | 61 | 62 | 63 | --- Batch 1 --- 64 | 65 | indiv. 49/50 66 | 67 | [135368, [-7.809023787961575, 0.1535642761053353, -1.278580215662, 1.5035103194035138]] 68 | [121661, [-8.285889454603279, 3.0479021061388165, -2.2388595605331076, -2.1158943853927856]] 69 | [94063, [-5.940180118139308, 2.529534461317585, -2.4049806045950817, -3.6623822712893688]] 70 | [89535, [-5.9624532377940715, 4.730278247492656, -3.6974337854804054, -3.36011947647981]] 71 | [64585, [-7.819467871533491, 0.6279206639392816, -6.594975723126002, -5.663405670327188]] 72 | [40621, [-8.865016342489643, -3.520680040817015, -3.5999312300929884, -0.04616638595498879]] 73 | [28123, [-2.4618837039016226, 3.9274285339671478, -0.673427489846723, -2.5564842605995133]] 74 | [23642, [-6.601078908087645, 3.1617429518891256, -4.497558680673583, -0.4605631793606404]] 75 | [16976, [-3.4232088566820256, 4.222257335234749, -3.082505721487796, -1.2811941276834542]] 76 | [16555, [-5.124456956893594, 2.748626320582759, -3.2109747997520617, -6.787935359463409]] 77 | [14989, [-6.180872790017954, -2.9970244040885197, -5.222149053372869, -6.894768155507875]] 78 | [13576, [-6.604888430278476, -4.740752336538389, -6.022658736121612, -6.142660396202924]] 79 | [10304, [-3.909070682841909, 1.1849934534935862, -3.573774967066532, -1.2641556891280672]] 80 | [9865, [-8.132316587792289, 2.9146374203652865, -2.2318799899615493, -7.8254697309999415]] 81 | [8745, [-4.129908249223438, 5.825229645165536, -5.479867142406163, -8.542362845687961]] 82 | [7613, [-12.19728932448025, -3.2655511814599745, -9.17414740538235, 1.3077602417653993]] 83 | [5320, [-1.7440734131673512, 4.1722375343291915, -3.995408916539425, -4.942497516318179]] 84 | [5109, [-1.2858484162130464, 0.32546424596446855, -3.040039892177276, -2.571789975771201]] 85 | [5028, [-14.348722591718497, 4.953062272042314, -1.6242371955504407, -8.932870841388032]] 86 | [5008, [-0.3961024630450467, -1.4867115199041585, -2.4189534657166334, -8.880276021202306]] 87 | [4282, [-2.345173383703948, 1.9079487077036847, -3.2944378492151136, -11.418836638417723]] 88 | [3959, [-0.32985509400059954, 2.147451221338059, -5.906090868662506, -8.430605290406188]] 89 | [3510, [0.6150538422567342, 1.5791560208661455, -3.599461785355801, -8.77649061059766]] 90 | [3080, [-1.928881256978977, -1.2157303390219767, -2.928266114654482, -1.9969322227680206]] 91 | [2825, [-2.9458608001190525, 1.6184710940876479, -3.053806959447271, -0.6312621087566215]] 92 | [2502, [-7.093315660670452, 2.8200347743463006, -1.3601298611739132, 5.739834286174926]] 93 | [2328, [1.1896204170280944, 2.0680416159259463, -5.699328292756355, -10.328911737478819]] 94 | [2190, [-9.707480786909953, 2.9330485166458313, -7.948440151087903, 6.28881221679093]] 95 | [2115, [-5.941769772232011, -0.909714861236744, -6.298988692944414, 0.40193567925202345]] 96 | [2083, [-6.1533501295383175, 2.616342492868518, -8.21181092516095, 1.857921158879746]] 97 | [2015, [-1.1119773208587946, -1.6323680590331422, -6.409278296263028, -8.958662943739848]] 98 | [1914, [-6.101949251546946, -3.0111250560930296, -2.1958441918731504, -4.70468914432922]] 99 | [1558, [0.9447858496881425, 5.353453589949301, -6.248043728826257, -2.7916410845506703]] 100 | [1481, [-2.675021873742766, -1.1991694220621139, -7.180906388427872, -1.1739549453704967]] 101 | [1404, [3.9659126378744425, 5.565731803835476, -7.212628885805805, -8.638766052457088]] 102 | [1329, [4.32605896987286, 1.6447835996159352, -4.775644768209188, -9.544833928790315]] 103 | [1200, [-6.138991834936091, -1.0187523070480766, -6.5868610434772785, 3.1485767901389154]] 104 | [1143, [-1.0729171171491507, -5.022462829120106, -2.0195366527186263, -2.835685033131737]] 105 | [971, [-0.7600803007587782, -8.214958808732264, -7.427042770919203, -3.868910581387068]] 106 | [894, [5.221904237314842, 4.619437251259711, -2.7266618451037012, -6.093504445962995]] 107 | [843, [-0.36039672042609716, -4.242150591726205, -2.158142399430183, -4.804036012246239]] 108 | [706, [-9.316275302406758, -6.504106930389406, -1.8512033195148336, -8.3638012568424]] 109 | [607, [3.1725930883113245, 0.4060363564705992, -4.365512620962569, -3.6611058263830807]] 110 | [485, [-6.068035256449926, -3.7953260395778523, -0.5553943942237463, -7.2294428379167]] 111 | [347, [0.9839494791582766, 1.391648142647444, -1.5470377610584762, -0.5370355951944945]] 112 | [303, [-1.6293900988987335, 2.5334875688156955, 0.5240945287620624, -5.992998173180281]] 113 | [267, [-6.764611185624791, 0.03378436507605076, 1.5575559709493483, -11.971333950393142]] 114 | [241, [-4.577031453870704, -3.971333714383027, 1.1053641835112638, -4.790714078351609]] 115 | [211, [-1.1647963491109643, 4.687775086672547, -1.8014207231421686, 2.5906578611149387]] 116 | [140, [4.72801791183387, 5.909521245486765, -1.2712937536849473, -2.623768271253545]] 117 | 10 118 | 119 | average : [-6.229265923808624, 2.162857485585044, -3.127922781124975, -2.443063479714765] 120 | std : [2.102432194093602, 2.4698409855264667, 1.673656926454058, 2.5450814796961128] 121 | 122 | 123 | 124 | --- Batch 2 --- 125 | 126 | indiv. 49/50 127 | 128 | [146009, [-7.505784998807494, 6.149695165732739, -2.440856843247862, -2.6387255685301274]] 129 | [145553, [-8.285889454603279, 3.0479021061388165, -2.2388595605331076, -2.1158943853927856]] 130 | [137670, [-5.940180118139308, 2.529534461317585, -2.4049806045950817, -3.6623822712893688]] 131 | [136843, [-6.985288530828764, 3.6364822438605855, -1.4881172850188258, 0.38734017468464144]] 132 | [132486, [-6.967243386972322, 2.917443119287891, -2.834950988944075, -0.005360454439459428]] 133 | [125806, [-7.809023787961575, 0.1535642761053353, -1.278580215662, 1.5035103194035138]] 134 | [124139, [-11.285002052481705, 3.2234493089921186, -4.4085177569374965, -4.3735553154906]] 135 | [110635, [-10.716781889439119, 1.499623703673079, -1.9766777875740866, -1.1296843683726188]] 136 | [109850, [-6.4556653287397365, 4.509197560741374, -1.5428470129695806, -3.3418260539481794]] 137 | [98683, [-3.3205142935694894, 2.0170280595094323, -1.8326430817073822, -1.413977993926459]] 138 | [96778, [-6.382983517957619, 3.360500103103779, -4.378209097512483, -2.654262858780177]] 139 | [92128, [-6.079564990928461, 1.286101502677545, -2.687511084414757, -1.6256839323208876]] 140 | [87654, [-6.807224186150171, -0.28091872264977313, -3.042027327547953, -1.7102744840200463]] 141 | [82153, [-6.350698743197762, 2.445954360082893, -2.849232681981854, -4.127428853856686]] 142 | [73501, [-5.380153773401846, 1.4712415926368112, -2.9339181253483653, -1.909461251227837]] 143 | [66259, [-5.9624532377940715, 4.730278247492656, -3.6974337854804054, -3.36011947647981]] 144 | [56282, [-5.807369897747005, 0.6990344172521155, -1.9706157382739822, -5.348806632935941]] 145 | [53633, [-6.750151554422926, 0.7484166388943385, -2.8066439515397237, -6.669654254191661]] 146 | [48003, [-8.066978722240213, 5.143036666364468, -5.124343186703474, -1.3625880765962837]] 147 | [47262, [-9.699554194010805, 4.138062923628221, -1.5266274857571762, -3.891515561212625]] 148 | [47027, [-12.12705130069305, 3.177386202933417, -4.954157194276685, -7.134325484593935]] 149 | [42292, [-5.124456956893594, 2.748626320582759, -3.2109747997520617, -6.787935359463409]] 150 | [42156, [-4.916984059029024, 3.852729102487632, -2.179560765332685, -7.4193391081313]] 151 | [38388, [-4.961097138277305, 3.039095888917555, -3.3229464224469534, -2.156597243764453]] 152 | [32562, [-7.011949995050367, 5.645140063900865, -3.702275065132534, -6.814886983669746]] 153 | [31684, [-8.222295511989447, 3.919064125542345, -5.44849108613718, -4.52654841082698]] 154 | [29615, [-5.9584582492839155, 4.967534998103267, -5.2785295613303305, -2.6764988379387136]] 155 | [28550, [-8.865016342489643, -3.520680040817015, -3.5999312300929884, -0.04616638595498879]] 156 | [28530, [-5.585960012561314, 1.1147055381136122, -3.975952713815123, -4.160602847254939]] 157 | [25280, [-5.307827159050407, 1.8690636865838766, -2.970775358814462, -0.07972076026214348]] 158 | [23432, [-6.297681311419843, 1.314806251940436, -1.2896575691799896, -4.6122249143150675]] 159 | [22725, [-6.601078908087645, 3.1617429518891256, -4.497558680673583, -0.4605631793606404]] 160 | [20098, [-5.553255549650348, 9.545759738427757, -4.2000760470078635, 1.0952059318223788]] 161 | [19819, [-6.0182713852770835, 3.0659670593407684, -2.4850716209032444, -8.339199224022458]] 162 | [18022, [-7.3585713778811535, -2.6128739766810885, -4.015049649283955, -1.8300791853290623]] 163 | [15429, [-6.182058068305943, 4.453667949019923, -0.5565983371866032, -3.0812815782161413]] 164 | [15171, [-7.819467871533491, 0.6279206639392816, -6.594975723126002, -5.663405670327188]] 165 | [13430, [-2.4618837039016226, 3.9274285339671478, -0.673427489846723, -2.5564842605995133]] 166 | [12380, [-3.4232088566820256, 4.222257335234749, -3.082505721487796, -1.2811941276834542]] 167 | [11582, [-6.212390343471729, -0.12087621115432512, -3.5280391429471774, 0.6953153190159327]] 168 | [8885, [-10.103852592730052, 4.4841166717109155, -5.50398867568063, 4.460136531755863]] 169 | [8559, [-9.306040605192603, 1.7378589869541525, -0.18425915777078705, -1.3141958112543337]] 170 | [7480, [-5.853850383651751, 3.6464356247052634, -1.1311898908175269, 3.724154355511987]] 171 | [5484, [-5.696013133649819, 2.199480925885804, -1.4597885713598722, -4.452584484196587]] 172 | [5056, [-5.625967517899022, 2.9066792759020643, -5.34118195958478, -0.1924084771142618]] 173 | [4341, [-6.5875947946655184, 8.098778258716436, -1.5640684843723975, -6.413217312890723]] 174 | [3556, [-5.620390820832589, 3.2820928398020426, -6.778020132509619, -1.6769091577049942]] 175 | [3049, [-3.721785663160452, 2.4485681541665274, -3.9682923870852003, -0.23294946171616138]] 176 | [280, [-2.238230623831067, -0.13653344115219257, 1.0172936588288732, -5.887541024296784]] 177 | [278, [-9.234695231721288, 3.810958626750792, 0.2454397608436918, 0.9466760069349704]] 178 | 10 179 | 180 | average : [-7.52713738415428, 2.9683920005358955, -2.2447031137189497, -1.6790555917301444] 181 | std : [2.283278455127458, 1.6395566056635198, 0.9027571516165612, 1.9044556298296735] 182 | 183 | 184 | 185 | --- Batch 3 --- 186 | 187 | indiv. 49/50 188 | 189 | [163567, [-10.206352352511267, 2.847260815253707, -1.710815554749808, 0.46257306446771773]] 190 | [154980, [-6.9333213742052955, 6.189421031554149, -1.5184894709670413, -1.5122369425332924]] 191 | [150972, [-6.951057833566102, 5.949974818779028, -2.0903295062797675, -1.547468139979426]] 192 | [150714, [-9.208873380758671, 2.918691123596023, -1.850925399704644, -0.646491520094441]] 193 | [148743, [-6.985288530828764, 3.6364822438605855, -1.4881172850188258, 0.38734017468464144]] 194 | [147772, [-7.292304631060269, 3.162269135606625, -1.0583376331104974, 1.000145838301941]] 195 | [146394, [-9.096471375790326, 3.053450868276339, -2.3426386379890607, -2.2267092818277163]] 196 | [146083, [-7.617175401560064, 2.9270049137275422, -2.176826823510986, -0.3498891716877417]] 197 | [145889, [-7.279467092465557, 4.807487994742136, -1.8949450165715431, 0.7917506033089077]] 198 | [144980, [-8.661156665960794, 4.715139320557886, -2.7601996265775366, -0.7954933898748686]] 199 | [144574, [-7.460458434351504, 4.96090837020389, -1.213509612387851, -0.3732676144378597]] 200 | [144031, [-8.973480050144808, 2.700251599420494, -2.7619328943213315, -2.843742170791259]] 201 | [143935, [-6.786813576653671, 6.326052898065154, -2.8742528961443123, -1.541860491519243]] 202 | [143684, [-8.451835849980068, 3.7962720058417885, -3.367773932947978, -0.20168114631006895]] 203 | [143083, [-7.139449313112802, 3.219811547046491, -2.424276914600678, -2.2241262876374037]] 204 | [140861, [-6.066254471547177, 2.8040394090509597, -1.893585239433971, 0.842969266884324]] 205 | [138542, [-5.243613250835537, 3.593571338498199, -1.4131597547496466, 0.9864043284011914]] 206 | [132853, [-10.246078323735977, 2.3569335469715678, -2.1157348150890853, -3.1560686329871785]] 207 | [131988, [-9.335563698246942, 2.942447874027995, -3.183986349631336, -2.219407713591919]] 208 | [130168, [-7.071008753913337, 2.237548493989317, -2.0461849686316937, -1.2020938482624337]] 209 | [129436, [-9.360115825206737, 3.640502915560297, -3.1841946098005076, 0.7568957889031909]] 210 | [128373, [-8.948287969018528, 6.021694892578294, -2.3873613058443235, -2.8417341728311536]] 211 | [127820, [-8.458138360542836, 3.1533217921430112, -1.9956293521573936, -3.768602936056813]] 212 | [125833, [-10.716781889439119, 1.499623703673079, -1.9766777875740866, -1.1296843683726188]] 213 | [123050, [-6.115538092968359, 4.47831827936831, -2.1904987617751694, -0.4599067625917044]] 214 | [122189, [-8.285889454603279, 3.0479021061388165, -2.2388595605331076, -2.1158943853927856]] 215 | [121602, [-7.983815277857555, 3.987323797692234, -1.0895194358728129, 2.0472116485231604]] 216 | [118658, [-11.285002052481705, 3.2234493089921186, -4.4085177569374965, -4.3735553154906]] 217 | [118544, [-10.820079074290938, 0.510065584913515, -2.434008303136173, -1.5077125550830588]] 218 | [110242, [-8.506944531925052, 1.539260602223015, -1.8659331280474138, -2.714556835901981]] 219 | [108678, [-7.809023787961575, 0.1535642761053353, -1.278580215662, 1.5035103194035138]] 220 | [105499, [-6.967243386972322, 2.917443119287891, -2.834950988944075, -0.005360454439459428]] 221 | [104771, [-6.540031963348175, 5.364778262677023, -1.2529821844498352, -1.9225845317329584]] 222 | [100848, [-7.505784998807494, 6.149695165732739, -2.440856843247862, -2.6387255685301274]] 223 | [97329, [-5.940180118139308, 2.529534461317585, -2.4049806045950817, -3.6623822712893688]] 224 | [96341, [-3.3205142935694894, 2.0170280595094323, -1.8326430817073822, -1.413977993926459]] 225 | [95319, [-6.329569341054851, 4.266943857101645, -1.903993596171297, -3.173192426596887]] 226 | [95285, [-6.319396585680327, 2.223512613812735, -1.2067376304318733, -3.049921348480696]] 227 | [90075, [-7.2411515357379175, 3.9336282019595967, -3.858716842573702, -2.60449561854485]] 228 | [84956, [-5.893668612904028, 0.7229611068703607, -2.2561596254856298, -3.569659447182825]] 229 | [81345, [-7.126271484656294, 0.6366545393399452, -1.157469567040495, -0.22862535127618155]] 230 | [79335, [-9.426809665626937, 2.5903843166192515, -1.7603764994062825, -3.2606817145606786]] 231 | [73703, [-6.485437597438368, 2.745134074775233, -2.456929722083296, 1.329859193638756]] 232 | [54150, [-6.4556653287397365, 4.509197560741374, -1.5428470129695806, -3.3418260539481794]] 233 | [53163, [-4.934361054236522, 1.9777488359584987, -2.1711960041823777, -4.8248581931969365]] 234 | [52424, [-9.579598451096142, 0.6877785075221237, -2.267676380590058, -5.715402118746704]] 235 | [11478, [-6.8089357900489755, 4.186303804610489, -0.6431302771510794, -3.7661782825214187]] 236 | [8474, [-2.01284167865221, 3.5542026749106364, -2.8346051266216272, -2.3321830202601657]] 237 | [5238, [-10.79903151956415, 3.971367854164587, -0.4951387873527566, -3.057805601634506]] 238 | [3442, [-8.365287578678982, 1.8617203168567376, -0.4501255194319742, -2.2887629106297926]] 239 | 10 240 | 241 | average : [-8.02314686387071, 4.0207182265954025, -1.8891624954479709, -0.4436478765234277] 242 | std : [1.1736771655351579, 1.2967644905674174, 0.484122812197394, 1.0972626787154134] 243 | 244 | 245 | 246 | --- Batch 4 --- 247 | 248 | indiv. 49/50 249 | 250 | [159782, [-11.123228428195706, 4.56608155288372, -1.6657451639650784, -1.589350203592375]] 251 | [155378, [-9.096471375790326, 3.053450868276339, -2.3426386379890607, -2.2267092818277163]] 252 | [154623, [-10.206352352511267, 2.847260815253707, -1.710815554749808, 0.46257306446771773]] 253 | [153004, [-7.578940655317735, 2.452821251805676, -2.6806779416926303, -2.5375710723315867]] 254 | [152412, [-9.662709837320953, 3.9591623366544195, -1.7806301095918273, 0.27983137079662207]] 255 | [151036, [-8.22118321323522, 3.917166794391027, -1.3352534777912002, 1.2927012833101892]] 256 | [150830, [-6.951057833566102, 5.949974818779028, -2.0903295062797675, -1.547468139979426]] 257 | [150782, [-6.9333213742052955, 6.189421031554149, -1.5184894709670413, -1.5122369425332924]] 258 | [150189, [-8.613280631032968, 4.545110009876361, -1.7953102278336326, -1.3234161693363407]] 259 | [149624, [-9.208873380758671, 2.918691123596023, -1.850925399704644, -0.646491520094441]] 260 | [147939, [-7.980303150200595, 4.436889189325918, -2.1727392598090898, 0.6466987192255944]] 261 | [147690, [-7.2696265862562095, 5.85732486639001, -1.9390756904234852, -1.4038876928749668]] 262 | [147101, [-8.119046032645853, 3.0329498192509163, -2.2757539665476947, 0.035087033623905084]] 263 | [146874, [-7.279467092465557, 4.807487994742136, -1.8949450165715431, 0.7917506033089077]] 264 | [146791, [-6.985288530828764, 3.6364822438605855, -1.4881172850188258, 0.38734017468464144]] 265 | [146543, [-7.617175401560064, 2.9270049137275422, -2.176826823510986, -0.3498891716877417]] 266 | [145762, [-7.434595196175962, 2.895890508267496, -2.81709313565055, -0.003747146326936568]] 267 | [145167, [-7.160376207109223, 3.8544214910676944, -2.266554127613249, 0.16346959524367682]] 268 | [144960, [-8.930275829402095, 3.5619174060792926, -2.5060889175944316, 0.1431037912011231]] 269 | [144247, [-6.368403220566705, 4.105569930615307, -1.8660457573352467, -0.4493936859411476]] 270 | [142716, [-6.3859863127361765, 5.010918265153134, -1.8825713230443066, 0.45218280549408846]] 271 | [140579, [-9.466568687769186, 4.562825863484129, -2.123711350616245, -0.3939174965594455]] 272 | [139105, [-6.893466673778932, 1.7301531097422282, -1.9606773811062252, -1.209415411809466]] 273 | [138597, [-10.29218114679062, 5.104841681164444, -1.184319878924815, -0.4336206138786022]] 274 | [129204, [-9.597902630810717, 5.236925294263809, -2.6210738506122246, -0.20334915314278976]] 275 | [127163, [-9.70766428543284, 6.44891594006341, -1.5131801996359422, 0.06658402190270468]] 276 | [125153, [-8.661156665960794, 4.715139320557886, -2.7601996265775366, -0.7954933898748686]] 277 | [124345, [-10.500033463160175, 5.104558709037353, -1.7102065942566056, 0.14477304592885903]] 278 | [124127, [-8.465550497698173, 6.006261718851947, -1.8468490945198424, -1.0312999581104485]] 279 | [122483, [-7.902041391449322, 4.510383316849669, -2.2187250497390787, -0.7432968152351561]] 280 | [122373, [-9.453386553150576, 2.975307842173584, -3.082404513183021, 0.8842799042405323]] 281 | [119116, [-8.73840114643593, 7.142516436766871, -1.9038074349715712, 0.2444302779440955]] 282 | [118541, [-8.471958593850882, 3.7915368434598755, -2.169734590195519, -0.8537649511599965]] 283 | [117385, [-8.180469131043168, 4.747701942859071, -2.087965457628396, -1.3214838061370064]] 284 | [114674, [-8.036867360548172, 4.405046039083504, -2.475845452465859, 0.7618353627267864]] 285 | [113898, [-8.00879748538611, 2.0909718427321238, -1.174574836092089, -2.310867188646021]] 286 | [110624, [-6.63339247527004, 6.318396822265763, -1.672990729094534, -1.9898838821816176]] 287 | [107199, [-9.248660874640084, 3.3002339931676845, -1.8317374678168972, -0.6609821474974018]] 288 | [100220, [-7.658229740275012, 1.5167389020931465, -2.39154511494097, -1.8881181023443687]] 289 | [99336, [-9.73686484700999, 3.8699325178937416, -1.8293323574867284, -1.0025700736547687]] 290 | [98795, [-7.292304631060269, 3.162269135606625, -1.0583376331104974, 1.000145838301941]] 291 | [96039, [-7.88515775359717, 3.870536034060234, -1.735891002312022, -2.1373197343602834]] 292 | [92803, [-6.617844535683185, 1.7748692944111846, -2.0615794902824938, 1.0182247014084427]] 293 | [91319, [-9.014464073331375, 3.9543798640760897, -1.6330843924165417, -0.6592805727899061]] 294 | [90811, [-9.322779485164904, 4.623337060874275, -1.195368172614669, -2.335242276270864]] 295 | [80032, [-9.41126918006736, 2.874931695991876, -1.017378821370343, -0.14346274884510235]] 296 | [78883, [-8.04004589714419, 1.7398410360195706, -1.2715415619668304, 0.7291230879066286]] 297 | [78153, [-9.30883219336737, 2.075728266888751, -1.8093216088392727, 1.0017949344666142]] 298 | [68415, [-7.344297730749832, 3.4271340481626202, -1.7957224933264548, -3.33608218066428]] 299 | [47322, [-7.259262697818101, 5.646227512319124, -1.6349824865518967, -2.4938023148291313]] 300 | 10 301 | 302 | average : [-8.759541908193425, 4.039914060307045, -1.877081549056469, -0.9348137611120648] 303 | std : [1.3792971166532157, 1.290732396704986, 0.3970911196406534, 1.2471756298078542] 304 | -------------------------------------------------------------------------------- /tetris/ai.py: -------------------------------------------------------------------------------- 1 | from field import Field 2 | import copy 3 | 4 | def rotate_clockwise(shape): 5 | return [ [ shape[y][x] 6 | for y in xrange(len(shape)) ] 7 | for x in xrange(len(shape[0]) - 1, -1, -1) ] 8 | 9 | 10 | class Ai: 11 | 12 | @staticmethod 13 | def best(field, workingPieces, workingPieceIndex, weights, level): 14 | bestRotation = None 15 | bestOffset = None 16 | bestScore = None 17 | workingPieceIndex = copy.deepcopy(workingPieceIndex) 18 | workingPiece = workingPieces[workingPieceIndex] 19 | shapes_rotation = { 4 : 4, 8 : 2, 12 : 2, 16 : 4, 20 : 4, 24 : 2, 28 : 1 } 20 | flat_piece = [val for sublist in workingPiece for val in sublist] 21 | hashedPiece = sum(flat_piece) 22 | 23 | for rotation in range(0, shapes_rotation[hashedPiece]): 24 | for offset in range(0, field.width): 25 | result = field.projectPieceDown(workingPiece, offset, level) 26 | if not result is None: 27 | score = None 28 | if workingPieceIndex == len(workingPieces)-1 : 29 | heuristics = field.heuristics() 30 | score = sum([a*b for a,b in zip(heuristics, weights)]) 31 | else: 32 | _, _, score = Ai.best(field, workingPieces, workingPieceIndex + 1, weights, 2) 33 | 34 | if score > bestScore or bestScore is None: 35 | bestScore = score 36 | bestOffset = offset 37 | bestRotation = rotation 38 | field.undo(level) 39 | workingPiece = rotate_clockwise(workingPiece) 40 | 41 | return bestOffset, bestRotation, bestScore 42 | 43 | @staticmethod 44 | def choose(initialField, piece, next_piece, offsetX, weights, parent): 45 | field = Field(len(initialField[0]), len(initialField)) 46 | field.updateField(copy.deepcopy(initialField)) 47 | 48 | offset, rotation, _ = Ai.best(field, [piece, next_piece], 0, weights, 1) 49 | moves = [] 50 | 51 | offset = offset - offsetX 52 | for _ in range(0, rotation): 53 | moves.append("UP") 54 | for _ in range(0, abs(offset)): 55 | if offset > 0: 56 | moves.append("RIGHT") 57 | else: 58 | moves.append("LEFT") 59 | #moves.append('RETURN') 60 | parent.executes_moves(moves) 61 | #return moves 62 | -------------------------------------------------------------------------------- /tetris/field.py: -------------------------------------------------------------------------------- 1 | import copy 2 | 3 | class Field: 4 | def __init__(self, width, height): 5 | self.width = width 6 | self.height = height 7 | self.field = [[0]*self.width]*self.height 8 | 9 | def size(self): 10 | return self.width, self.height 11 | 12 | def updateField(self, field): 13 | self.field = field 14 | 15 | @staticmethod 16 | def check_collision(field, shape, offset): 17 | off_x, off_y = offset 18 | for cy, row in enumerate(shape): 19 | for cx, cell in enumerate(row): 20 | try: 21 | if cell and field[ cy + off_y ][ cx + off_x ]: 22 | return True 23 | except IndexError: 24 | return True 25 | return False 26 | 27 | def projectPieceDown(self, piece, offsetX, workingPieceIndex): 28 | if offsetX+len(piece[0]) > self.width or offsetX < 0: 29 | return None 30 | #result = copy.deepcopy(self) 31 | offsetY = self.height 32 | for y in range(0, self.height): 33 | if Field.check_collision(self.field, piece, (offsetX, y)): 34 | offsetY = y 35 | break 36 | for x in range(0, len(piece[0])): 37 | for y in range(0, len(piece)): 38 | value = piece[y][x] 39 | if value > 0: 40 | self.field[offsetY-1+y][offsetX+x] = -workingPieceIndex 41 | return self 42 | 43 | def undo(self, workingPieceIndex): 44 | self.field = [[0 if el == -workingPieceIndex else el for el in row] for row in self.field] 45 | 46 | def heightForColumn(self, column): 47 | width, height = self.size() 48 | for i in range(0, height): 49 | if self.field[i][column] != 0: 50 | return height-i 51 | return 0 52 | 53 | def heights(self): 54 | result = [] 55 | width, height = self.size() 56 | for i in range(0, width): 57 | result.append(self.heightForColumn(i)) 58 | return result 59 | 60 | def numberOfHoleInColumn(self, column): 61 | result = 0 62 | maxHeight = self.heightForColumn(column) 63 | for height, line in enumerate(reversed(self.field)): 64 | if height > maxHeight: break 65 | if line[column] == 0 and height < maxHeight: 66 | result+=1 67 | return result 68 | 69 | def numberOfHoleInRow(self, line): 70 | result = 0 71 | for index, value in enumerate(self.field[self.height-1-line]): 72 | if value == 0 and self.heightForColumn(index) > line: 73 | result += 1 74 | return result 75 | 76 | ################################################ 77 | # HEURISTICS # 78 | ################################################ 79 | 80 | def heuristics(self): 81 | heights = self.heights() 82 | maxColumn = self.maxHeightColumns(heights) 83 | return heights + [self.aggregateHeight(heights)] + self.numberOfHoles(heights) + self.bumpinesses(heights) + [self.completLine(), self.maxPitDepth(heights), self.maxHeightColumns(heights), self.minHeightColumns(heights)] 84 | 85 | def aggregateHeight(self, heights): 86 | result = sum(heights) 87 | return result 88 | 89 | def completLine(self): 90 | result = 0 91 | width, height = self.size() 92 | for i in range (0, height) : 93 | if 0 not in self.field[i]: 94 | result+=1 95 | return result 96 | 97 | def bumpinesses(self, heights): 98 | result = [] 99 | for i in range(0, len(heights)-1): 100 | result.append(abs(heights[i]-heights[i+1])) 101 | return result 102 | 103 | def numberOfHoles(self, heights): 104 | results = [] 105 | width, height = self.size() 106 | for j in range(0, width) : 107 | result = 0 108 | for i in range (0, height) : 109 | if self.field[i][j] == 0 and height-i < heights[j]: 110 | result+=1 111 | results.append(result) 112 | return results 113 | 114 | def maxHeightColumns(self, heights): 115 | return max(heights) 116 | 117 | def minHeightColumns(self, heights): 118 | return min(heights) 119 | 120 | def maximumHoleHeight(self, heights): 121 | if self.numberOfHole(heights) == 0: 122 | return 0 123 | else: 124 | maxHeight = 0 125 | for height, line in enumerate(reversed(self.field)): 126 | if sum(line) == 0: break 127 | if self.numberOfHoleInRow(height) > 0: 128 | maxHeight = height 129 | return maxHeight 130 | 131 | def rowsWithHoles(self, maxColumn): 132 | result = 0 133 | for line in range(0, maxColumn): 134 | if self.numberOfHoleInRow(line) > 0: 135 | result += 1 136 | return result 137 | 138 | def maxPitDepth(self, heights): 139 | return max(heights)-min(heights) 140 | 141 | 142 | 143 | @staticmethod 144 | def __offsetPiece(piecePositions, offset): 145 | piece = copy.deepcopy(piecePositions) 146 | for pos in piece: 147 | pos[0] += offset[0] 148 | pos[1] += offset[1] 149 | 150 | return piece 151 | 152 | def __checkIfPieceFits(self, piecePositions): 153 | for x,y in piecePositions: 154 | if 0 <= x < self.width and 0 <= y < self.height: 155 | if self.field[y][x] >= 1: 156 | return False 157 | else: 158 | return False 159 | return True 160 | 161 | def fitPiece(self, piecePositions, offset=None): 162 | if offset: 163 | piece = self.__offsetPiece(piecePositions, offset) 164 | else: 165 | piece = piecePositions 166 | 167 | field = copy.deepcopy(self.field) 168 | if self.__checkIfPieceFits(piece): 169 | for x,y in piece: 170 | field[y][x] = 1 171 | 172 | return field 173 | else: 174 | return None 175 | -------------------------------------------------------------------------------- /tetris/genetic.py: -------------------------------------------------------------------------------- 1 | import random 2 | import math 3 | import statistics 4 | import time 5 | from operator import itemgetter 6 | from tetris import TetrisApp 7 | from sys import stdout 8 | 9 | def createIndividual(size): 10 | result = [] 11 | for i in range(0, size): 12 | result.append(random.uniform(-10, 10)) 13 | return result 14 | 15 | def individualFromDistribution(average, std): 16 | result = [] 17 | for i in range(0, size): 18 | result.append(random.normalvariate(average[i], std[i])) 19 | return result 20 | 21 | def createGeneration(number, size): 22 | results = [] 23 | for i in range(0, number): 24 | tmp = createIndividual(size) 25 | results.append(tmp) 26 | return results 27 | 28 | def generationFromDistribution(number, size, average, std): 29 | results = [] 30 | for i in range(0, number): 31 | tmp = individualFromDistribution(average, std) 32 | results.append(tmp) 33 | return results 34 | 35 | def mutate(x): 36 | tmp = createIndividual(len(x)) 37 | for i in range(0, len(x)): 38 | if random.uniform(0, 1) > 0.6: 39 | x[i] = tmp[i] 40 | return x 41 | 42 | def crossIndivuals(x, y): 43 | result = [] 44 | for i in range(0, len(x)): 45 | if random.uniform(0, 1) > 0.5: 46 | result.append(y[i]) 47 | else: 48 | result.append(x[i]) 49 | return x 50 | 51 | def selectBestIndividuals(scores, number): 52 | bests = list(reversed(sorted(scores, key=itemgetter(0))))[0:number] 53 | return list(map(lambda x: x[1], bests)) 54 | 55 | def fitness(individual, seeds, pieceLimit): 56 | results = [] 57 | for seed in seeds: 58 | results.append(TetrisApp(False, seed).run(indiv, pieceLimit)) 59 | return int(sum(results)/len(results)) 60 | 61 | def computeAverage(population): 62 | result = list(reduce(lambda i1, i2: [a+b for a,b in zip(i1, i2)], population)) 63 | result = list(map(lambda x: x/len(population), result)) 64 | return result 65 | 66 | def computeStandardDeviation(population): 67 | average = computeAverage(population) 68 | result = [[] for _ in range(0, len(population[0]))] 69 | for individual in population: 70 | for index, weight in enumerate(individual): 71 | result[index].append(weight) 72 | result = list(map(lambda weights: statistics.stdev(weights), result)) 73 | return result 74 | 75 | survivors_rate = 0.2 76 | pieceLimit = 1000 77 | number = 50 78 | batch = 100 79 | size = 34 80 | 81 | survivors = 82 | [[-7.079322515535496, 0.4084491347254038, -7.402904430910445, -2.7844637476685787, -7.594275435309783, -10.684195700825878, -7.30837936663268, -5.295503423257339, -6.033995687870372, 3.8520349017794207, -15.163733314556929, -9.587312487454195, -6.378719930783198, 2.966829274549533, -20.831786456174793, -0.03056073728795372, 2.9546773925917873, -5.402273658374742, 1.4315699979880365, -7.192423456136776, -13.517692713048259, -2.61095929685523, 2.3238434707509485, -0.20247882164471986, -8.565533256031395, -6.756626774624734, -3.7825141520209975, -3.1585858092230685, -9.004019495787716, -1.3788389385805409, 11.761791163455952, -10.004510260785437, -8.339729845555425, 4.931069860285232] 83 | [-7.474811040277999, -1.7388998167593965, -7.403164993532727, -6.42470716303297, -7.456451892528946, -12.034920110518385, -9.408483754945468, -4.020836538554987, -8.567128797330072, 2.848645345594795, -11.929334828227308, -15.850030022102045, -6.5286891922711074, 6.167003444216878, -8.365914650043994, 4.48115406470916, -0.7625773562019091, -7.9266936997609605, -1.649318175085213, -2.6293044397733283, -12.222802903694186, -4.242315879052058, 3.203050236205614, -0.752096963973472, -7.448665867922473, -7.228033440261754, -2.5644513544890915, -1.4324037221952783, -4.562528820226978, -2.1915420620564534, 10.736787513051997, -11.096433605700962, -9.05041904447242, -1.751983305141727] 84 | [-1.5396056314838051, -1.28985252553531, -9.55939973079273, -6.020212792774943, -3.8189348812580417, -9.276221867819928, -11.049873242841045, -2.475190998851372, -6.722318631746939, 1.7784020351963314, -15.835459622655993, -17.90840631545077, -0.3758017597967882, 5.206126787806387, -16.108154174781415, 0.05715620838493929, -3.0842029726979567, -7.998698298687171, -2.0243252944220305, 0.1340090713001154, -11.359885222399667, -3.737816299450947, 2.4176868807048666, -2.7773379205945163, -5.372339113593052, -5.228176250918142, -4.641006506431996, -5.309035304126698, -2.75054902159475, 1.6461006409762995, 8.669335916149324, -10.838416114663108, -9.309744659565142, -7.039777789222682] 85 | [-2.6858983840113106, -4.066945649094353, -6.6028598255064175, -3.6113692499628147, -8.289786386427751, -6.741895238906561, -1.7311822712389493, -6.272271732584187, -3.8266538387236992, -0.8541285326647476, -12.545043659070158, -14.05849434636729, -4.256544306745919, 3.1107299959034354, -20.354208614354306, 2.585037172742668, -1.3070801122996043, -8.86387941039304, 1.6976930990392132, 3.7839223891083944, -9.772308012349907, -7.596129992681467, 3.7920468181258227, -2.549463987333961, -5.685780066274189, -6.311286970663963, -2.4354590084919385, -7.192536025126225, -4.777757908899172, -0.4228265707554192, 12.107081642198457, -11.587418757154374, -8.728257982638242, 8.04143922989667] 86 | [-8.5479653838089, -1.60494594308804, -1.8232423721829427, -6.6662509160349535, -6.785904126863624, -7.534648357216755, -2.771076764307815, -4.073232939652832, -6.772287552374782, 4.192743192592948, -14.920375142550741, -18.409281593055642, -2.247433780436276, 10.66696220121807, -12.865640573953502, -0.36910150139409525, 4.284547220515556, -2.59728165122557, 0.9161062842277103, -3.0363779791479346, -10.394147687928124, -4.600921963580275, 3.947532208341888, -0.7357225139470711, -4.9871211914142135, -7.198744228959488, -2.276919609125582, -5.016369892765137, -2.925367949691931, 0.7693846431454126, 8.535407829746543, -10.192362473688938, -8.838713504889041, -1.4969653096791413] 87 | [-5.1201195901469365, -0.07286751923358015, -0.8109293327422344, -5.00506161296176, -3.034511318746054, -10.874718486161003, -1.7001910571810956, -5.288051270750371, -5.01367600521526, 4.732724527790934, -13.205866152495862, -18.947093942577066, -3.3255386702269494, 0.6782293969444937, -19.421935288368882, -0.035541520216152644, 2.194135001689772, -8.682128553505176, -4.285211439361947, -4.904220448425889, -14.824288052223585, -5.097273511459154, 2.866397231310994, -3.5499465803514614, -8.530007105341303, -7.027848124425693, -2.0075343299017856, -2.3952200812151054, -4.561279952684006, 1.0694608654980833, 8.587395627978724, -11.463870259498155, -8.40896196243244, 8.345861305383838] 88 | [-0.6592821298420546, -3.728099144510246, -1.0053831195536995, -4.057497731586515, -6.363681776035936, -5.925579147936942, -5.356946745274303, -5.9378708923314765, -10.307102353594964, -3.551049987731661, -18.303441281301723, -17.13943354421619, -4.874453196497102, 2.6820569819125692, -14.853345730244511, 5.213118149669934, 4.771934111119656, -5.215398482472618, -4.565018232221284, -5.302129361756133, -11.878195402168616, -3.4725648861608347, 2.4947218186039852, 0.6016661803953893, -5.991607971659801, -7.9611655277299205, -5.85869844134254, -1.9912525941253878, -14.180095241424894, 0.8913171394483466, 8.942481374156927, -10.010518561480835, -8.651279486310386, 0.1809616546062811] 89 | [-9.901236706651698, -0.34674512247742717, -7.457239312581076, -6.639724294314924, -8.81716182937435, -7.585931436427412, -5.818029710668695, -7.868297459183201, -5.618924894938249, -4.148896181876771, -12.085026382256252, -12.593969804908053, -3.7519705432702506, 1.3470564246932204, -17.25021409203794, -2.158470557128508, 4.523009294800928, -3.439063711352579, -4.5562222934880285, -3.3455733406273898, -13.389029159549537, -5.736369750190515, 3.6706232296226373, -2.053252459352264, -4.707988137195663, -4.452025059542145, -1.6273342021787336, -8.802100710792429, -9.733608783159308, -0.009492723113897483, 7.197517740363407, -9.961083400152946, -8.490280314500648, 0.5590694102828682] 90 | [-1.2647311775882684, -0.8029345834888093, -7.653044559806861, -4.871298554686161, -3.3244273967050746, -8.207203622213965, 1.148479608702126, -7.488129832885854, -7.6149643369280104, 5.917526876523409, -13.504768528665902, -8.936173558833737, -5.5327807541372245, 0.08904206702943718, -16.855056620413077, -3.677546825450797, -0.701147368419468, -1.1213500977907387, -0.5466088446935436, -0.6714489653194131, -12.261372294848965, -4.481663064659581, 2.298104932341609, -1.6309572256765623, -7.409558763629532, -8.381333823580011, -3.1530165194392525, -2.709092884892976, -2.1893603467883764, -1.8825658669819896, 6.722788640092077, -10.924744842461257, -8.894449309924969, 9.551699415289589] 91 | [-6.611752028945782, -4.250725580320059, -5.023691054269568, -6.60469459079245, -5.22311547369107, -6.058356966503254, -8.328518243287345, -7.296928598647937, -7.8103655175300934, 3.481502973477764, -12.14153345575466, -13.149544368085504, -8.625083869711753, 4.812879227313336, -17.460132634324072, 1.8511757263234092, 0.8097759150996584, -8.914746007150116, 1.7822627123581178, -1.0598917284263507, -12.657604335290285, -5.727873951113296, 2.4445067589253084, -1.019653287401218, -2.9155210461015284, -6.609411949912444, -0.10721264068699599, -6.917182158325215, -7.171035514733399, -3.072509687196643, 10.619842181246078, -10.583617176613721, -8.510113013388935, 4.1089122742715665]] 92 | 93 | generation = survivors 94 | 95 | average = computeAverage(survivors) 96 | extra_var_multiplier = max((1.0-10/float(batch/2)),0) 97 | std = list(map(lambda std: std + 0.001 * extra_var_multiplier, computeStandardDeviation(survivors))) 98 | 99 | print "" 100 | print "time elapsed: ", time.time() - start_time 101 | print "average: ", average 102 | print "std: ", std 103 | print "" 104 | 105 | for individual in generationFromDistribution(number-len(generation), size, average, std): 106 | generation.append(individual) 107 | 108 | 109 | #generation = createGeneration(number, size) 110 | for iteration in range(11, batch): 111 | start_time = time.time() 112 | seeds = [] 113 | for _ in range(0, 5): 114 | seeds.append(random.randint(0, 100000000)) 115 | 116 | print("") 117 | print("") 118 | print("--- Batch " + str(iteration) + " ---") 119 | print("") 120 | scores = [] 121 | for index, indiv in enumerate(generation): 122 | message = "\rindiv. " + str(index) + "/" + str(len(generation)) 123 | stdout.write(message) 124 | stdout.flush() 125 | scores.append([fitness(indiv, seeds, pieceLimit), indiv]) 126 | print "\n" 127 | for value in (list(reversed(sorted(scores, key=itemgetter(0))))): 128 | print(value) 129 | survivors = selectBestIndividuals(scores, int(len(scores)*survivors_rate)) 130 | print(len(survivors)) 131 | generation = survivors 132 | 133 | average = computeAverage(survivors) 134 | extra_var_multiplier = max((1.0-iteration/float(batch/2)),0) 135 | std = list(map(lambda std: std + 0.001 * extra_var_multiplier, computeStandardDeviation(survivors))) 136 | 137 | print "" 138 | print "time elapsed: ", time.time() - start_time 139 | print "average: ", average 140 | print "std: ", std 141 | print "" 142 | 143 | for individual in generationFromDistribution(number-len(generation), size, average, std): 144 | generation.append(individual) 145 | -------------------------------------------------------------------------------- /tetris/gui.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | import copy 3 | import time 4 | from random import randrange as rand 5 | from field import Field 6 | from ai import Ai 7 | import pygame, sys 8 | 9 | # The configuration 10 | cell_size = 18 11 | cols = 10 12 | rows = 22 13 | maxfps = 30 14 | time = 25 15 | maxPiece = 500 16 | 17 | colors = [ 18 | (0, 0, 0 ), 19 | (255, 85, 85), 20 | (100, 200, 115), 21 | (120, 108, 245), 22 | (255, 140, 50 ), 23 | (50, 120, 52 ), 24 | (146, 202, 73 ), 25 | (150, 161, 218 ), 26 | (35, 35, 35) # Helper color for background grid 27 | ] 28 | 29 | # Define the shapes of the single parts 30 | tetris_shapes = [ 31 | [[1, 1, 1], 32 | [0, 1, 0]], 33 | 34 | [[0, 2, 2], 35 | [2, 2, 0]], 36 | 37 | [[3, 3, 0], 38 | [0, 3, 3]], 39 | 40 | [[4, 0, 0], 41 | [4, 4, 4]], 42 | 43 | [[0, 0, 5], 44 | [5, 5, 5]], 45 | 46 | [[6, 6, 6, 6]], 47 | 48 | [[7, 7], 49 | [7, 7]] 50 | ] 51 | 52 | class Gui(object): 53 | def __init__(self): 54 | pygame.init() 55 | pygame.key.set_repeat(250,25) 56 | self.width = cell_size*(cols+6) 57 | self.height = cell_size*rows 58 | self.rlim = cell_size*cols 59 | self.bground_grid = [[ 8 if x%2==y%2 else 0 for x in xrange(cols)] for y in xrange(rows)] 60 | 61 | self.default_font = pygame.font.Font( 62 | pygame.font.get_default_font(), 12) 63 | 64 | self.screen = pygame.display.set_mode((self.width, self.height)) 65 | pygame.event.set_blocked(pygame.MOUSEMOTION) 66 | pygame.time.set_timer(pygame.USEREVENT+1, time) 67 | 68 | def disp_msg(self, msg, topleft): 69 | x,y = topleft 70 | for line in msg.splitlines(): 71 | self.screen.blit( 72 | self.default_font.render( 73 | line, 74 | False, 75 | (255,255,255), 76 | (0,0,0)), 77 | (x,y)) 78 | y+=14 79 | 80 | def center_msg(self, msg): 81 | for i, line in enumerate(msg.splitlines()): 82 | msg_image = self.default_font.render(line, False, 83 | (255,255,255), (0,0,0)) 84 | 85 | msgim_center_x, msgim_center_y = msg_image.get_size() 86 | msgim_center_x //= 2 87 | msgim_center_y //= 2 88 | 89 | self.screen.blit(msg_image, ( 90 | self.width // 2-msgim_center_x, 91 | self.height // 2-msgim_center_y+i*22)) 92 | 93 | def draw_matrix(self, matrix, offset): 94 | off_x, off_y = offset 95 | for y, row in enumerate(matrix): 96 | for x, val in enumerate(row): 97 | if val: 98 | pygame.draw.rect(self.screen,colors[val], 99 | pygame.Rect( 100 | (off_x+x) * 101 | cell_size, 102 | (off_y+y) * 103 | cell_size, 104 | cell_size, 105 | cell_size),0) 106 | 107 | def update(self, tetris): 108 | self.screen.fill((0,0,0)) 109 | if tetris.gameover:# or self.nbPiece >= maxPiece: 110 | self.center_msg("""Game Over!\nYour score: %dPress space to continue""" % tetris.score) 111 | else: 112 | if tetris.paused: 113 | self.center_msg("Paused") 114 | else: 115 | pygame.draw.line(self.screen, 116 | (255,255,255), 117 | (self.rlim+1, 0), 118 | (self.rlim+1, self.height-1)) 119 | self.disp_msg("Next:", ( 120 | self.rlim+cell_size, 121 | 2)) 122 | self.disp_msg("Score: %d\n\nLevel: %d\n\nLines: %d" % (tetris.score, tetris.level, tetris.lines), 123 | (self.rlim+cell_size, cell_size*5)) 124 | self.draw_matrix(self.bground_grid, (0,0)) 125 | self.draw_matrix(tetris.board, (0,0)) 126 | self.draw_matrix(tetris.stone, (tetris.stone_x, tetris.stone_y)) 127 | self.draw_matrix(tetris.next_stone, (cols+1,2)) 128 | pygame.display.update() 129 | -------------------------------------------------------------------------------- /tetris/tetris.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | import copy 3 | import time 4 | import threading 5 | import random 6 | from field import Field 7 | from ai import Ai 8 | import pygame, sys 9 | from gui import Gui 10 | 11 | # The configuration 12 | cell_size = 18 13 | cols = 10 14 | rows = 22 15 | maxfps = 30 16 | maxPiece = 500 17 | 18 | colors = [ 19 | (0, 0, 0 ), 20 | (255, 85, 85), 21 | (100, 200, 115), 22 | (120, 108, 245), 23 | (255, 140, 50 ), 24 | (50, 120, 52 ), 25 | (146, 202, 73 ), 26 | (150, 161, 218 ), 27 | (35, 35, 35) # Helper color for background grid 28 | ] 29 | 30 | # Define the shapes of the single parts 31 | tetris_shapes = [ 32 | [[1, 1, 1], 33 | [0, 1, 0]], 34 | 35 | [[0, 2, 2], 36 | [2, 2, 0]], 37 | 38 | [[3, 3, 0], 39 | [0, 3, 3]], 40 | 41 | [[4, 0, 0], 42 | [4, 4, 4]], 43 | 44 | [[0, 0, 5], 45 | [5, 5, 5]], 46 | 47 | [[6, 6, 6, 6]], 48 | 49 | [[7, 7], 50 | [7, 7]] 51 | ] 52 | 53 | def rotate_clockwise(shape): 54 | return [ [ shape[y][x] 55 | for y in xrange(len(shape)) ] 56 | for x in xrange(len(shape[0]) - 1, -1, -1) ] 57 | 58 | def check_collision(board, shape, offset): 59 | off_x, off_y = offset 60 | for cy, row in enumerate(shape): 61 | for cx, cell in enumerate(row): 62 | try: 63 | if cell and board[ cy + off_y ][ cx + off_x ]: 64 | return True 65 | except IndexError: 66 | return True 67 | return False 68 | 69 | def remove_row(board, row): 70 | del board[row] 71 | return [[0 for i in xrange(cols)]] + board 72 | 73 | def join_matrixes(mat1, mat2, mat2_off): 74 | off_x, off_y = mat2_off 75 | for cy, row in enumerate(mat2): 76 | for cx, val in enumerate(row): 77 | mat1[cy+off_y-1 ][cx+off_x] += val 78 | return mat1 79 | 80 | def new_board(): 81 | board = [ [ 0 for x in xrange(cols) ] 82 | for y in xrange(rows) ] 83 | #board += [[ 1 for x in xrange(cols)]] 84 | return board 85 | 86 | class TetrisApp(object): 87 | def __init__(self, playWithUI, seed): 88 | self.width = cell_size*(cols+6) 89 | self.height = cell_size*rows 90 | self.rlim = cell_size*cols 91 | self.nbPiece = 0 92 | random.seed(seed) 93 | self.next_stone = tetris_shapes[random.randint(0, len(tetris_shapes)-1)] 94 | self.playWithUI = playWithUI 95 | self.fast_mode = True 96 | if playWithUI: 97 | self.gui = Gui() 98 | self.fast_mode = False 99 | self.init_game() 100 | 101 | def new_stone(self): 102 | self.stone = self.next_stone[:] 103 | self.next_stone = tetris_shapes[random.randint(0, len(tetris_shapes)-1)] 104 | self.stone_x = int(cols / 2 - len(self.stone[0])/2) 105 | self.stone_y = 0 106 | self.nbPiece += 1 107 | self.computed = False 108 | 109 | if check_collision(self.board, 110 | self.stone, 111 | (self.stone_x, self.stone_y)): 112 | self.gameover = True 113 | 114 | def init_game(self): 115 | self.board = new_board() 116 | self.new_stone() 117 | self.level = 1 118 | self.score = 0 119 | self.lines = 0 120 | 121 | def add_cl_lines(self, n): 122 | linescores = [0, 40, 100, 300, 1200] 123 | self.lines += n 124 | self.score += linescores[n] * self.level 125 | if self.lines >= self.level*6: 126 | self.level += 1 127 | 128 | def move(self, delta_x): 129 | if not self.gameover and not self.paused: 130 | new_x = self.stone_x + delta_x 131 | if new_x < 0: 132 | new_x = 0 133 | if new_x > cols - len(self.stone[0]): 134 | new_x = cols - len(self.stone[0]) 135 | if not check_collision(self.board, 136 | self.stone, 137 | (new_x, self.stone_y)): 138 | self.stone_x = new_x 139 | 140 | def drop(self, manual): 141 | if not self.gameover and not self.paused: 142 | self.score += 1 if manual else 0 143 | self.stone_y += 1 144 | if check_collision(self.board, 145 | self.stone, 146 | (self.stone_x, self.stone_y)): 147 | self.board = join_matrixes( 148 | self.board, 149 | self.stone, 150 | (self.stone_x, self.stone_y)) 151 | self.new_stone() 152 | cleared_rows = 0 153 | 154 | for i, row in enumerate(self.board): 155 | if 0 not in row: 156 | self.board = remove_row( 157 | self.board, i) 158 | cleared_rows += 1 159 | self.add_cl_lines(cleared_rows) 160 | return True 161 | return False 162 | 163 | def insta_drop(self): 164 | if not self.gameover and not self.paused: 165 | while(not self.drop(True)): 166 | pass 167 | 168 | def rotate_stone(self): 169 | if not self.gameover and not self.paused: 170 | new_stone = rotate_clockwise(self.stone) 171 | if not check_collision(self.board, 172 | new_stone, 173 | (self.stone_x, self.stone_y)): 174 | self.stone = new_stone 175 | 176 | def toggle_pause(self): 177 | self.paused = not self.paused 178 | 179 | def start_game(self): 180 | if self.gameover: 181 | self.init_game() 182 | self.gameover = False 183 | 184 | def quit(self): 185 | if self.playWithUI: 186 | self.gui.center_msg("Exiting...") 187 | pygame.display.update() 188 | sys.exit() 189 | 190 | def speed_up(self): 191 | self.fast_mode = not self.fast_mode 192 | if self.fast_mode: 193 | pygame.time.set_timer(pygame.USEREVENT+1, 2000) 194 | self.insta_drop() 195 | else: 196 | pygame.time.set_timer(pygame.USEREVENT+1, 25) 197 | 198 | def executes_moves(self, moves): 199 | key_actions = { 200 | 'ESCAPE': self.quit, 201 | 'LEFT': lambda:self.move(-1), 202 | 'RIGHT': lambda:self.move(+1), 203 | 'DOWN': lambda:self.drop(True), 204 | 'UP': self.rotate_stone, 205 | 'p': self.toggle_pause, 206 | 'SPACE': self.start_game, 207 | 'RETURN': self.insta_drop 208 | } 209 | for action in moves: 210 | key_actions[action]() 211 | 212 | if self.fast_mode: 213 | self.insta_drop() 214 | 215 | 216 | def run(self, weights, limitPiece): 217 | self.gameover = False 218 | self.paused = False 219 | 220 | #dont_burn_my_cpu = pygame.time.Clock() 221 | while 1: 222 | 223 | if self.nbPiece >= limitPiece and limitPiece > 0: 224 | self.gameover = True 225 | 226 | if self.playWithUI: 227 | self.gui.update(self) 228 | 229 | if self.gameover: 230 | return self.lines*1000 + self.nbPiece 231 | 232 | if not self.computed: 233 | self.computed = True 234 | Ai.choose(self.board, self.stone, self.next_stone, self.stone_x, weights, self) 235 | 236 | if self.playWithUI: 237 | for event in pygame.event.get(): 238 | if event.type == pygame.USEREVENT+1: 239 | self.drop(False) 240 | elif event.type == pygame.QUIT: 241 | self.quit() 242 | elif event.type == pygame.KEYDOWN: 243 | if event.key == eval("pygame.K_s"): 244 | self.speed_up() 245 | elif event.key == eval("pygame.K_p"): 246 | self.toggle_pause() 247 | 248 | #dont_burn_my_cpu.tick(maxfps) 249 | 250 | 251 | if __name__ == '__main__': 252 | weights = [0.39357083734159515, -1.8961941343266449, -5.107694873375318, -3.6314963941589093, -2.9262681134021786, -2.146136640641482, -7.204192964669836, -3.476853402227247, -6.813002842291903, 4.152001386170861, -21.131715861293525, -10.181622180279133, -5.351108175564556, -2.6888972099986956, -2.684925769670947, -4.504495386829769, -7.4527302422826, -6.3489634714511505, -4.701455626343827, -10.502314845278828, 0.6969259450910086, -4.483319180395864, -2.471375907554622, -6.245643268054767, -1.899364785170105, -5.3416512085013395, -4.072687054171711, -5.936652569831475, -2.3140398163110643, -4.842883337741306, 17.677262456993276, -4.42668539845469, -6.8954976464473585, 4.481308299774875] #21755 lignes 253 | result = TetrisApp(True, 4).run(weights, -1) 254 | print(result) 255 | --------------------------------------------------------------------------------