4x4のアフィン平面について、プログラムを書いてみた。
16個の点を左上からabcd…mnopとし、6本の直線を一筆書きの要領で、すべての点を通る事を目標とします。
また、各点を1度だけしか通らないことが望ましいとする。
左から順番に、プルダウンメニューで指定してください。
6本ですべての点を通過する為には、初期の16点以外に曲がり角になるところが、最低2ヶ所以上必要となります。
その部分の表示を、角、ベジェ、非表示の三種類から選べる様にしておきました。
また、経路が閉じるケースは、角、ベジェどちらも閉じて描かれます。
解答を知りたい方は、こちらをどうぞ。
アフィン平面 -解答編-
16個の点を左上からabcd…mnopとし、6本の直線を一筆書きの要領で、すべての点を通る事を目標とします。
また、各点を1度だけしか通らないことが望ましいとする。
左から順番に、プルダウンメニューで指定してください。
(function(){var a = new Array('ab','abc','abcd','ae','aei','aeim','af','afk','afkp','ag','ah','aj','al','an','ao','ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bo','bp','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','dc','dcb','dcba','de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','do','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ej','ejo','ek','el','en','ep','fa','fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fk','fkp','fl','fm','fo','ga','gb','gc','gd','gf','gfe','gh','gi','gj','gjm','gk','gko','gl','gn','gp','ha','hb','hc','hd','hg','hgf','hgfe','hi','hj','hk','hkn','hl','hlp','hm','ho','ib','id','ie','iea','if','ifc','ig','ih','ij','ijk','ijkl','im','in','io','ip','ja','jc','je','jf','jfb','jg','jgd','jh','ji','jk','jkl','jm','jn','jo','jp','kb','kd','ke','kf','kfa','kg','kgc','kh','kj','kji','kl','km','kn','ko','kp','la','lc','le','lf','lg','lgb','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','mb','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml','mn','mno','mnop','na','nc','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nl','nm','no','nop','oa','ob','od','of','oh','oi','oj','oje','ok','okg','okgc','ol','on','onm','op','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm','');a['ab'] = new Array('be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bo','bp','fm','gp');a['abc'] = new Array('ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','gn');a['abcd'] = new Array('de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','do','gi','hi','hj','hk','hkn','hm','ho','km','lm','ln','lo');a['ae'] = new Array('eb','ec','ed','ef','efg','efgh','ej','ejo','ek','el','en','ep','fd','jp');a['aei'] = new Array('ib','id','if','ifc','ig','ih','ij','ijk','ijkl','in','io','ip','jh');a['aeim'] = new Array('jc','kd','mb','mc','mf','mh','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nc','nd','ng','nk','nkh','nl','od','oh','ol');a['af'] = new Array('fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fl','fm','fo','gd','jm');a['afk'] = new Array('kb','kd','ke','kg','kgc','kh','kj','kji','kl','km','kn','ko');a['afkp'] = new Array('lc','oi','pb','pc','pe','pg','pi','pj','pl','plh','plhd','po','pon','ponm');a['ag'] = new Array('gb','gc','gd','gf','gfe','gh','gi','gj','gjm','gk','gko','gl','gn','gp','hc','hd','km','kn','le','lk','lkj','lkji','lm','ln','lo','lp','pi','po','pon','ponm');a['ah'] = new Array('hb','hc','hd','hg','hgf','hgfe','hi','hj','hk','hkn','hl','hlp','hm','ho','km','lk','lkj','lkji','lm','ln','lo');a['aj'] = new Array('jc','je','jf','jfb','jg','jgd','jh','ji','jk','jkl','jm','jn','jo','jp','kd','kh','ni','nm','ob','od','oh','ok','okg','okgc','ol','op','pc','pl','plh','plhd');a['al'] = new Array('hc','ke','lc','le','lf','lg','lgb','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','oi','pi','pj','po','pon','ponm');a['an'] = new Array('kd','nc','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nl','nm','no','nop','od','oh','ok','okg','okgc','ol');a['ao'] = new Array('in','kb','lc','ob','od','of','oh','oi','oj','oje','ok','okg','okgc','ol','on','onm','op','pc','pg','pl','plh','plhd');a['ba'] = new Array('ae','aei','aeim','af','afk','afkp','ag','ah','aj','al','an','ao','ej','ejo','ek','el','en','ep','fl','in','io','ip','jp');a['bc'] = new Array('ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','gn');a['bcd'] = new Array('de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','do','gi','hi','hj','hk','hkn','hm','ho','km','lm','ln','lo');a['be'] = new Array('ea','ec','ed','ef','efg','efgh','ei','eim','ej','ejo','ek','el','en','ep','fd','id','ig','ih','ij','ijk','ijkl','in','io','ip','jh','jp','mh','mk','ml','mn','mno','mnop','nl');a['bf'] = new Array('fa','fc','fd','fe','fg','fgh','fi','fk','fkp','fl','fm','fo');a['bfj'] = new Array('ja','jc','je','jg','jgd','jh','ji','jk','jkl','jm','jo','jp');a['bfjn'] = new Array('kd','na','nc','nd','ne','ng','ni','nk','nkh','nl','nm','no','nop','od','oh','ol');a['bg'] = new Array('ga','gc','gd','gf','gfe','gh','gi','gj','gjm','gk','gko','gn','gp','km','kn');a['bgl'] = new Array('ke','la','lc','le','lf','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','oi','pe','pi','pj','po','pon','ponm');a['bh'] = new Array('ha','hc','hd','hg','hgf','hgfe','hi','hj','hk','hkn','hl','hlp','hm','ho','le','lk','lkj','lkji','lm','ln','lo','pi','po','pon','ponm');a['bi'] = new Array('id','ie','iea','if','ifc','ig','ih','ij','ijk','ijkl','im','in','io','ip','jh','mh','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nk','nkh','nl','ol');a['bk'] = new Array('kd','ke','kf','kfa','kg','kgc','kh','kj','kji','kl','km','kn','ko','kp','ni','oa','oi','oj','oje','on','onm','pc','pl','plh','plhd');a['bm'] = new Array('jc','kd','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nd','ng','nk','nkh','nl','oh','ol');a['bo'] = new Array('jo','ne','ni','oa','od','of','oh','oi','oj','oje','ok','okg','okgc','ol','on','onm','op','pl','plh','plhd');a['bp'] = new Array('lc','ni','oi','oj','oje','pc','pe','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm');a['cb'] = new Array('be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bo','bp','fo');a['cba'] = new Array('ae','aei','aeim','af','afk','afkp','ag','ah','aj','al','an','ao','ej','ejo','ek','el','en','ep','fl','in','io','ip','jp');a['cd'] = new Array('de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','do','gi','hi','hj','hk','hkn','hm','ho','km','lm','ln','lo');a['ce'] = new Array('ea','eb','ed','ef','efg','efgh','ei','eim','ej','ejo','ek','el','en','ep','ih','ij','ijk','ijkl','in','io','ip','ml','mn','mno','mnop');a['cf'] = new Array('fa','fb','fd','fe','fg','fgh','fj','fk','fl','fm','fjn','fo','fkp','jo','jp');a['cfi'] = new Array('ib','id','ie','iea','ig','ih','ij','ijk','ijkl','im','in','io','ip','jh','mh','mk','ml','mn','mno','mnop','nl');a['cg'] = new Array('ga','gb','gd','gfe','gf','gh','gi','gj','gl','gjm','gn','gp');a['cgk'] = new Array('kb','kd','ke','kf','kfa','kh','kj','kji','kl','km','kn','kp');a['cgko'] = new Array('ja','na','ne','ni','oa','ob','od','of','oh','oi','oj','oje','ol','on','onm','op');a['ch'] = new Array('ga','ha','hb','hd','hg','hgf','hgfe','hi','hj','hk','hkn','hl','hlp','hm','ho','ke','km','la','le','lf','lk','lkj','lkji','lm','ln','lo','oi','pe','pi','pj','po','pon','ponm');a['cj'] = new Array('ja','je','jf','jfb','jg','jgd','jh','ji','jk','jkl','jm','jn','jo','jp','mb','mi','mie','miea','nd','nk','nkh','nl','no','nop','ol');a['cl'] = new Array('ke','la','le','lf','lg','lgb','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','ni','oi','oj','oje','pe','pi','pj','pk','pkf','pkfa','po','pon','ponm');a['cm'] = new Array('ib','mb','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nk','nkh','nl','ol');a['cn'] = new Array('kd','mi','mie','miea','na','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nl','nm','no','nop','oh','ol');a['cp'] = new Array('ja','kb','ne','ni','oa','of','oi','oj','oje','pb','pe','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm');a['dc'] = new Array('ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','fm','gp');a['dcb'] = new Array('be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bo','bp','fo');a['dcba'] = new Array('ae','aei','aeim','af','afk','afkp','ag','ah','aj','al','an','ao','ej','ejo','ek','el','en','ep','fl','in','io','ip','jp');a['de'] = new Array('ea','eb','ec','ef','efg','efgh','ei','eim','ej','ejo','ek','el','en','ep','ij','ijk','ijkl','in','io','ip','jp');a['df'] = new Array('ea','eb','fa','fb','fc','fe','fg','fgh','fi','fj','fjn','fk','fkp','fl','fm','fo','ih','ij','ijk','ijkl','im','in','io','ip','jo','jp','ml','mn','mno','mnop');a['dg'] = new Array('ga','gb','gc','gfe','gf','gh','gi','gk','gl','gn','gko','gp','fa','kp');a['dgj'] = new Array('ja','jc','je','jf','jfb','jh','ji','jk','jkl','jn','jo','jp');a['dgjm'] = new Array('ib','mb','mc','mf','mh','mi','mie','miea','mk','ml','mn','mno','mnop','nl');a['dh'] = new Array('ga','ha','hb','hc','hg','hgf','hgfe','hi','hj','hk','hkn','hm','ho','km');a['dhl'] = new Array('ke','la','lc','le','lf','lg','lgb','lk','lkj','lkji','lm','ln','lp');a['dhlp'] = new Array('ja','kb','na','ne','ni','oa','ob','of','oi','oj','oje','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','po','pon','ponm');a['di'] = new Array('eb','ib','ie','iea','if','ifc','ig','ih','ij','ijk','ijkl','im','in','io','ip','jh','mk','ml','mn','mno','mnop','nl');a['dk'] = new Array('ja','je','kb','ke','kf','kfa','kg','kgc','kh','kj','kji','kl','km','kn','ko','kp','mb','mi','mie','miea','na','nc','ne','ni','nj','njf','njfb','nm','ol','op');a['dn'] = new Array('ib','jc','mb','mf','mi','mie','miea','na','nc','ne','ng','ni','nj','njf','njfb','nk','nkh','nl','nm','no','nop','ol');a['do'] = new Array('ja','na','ne','ni','nj','njf','njfb','oa','ob','of','oh','oi','oj','oje','ok','okg','okgc','ol','on','onm','op');a['ea'] = new Array('ab','abc','abcd','af','afk','afkp','ag','ah','aj','al','an','ao','bg','bgl','bh','bk','bo','bp','ch','cl','cp','fo','gp');a['eb'] = new Array('ba','bc','bcd','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bo','bp','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','dh','dhl','dhlp','dk','dn','do','fm','gn','gp','ho');a['ec'] = new Array('cb','cba','cd','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','dg','dgj','dgjm','dh','dhl','dhlp','dk','dn','do','gn','hk','hkn','ho','lo');a['ed'] = new Array('dc','dcb','dcba','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','do','gi','hj','hk','hkn','hm','ho','km','ln','lo');a['ef'] = new Array('fa','fb','fc','fd','fi','fj','fjn','fk','fl','fm','fo','fkp');a['efg'] = new Array('ga','gb','gc','gd','gi','gj','gjm','gk','gko','gl','gn','gp');a['efgh'] = new Array('ha','hb','hc','hd','hi','hj','hk','hkn','hl','hlp','hm','ho','km','lm','ln','lo');a['ei'] = new Array('ib','id','if','ifc','ig','ih','ij','ijk','ijkl','in','io','ip','jh');a['eim'] = new Array('jc','kd','mb','mc','mf','mh','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nc','nd','ng','nk','nkh','nl','od','oh','ol');a['ej'] = new Array('ja','jc','jf','jfb','jg','jgd','jh','ji','jk','jkl','jm','jn','jp','kd','kh');a['ejo'] = new Array('kb','lc','oa','ob','od','of','oh','oi','ok','okg','okgc','ol','on','onm','op','pb','pc','pg','pl','plh','plhd');a['ek'] = new Array('hc','kb','kd','kf','kfa','kg','kgc','kh','kj','kji','kl','km','kn','ko','kp','la','lc','lg','lgb','lh','lhd','pi','po','pon','ponm');a['el'] = new Array('ga','hb','hc','la','lc','lf','lg','lgb','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','po','pon','ponm');a['en'] = new Array('na','nc','nd','ng','ni','nj','njf','njfb','nk','nkh','nl','nm','no','nop','ob','od','oh','ok','okg','okgc','ol','pc','pl','plh','plhd');a['ep'] = new Array('hc','lc','lg','lgb','oi','pb','pc','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm');a['fa'] = new Array('ab','abc','abcd','aei','ae','aeim','ag','ah','aj','al','an','ao','bh','en');a['fb'] = new Array('ba','bc','bcd','be','bg','bgl','bh','bi','bk','bm','bo','bp','ch','cl','cp','gp');a['fc'] = new Array('cb','cba','cd','ce','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','dh','dhl','dhlp','dk','dn','do','gn','ho');a['fd'] = new Array('dc','dcb','dcba','de','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','do','hk','hkn','ho','lo');a['fe'] = new Array('ea','eb','ec','ed','ei','eim','ej','ejo','ek','el','en','ep','in','io','ip','jp');a['fg'] = new Array('ga','gb','gc','gd','gi','gj','gjm','gk','gko','gl','gn','gp');a['fgh'] = new Array('ha','hb','hc','hd','hi','hj','hk','hm','hkn','hl','hlp','ho','lo','mk','ml','nl');a['fi'] = new Array('ib','id','ie','iea','ig','ih','ij','ijk','ijkl','im','in','io','ip','jh','mh','mk','ml','mn','mno','mnop','nl');a['fj'] = new Array('ja','jc','je','jg','jgd','jh','ji','jk','jkl','jm','jo','jp');a['fjn'] = new Array('kd','na','nc','nd','ne','ng','ni','nk','nkh','nl','nm','no','nop','od','oh','ol');a['fk'] = new Array('kb','kd','ke','kg','kgc','kh','kj','kji','kl','km','kn','ko');a['fkp'] = new Array('lc','oi','pb','pc','pe','pg','pi','pj','pl','plh','plhd','po','pon','ponm');a['fl'] = new Array('hc','la','lc','le','lg','lgb','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','po','pon','ponm');a['fm'] = new Array('mb','mc','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nk','nkh','nl','ol');a['fo'] = new Array('ni','oa','ob','od','oh','oi','oj','oje','ok','okg','okgc','ol','on','onm','op','pl','plh','plhd');a['ga'] = new Array('ab','abc','abcd','ae','aei','aeim','af','afk','afkp','ah','aj','al','an','ao','ej','ejo','en','in');a['gb'] = new Array('ae','aei','aeim','aj','an','ao','ba','bc','bcd','be','bf','bfj','bfjn','bh','bi','bk','bm','bo','bp','en','fo');a['gc'] = new Array('be','bi','bm','cb','cba','cd','ce','cf','cfi','ch','cj','cl','cm','cn','cp','fm');a['gd'] = new Array('ce','dc','dcb','dcba','de','df','dh','dhl','dhlp','di','dk','dn','do','ho');a['gf'] = new Array('fa','fb','fc','fd','fi','fj','fjn','fk','fkp','fl','fm','fo');a['gfe'] = new Array('ea','eb','ec','ed','ei','eim','ej','ejo','ek','el','en','ep','in','io','ip','jp');a['gh'] = new Array('ha','hb','hc','hd','hi','hj','hk','hm','hkn','hl','hlp','ho','lo','mk','ml','nl');a['gi'] = new Array('eb','ib','id','ie','iea','if','ifc','ih','ij','ijk','ijkl','im','in','io','ip','mn','mno','mnop');a['gj'] = new Array('ja','jc','je','jf','jfb','jh','ji','jk','jkl','jn','jo','jp');a['gjm'] = new Array('ib','mb','mc','mf','mh','mi','mie','miea','mk','ml','mn','mno','mnop','nl');a['gk'] = new Array('kb','kd','ke','kf','kfa','kh','kj','kji','kl','km','kn','kp');a['gko'] = new Array('ja','na','ne','ni','oa','ob','od','of','oh','oi','oj','oje','ol','on','onm','op');a['gl'] = new Array('ke','la','lc','le','lf','lh','lhd','lk','lkj','lkji','lm','ln','lo','lp','oi','pe','pi','pj','po','pon','ponm');a['gn'] = new Array('mi','mie','miea','na','nc','nd','ne','ni','nj','njf','njfb','nk','nkh','nl','nm','no','nop','ol');a['gp'] = new Array('ni','oi','oj','oje','pb','pc','pe','pi','pj','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm');a['ha'] = new Array('ab','abc','abcd','ae','aei','aeim','af','afk','afkp','ag','aj','al','an','ao','ej','ejo','ek','en','ep','fl','in','ip','jp');a['hb'] = new Array('ae','aei','aeim','af','afk','afkp','aj','an','ao','ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bi','bk','bm','bo','bp','ej','ejo','en','fo','in');a['hc'] = new Array('ae','aei','aeim','aj','an','ao','be','bf','bfj','bfjn','bi','bk','bm','bo','bp','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','cj','cl','cm','cn','cp','en','fm','fo','gp');a['hd'] = new Array('be','bi','bm','ce','cf','cfi','cj','cm','cn','dc','dcb','dcba','de','df','dg','dgj','dgjm','di','dk','dn','do','fm','gn');a['hg'] = new Array('ga','gb','gc','gd','gi','gj','gjm','gk','gko','gl','gn','gp');a['hgf'] = new Array('fa','fb','fc','fd','fi','fj','fjn','fk','fkp','fl','fm','fo');a['hgfe'] = new Array('ea','eb','ec','ed','ei','eim','ej','ejo','ek','el','en','ep','in','io','ip','jp');a['hi'] = new Array('eb','ec','fd','ib','id','ie','iea','if','ifc','ig','ij','ijk','ijkl','im','in','io','ip','mn','mno','mnop');a['hj'] = new Array('eb','ib','id','ie','iea','if','ifc','ja','jc','je','jf','jfb','jg','jgd','ji','jk','jkl','jm','jn','jo','jp','ml','mn','mno','mnop');a['hk'] = new Array('ja','je','kb','kd','ke','kf','kfa','kg','kgc','kj','kji','kl','km','ko','kp');a['hkn'] = new Array('ib','jc','mb','mc','mf','mi','mie','miea','na','nc','nd','ne','ng','ni','nj','njf','njfb','nl','nm','no','nop');a['hl'] = new Array('ke','la','lc','le','lf','lg','lgb','lk','lkj','lkji','lm','ln','lo');a['hlp'] = new Array('ja','kb','na','ne','ni','oa','ob','of','oi','oj','oje','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','po','pon','ponm');a['hm'] = new Array('eb','ib','if','ifc','mb','mc','mf','mi','mie','miea','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nl');a['ho'] = new Array('mb','mi','mie','miea','na','nc','ne','ni','nj','njf','njfb','oa','ob','od','of','oi','oj','oje','ok','okg','okgc','ol','on','onm','op');a['ib'] = new Array('ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bh','bk','bm','bo','bp','cg','cgk','cgko','ch','cl','cn','cp','dh','dhl','dhlp','do');a['id'] = new Array('ce','dc','dcb','dcba','de','df','dg','dgj','dgjm','dh','dhl','dhlp','dk','dn','do','hk','hkn','ho','lo');a['ie'] = new Array('eb','ec','ed','ef','efg','efgh','ej','ejo','ek','el','en','ep','fl');a['iea'] = new Array('ab','abc','abcd','af','afk','afkp','ag','ah','aj','al','an','ao','bg','bgl','bh','bk','bo','bp','ch','cl','cp','fo','gp');a['if'] = new Array('fa','fb','fd','fe','fg','fgh','fj','fjn','fk','fkp','fl','fm','fo','gl','gp');a['ifc'] = new Array('cb','cba','cd','ce','cg','cgk','cgko','ch','cj','cl','cm','cn','cp','dh','dhl','dhlp','dk','dn','do','gn','ho');a['ig'] = new Array('dc','dcb','dcba','de','ga','gb','gc','gd','gf','gfe','gh','gj','gjm','gk','gko','gl','gn','gp','hk','hkn','hl','hlp','hm','ho','lo');a['ih'] = new Array('dc','dcb','dcba','ha','hb','hc','hd','hg','hgf','hgfe','hj','hk','hkn','hl','hlp','hm','ho','km','ln','lo');a['ij'] = new Array('ja','jc','je','jf','jfb','jg','jgd','jh','jm','jn','jo','jp');a['ijk'] = new Array('kb','kd','ke','kf','kfa','kg','kgc','kh','km','kn','ko','kp');a['ijkl'] = new Array('fl','ga','ha','hb','hc','la','lc','le','lg','lgb','lh','lhd','lm','ln','lo','lp');a['im'] = new Array('jc','kd','mb','mc','mf','mh','mj','mjg','mjgd','mk','ml','mn','mno','mnop','nc','nd','ng','nk','nkh','nl','od','oh','ol');a['in'] = new Array('ja','kb','kd','lc','na','nc','nd','ne','ng','nj','njf','njfb','nk','nkh','nl','nm','no','nop','oa','ob','od','of','oh','ok','okg','okgc','ol','pb','pc','pg','pl','plh','plhd');a['io'] = new Array('hc','kb','lc','lg','lgb','oa','ob','od','of','oh','oj','oje','ok','okg','okgc','ol','on','onm','op','pb','pc','pg','pk','pkf','pkfa','pl','plh','plhd');a['ip'] = new Array('ga','hb','hc','ke','lc','lf','lg','lgb','lh','pb','pc','pe','pg','pj','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm');a['ja'] = new Array('ab','abc','abcd','ae','af','ag','ah','aei','afk','al','aeim','an','ao','afkp','bgl','bg','ch','bh');a['jc'] = new Array('be','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','ch','cl','cm','cn','cp','dh','dhl','dhlp');a['je'] = new Array('ab','abc','abcd','ag','ah','al','bh','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ek','el','en','ep','fl');a['jf'] = new Array('fa','fc','fd','fe','fg','fgh','fi','fk','fkp','fl','fm','fo');a['jfb'] = new Array('ba','bc','bcd','be','bg','bgl','bh','bi','bk','bm','bo','bp','ch','cl','cp','gp');a['jg'] = new Array('ga','gb','gc','gf','gfe','gh','gi','gk','gl','gn','gko','gp');a['jgd'] = new Array('ce','dc','dcb','dcba','de','df','dh','dhl','dhlp','di','dk','dn','do','ho');a['jh'] = new Array('dc','dcb','dcba','ha','hb','hc','hd','hg','hgf','hgfe','hi','hk','hkn','hl','hlp','hm','ho','lo');a['ji'] = new Array('eb','ec','ed','fd','ib','id','ie','iea','if','ifc','ig','ih','im','in','io','ip');a['jk'] = new Array('kb','kd','ke','kf','kfa','kg','kgc','kh','km','kn','ko','kp');a['jkl'] = new Array('fl','ga','ha','hb','hc','la','lc','le','lg','lgb','lh','lhd','lm','ln','lo','lp');a['jm'] = new Array('ib','mb','mc','mf','mh','mi','mie','miea','mk','ml','mn','mno','mnop','nl');a['jn'] = new Array('kd','na','nc','nd','ne','ng','ni','nk','nkh','nl','nm','no','nop','od','oh','ol');a['jo'] = new Array('kb','lc','oa','ob','od','of','oh','oi','ok','okg','okgc','ol','on','onm','op','pb','pc','pg','pl','plh','plhd');a['jp'] = new Array('hc','lc','lg','lgb','pb','pc','pe','pg','pi','pk','pkf','pkfa','pl','plh','plhd','po','pon','ponm');a['kb'] = new Array('ae','aei','aeim','ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bh','bi','bm','bo','bp','ch');a['kd'] = new Array('be','ce','cf','cfi','dc','dcb','dcba','de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dn','do');a['ke'] = new Array('ab','abc','abcd','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ej','ejo','el','en','ep','in');a['kf'] = new Array('fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fl','fm','fo');a['kfa'] = new Array('ab','abc','abcd','aei','ae','aeim','ag','ah','aj','al','an','ao','bh','en');a['kg'] = new Array('ga','gb','gd','gf','gfe','gh','gi','gj','gjm','gl','gn','gp');a['kgc'] = new Array('be','bi','bm','cb','cba','cd','ce','cf','cfi','ch','cj','cl','cm','cn','cp','fm');a['kh'] = new Array('ce','dc','dcb','dcba','de','df','di','gi','ha','hb','hc','hd','hg','hgf','hgfe','hi','hj','hl','hlp','hm','ho');a['kj'] = new Array('ja','jc','je','jf','jfb','jg','jgd','jh','jm','jn','jo','jp');a['kji'] = new Array('eb','ec','ed','fd','ib','id','ie','iea','if','ifc','ig','ih','im','in','io','ip');a['kl'] = new Array('fl','ga','ha','hb','hc','la','lc','le','lg','lgb','lh','lhd','lm','ln','lo','lp');a['km'] = new Array('eb','ib','if','ifc','mb','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','ml','mn','mno','mnop');a['kn'] = new Array('ib','jc','mb','mc','mf','mi','mie','miea','na','nc','nd','ne','ng','ni','nj','njf','njfb','nl','nm','no','nop');a['ko'] = new Array('ja','na','ne','ni','oa','ob','od','of','oh','oi','oj','oje','ol','on','onm','op');a['kp'] = new Array('lc','oi','pb','pc','pe','pg','pi','pj','pl','plh','plhd','po','pon','ponm');a['la'] = new Array('ab','abc','abcd','ae','aei','aeim','af','afk','afkp','ag','ah','aj','an','ao','bh','ej','ejo','en','in');a['lc'] = new Array('ae','aei','aeim','an','be','bf','bfj','bfjn','bi','bm','bo','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','ch','cj','cm','cn','cp');a['le'] = new Array('ab','abc','abcd','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ej','ejo','ek','en','ep','in','io','jp');a['lf'] = new Array('ab','abc','abcd','ah','ei','eim','ej','ejo','en','ep','fa','fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fk','fkp','fm','fo','in');a['lg'] = new Array('fi','fm','ga','gc','gd','gf','gfe','gh','gi','gj','gjm','gk','gko','gn','gp');a['lgb'] = new Array('ae','aei','aeim','aj','an','ao','ba','bc','bcd','be','bf','bfj','bfjn','bh','bi','bk','bm','bo','bp','en','fo');a['lh'] = new Array('gi','ha','hb','hc','hg','hgf','hgfe','hi','hj','hk','hkn','hm','ho');a['lhd'] = new Array('be','bi','bm','ce','cf','cfi','cj','cm','cn','dc','dcb','dcba','de','df','dg','dgj','dgjm','di','dk','dn','do','fm','gn');a['lk'] = new Array('kb','kd','ke','kf','kfa','kg','kgc','kh','km','kn','ko','kp');a['lkj'] = new Array('ja','jc','je','jf','jfb','jg','jgd','jh','jm','jn','jo','jp');a['lkji'] = new Array('eb','ec','ed','fd','ib','id','ie','iea','if','ifc','ig','ih','im','in','io','ip');a['lm'] = new Array('eb','ec','fd','ib','id','if','ifc','ig','jh','mb','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','mn','mno','mnop');a['ln'] = new Array('eb','ib','if','ifc','jc','mb','mc','mf','mi','mie','miea','mj','mjg','mjgd','na','nc','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nm','no','nop');a['lo'] = new Array('ib','ja','jc','kd','mb','mc','mf','mi','mie','miea','na','nc','nd','ne','ng','ni','nj','njf','njfb','oa','ob','od','of','oh','oi','oj','oje','ok','okg','okgc','on','onm','op');a['lp'] = new Array('ja','kb','na','ne','ni','oa','ob','of','oi','oj','oje','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','po','pon','ponm');a['mb'] = new Array('ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bo','bp','cg','cgk','cgko','ch','cl','cp','gp');a['mc'] = new Array('dh','dhl','dhlp','dk','do','be','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cn','cp','gn','ho');a['mf'] = new Array('ba','be','cd','cg','cgk','cgko','ch','cl','cn','cp','dh','dhl','dhlp','do','fa','fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fk','fkp','fl','fo','gl','gp');a['mh'] = new Array('ce','dc','dcb','dcba','de','df','gi','ha','hb','hc','hd','hg','hgf','hgfe','hi','hj','hk','hkn','hl','hlp','ho','lo');a['mi'] = new Array('fd','ib','id','if','ifc','ig','ih','ij','ijk','ijkl','in','io','ip','jp');a['mie'] = new Array('eb','ec','ed','ef','efg','efgh','ej','ejo','ek','el','en','ep','fl');a['miea'] = new Array('ab','abc','abcd','af','afk','afkp','ag','ah','aj','al','an','ao','bg','bgl','bh','bk','bo','bp','ch','cl','cp','fo','gp');a['mj'] = new Array('fa','ja','jc','je','jf','jfb','jh','ji','jk','jkl','jn','jo','jp','kp');a['mjg'] = new Array('ga','gb','gc','gf','gfe','gh','gi','gk','gl','gn','gko','gp');a['mjgd'] = new Array('ce','dc','dcb','dcba','de','df','dh','dhl','dhlp','di','dk','dn','do','ho');a['mk'] = new Array('dc','dcb','dcba','de','ga','gb','ha','hb','hc','hd','hg','hgf','hgfe','hi','kb','kd','ke','kf','kfa','kg','kgc','kh','kj','kji','kl','kn','ko','kp','lp','ol');a['ml'] = new Array('ga','ha','hb','hc','hg','hgf','hgfe','la','lc','le','lf','lg','lgb','lh','lhd','lk','lkj','lkji','ln','lo','lp');a['mn'] = new Array('ja','kd','na','nc','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nl');a['mno'] = new Array('kb','oa','ob','od','of','oh','oi','oj','oje','ok','okg','okgc','ol');a['mnop'] = new Array('ga','ha','hb','hc','ke','la','lc','le','lf','lg','lgb','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd');a['na'] = new Array('ab','abc','abcd','ae','aei','aeim','af','afk','afkp','ag','ah','aj','al','ao','bg','bgl','bh','bk','bp','ch','cl','fo','gp');a['nc'] = new Array('be','bi','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cp','dh','dhl','dhlp','fm');a['nd'] = new Array('be','ce','cf','cfi','dc','dcb','dcba','de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','do','ho');a['ne'] = new Array('ab','abc','abcd','af','afk','afkp','ag','ah','al','bg','bgl','bh','ch','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ej','ejo','ek','el','ep','fl');a['ng'] = new Array('be','cb','cba','ce','cf','cfi','cm','dh','dhl','dhlp','do','ga','gb','gc','gd','gf','gfe','gh','gi','gj','gk','gko','gl','gjm','gp');a['ni'] = new Array('ab','abc','abcd','ag','ah','al','bh','eb','ec','ed','ef','efg','efgh','ek','el','ep','fd','fl','ib','id','ie','iea','if','ifc','ig','ih','ij','ijk','ijkl','im','io','ip','jp');a['nj'] = new Array('ja','jc','je','jg','jgd','jh','ji','jk','jkl','jm','jo','jp');a['njf'] = new Array('fa','fc','fd','fe','fg','fgh','fi','fk','fkp','fl','fm','fo');a['njfb'] = new Array('ba','bc','bcd','be','bg','bgl','bh','bi','bk','bm','bo','bp','ch','cl','cp','gp');a['nk'] = new Array('ga','gb','kb','kd','ke','kf','kfa','kg','kgc','kj','kji','kl','km','ko','kp');a['nkh'] = new Array('ce','dc','dcb','dcba','de','df','di','gi','ha','hb','hc','hd','hg','hgf','hgfe','hi','hj','hl','hlp','hm','ho');a['nl'] = new Array('dc','dcb','dcba','de','ha','hb','hc','hg','hgf','hgfe','hi','la','lc','le','lf','lg','lgb','lh','lhd','lk','lkj','lkji','lm','lo','lp');a['nm'] = new Array('eb','ec','ed','fd','ib','id','if','ifc','ig','ih','jh','mb','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml');a['no'] = new Array('kb','oa','ob','od','of','oh','oi','oj','oje','ok','okg','okgc','ol');a['nop'] = new Array('ga','ha','hb','hc','ke','la','lc','le','lf','lg','lgb','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd');a['oa'] = new Array('ab','abc','abcd','ae','aei','aeim','af','afk','afkp','ag','ah','aj','al','an','bg','bgl','bh','ch','en');a['ob'] = new Array('ae','aei','aeim','ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bp','ch','cl','gp');a['od'] = new Array('be','bi','ce','cf','cfi','cj','cm','dc','dcb','dcba','de','df','dg','dgj','dgjm','dh','dhl','dhlp','di','dk','dn','fm','gn');a['of'] = new Array('ae','aei','aeim','an','bc','bcd','bg','bgl','bh','bp','ch','fa','fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fk','fkp','fl','fm');a['oh'] = new Array('be','ce','cf','cfi','dc','dcb','dcba','de','df','dg','dgj','dgjm','di','gi','ha','hb','hc','hd','hg','hgf','hgfe','hi','hj','hk','hkn','hl','hlp','hm');a['oi'] = new Array('ab','abc','abcd','ah','eb','ec','ed','ef','efg','efgh','el','ib','id','ie','iea','if','ifc','ig','ih','ij','ijk','ijkl','im','in','ip');a['oj'] = new Array('fc','fd','ja','jc','jf','jfb','jg','jgd','jh','ji','jk','jkl','jm','jn','jp');a['oje'] = new Array('ab','abc','abcd','ag','ah','al','bh','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ek','el','en','ep','fl');a['ok'] = new Array('kb','kd','ke','kf','kfa','kh','kj','kji','kl','km','kn','kp');a['okg'] = new Array('ga','gb','gd','gf','gfe','gh','gi','gj','gjm','gl','gn','gp');a['okgc'] = new Array('be','bi','bm','cb','cba','cd','ce','cf','cfi','ch','cj','cl','cm','cn','cp','fm');a['ol'] = new Array('ce','dc','dcb','dcba','de','df','di','ga','gi','ha','hb','hc','hg','hgf','hgfe','hi','hj','hm','km','la','lc','le','lf','lg','lgb','lh','lhd','lk','lkj','lkji','lm','ln','lp');a['on'] = new Array('jc','na','nc','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nl');a['onm'] = new Array('eb','ec','ed','fd','ib','id','if','ifc','ig','ih','jh','mb','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml');a['op'] = new Array('ga','ha','hb','hc','ke','la','lc','le','lf','lg','lgb','pb','pc','pe','pg','pi','pj','pk','pkf','pkfa','pl','plh','plhd');a['pb'] = new Array('ae','aei','aeim','aj','an','ba','bc','bcd','be','bf','bfj','bfjn','bg','bgl','bh','bi','bk','bm','bo','ch','en','fo');a['pc'] = new Array('be','bf','bfj','bfjn','bi','bm','cb','cba','cd','ce','cf','cfi','cg','cgk','cgko','ch','cj','cl','cm','cn','fm');a['pe'] = new Array('ab','abc','abcd','ag','ah','bh','ea','eb','ec','ed','ef','efg','efgh','ei','eim','ej','ejo','ek','el','en','fl','in');a['pg'] = new Array('ae','aei','aeim','an','ba','bc','be','bf','bfj','bfjn','bi','bm','cd','ch','fi','fm','ga','gb','gc','gd','gf','gfe','gh','gi','gj','gjm','gk','gko','gl','gn');a['pi'] = new Array('eb','ec','ed','ef','efg','efgh','fd','ib','id','ie','iea','if','ifc','ig','ih','ij','ijk','ijkl','im','in','io');a['pj'] = new Array('ab','abc','abcd','ah','ea','eb','ec','ed','ef','efg','efgh','el','fc','fd','im','in','ja','jc','je','jf','jfb','jg','jgd','jh','ji','jk','jkl','jm','jn','jo');a['pk'] = new Array('gd','jm','kb','kd','ke','kg','kgc','kh','kj','kji','kl','km','kn','ko');a['pkf'] = new Array('fb','fc','fd','fe','fg','fgh','fi','fj','fjn','fl','fm','fo');a['pkfa'] = new Array('ab','abc','abcd','aei','ae','aeim','ag','ah','aj','al','an','ao','bh','en');a['pl'] = new Array('ga','km','la','lc','le','lf','lg','lgb','lk','lkj','lkji','lm','ln','lp');a['plh'] = new Array('gi','ha','hb','hc','hg','hgf','hgfe','hi','hj','hk','hkn','hm','ho');a['plhd'] = new Array('be','bi','bm','ce','cf','cfi','cj','cm','cn','dc','dcb','dcba','de','df','dg','dgj','dgjm','di','dk','dn','do','fm','gn');a['po'] = new Array('ja','kd','oa','ob','od','of','oh','oi','oj','oje','ok','okg','okgc','ol');a['pon'] = new Array('jc','na','nc','nd','ne','ng','ni','nj','njf','njfb','nk','nkh','nl');a['ponm'] = new Array('eb','ec','ed','fd','ib','id','if','ifc','ig','ih','jh','mb','mc','mf','mh','mi','mie','miea','mj','mjg','mjgd','mk','ml');a[''] = new Array('');for (var i=0; i!=a.length; i++){ document.getElementById('l1').options[i+1] = new Option(''+a[i],''+a[i]);} function draw(){ var cvs = document.getElementById('cvs'); var ctx = cvs.getContext('2d'); ctx.beginPath(); ctx.clearRect(0,0,400,400); ctx.closePath(); var z=54; var w=(400-3*z)/2; var str = new Array(6); for (i=0; i!=6; i++) { var j = document.getElementById('l'+(i+1)).selectedIndex; str[i] = document.getElementById('l'+(i+1)).options[j].value; document.cookie = 'l'+(i+1)+'='+j+'; '; } ctx.lineWidth = 3.5; if ( document.getElementById('v').selectedIndex != 2 ) { var n; if ( str[5] != '' ) for (n=0; (n!=a[str[5]].length)*(a[str[5]][n]!=str[0]); n++); if ( !((str[5] != '')*(a[str[5]][n] == str[0])) ) { var j=str[0].substr( 0,1).toUpperCase().charCodeAt(0)-65; var k=str[0].substr( 1,1).toUpperCase().charCodeAt(0)-65; var n = Math.sqrt(Math.pow((k%4)-(j%4),2)+Math.pow(Math.floor(k/4)-Math.floor(j/4),2)); ctx.beginPath(); ctx.moveTo((j%4)*z+w+((j%4)-(k%4))/n*z/3,Math.floor(j/4)*z+w+(Math.floor(j/4)-Math.floor(k/4))/n*z/3); ctx.lineTo((j%4)*z+w,Math.floor(j/4)*z+w); ctx.stroke(); } } for (var i=0; i!=str.length; i++) { var j=str[i].substr( 0,1).toUpperCase().charCodeAt(0)-65; var k=str[i].substr(-1,1).toUpperCase().charCodeAt(0)-65; ctx.beginPath(); ctx.moveTo((j%4)*z+w,Math.floor(j/4)*z+w); ctx.lineTo((k%4)*z+w,Math.floor(k/4)*z+w); ctx.stroke(); var j=str[i].substr(-2,1).toUpperCase().charCodeAt(0)-65; var k=str[i].substr(-1,1).toUpperCase().charCodeAt(0)-65; var l=str[(i+1)%6].substr(0,1).toUpperCase().charCodeAt(0)-65; var m=str[(i+1)%6].substr(1,1).toUpperCase().charCodeAt(0)-65; var n=(j%4)-(k%4); var o=(l%4)-(m%4); var p=Math.floor(k/4)-Math.floor(j/4); var q=Math.floor(m/4)-Math.floor(l/4); var r=-p*((k%4)*z+w)-n*(Math.floor(k/4)*z+w); var s=-q*((m%4)*z+w)-o*(Math.floor(m/4)*z+w); var u=(n*s-o*r)/(o*p-n*q); var v=(p*s-q*r)/(q*n-p*o); if ( (i == 5)*(str[5] != '') ) for (n=0; (n!=a[str[i]].length)*(a[str[i]][n]!=str[0]); n++); if ( i != 5 || (i == 5)*(a[str[i]][n] == str[0]) ) { ctx.beginPath(); ctx.moveTo((k%4)*z+w,Math.floor(k/4)*z+w); if ( document.getElementById('v').selectedIndex == 0 ) { ctx.lineTo(u,v); ctx.lineTo((l%4)*z+w,Math.floor(l/4)*z+w); } else if ( document.getElementById('v').selectedIndex == 1 ) { ctx.quadraticCurveTo(u,v,(l%4)*z+w,Math.floor(l/4)*z+w); } ctx.stroke(); } else if ( (i == 5)*(a[str[i]][n] != str[0])*(document.getElementById('v').selectedIndex != 2) ) { n = Math.sqrt(Math.pow((k%4)-(j%4),2)+Math.pow(Math.floor(k/4)-Math.floor(j/4),2)); ctx.beginPath(); ctx.moveTo((k%4)*z+w,Math.floor(k/4)*z+w); ctx.lineTo((k%4)*z+w+((k%4)-(j%4))/n*z/3,Math.floor(k/4)*z+w+(Math.floor(k/4)-Math.floor(j/4))/n*z/3); ctx.stroke(); } } for (var i=0; i!=16; i++) { ctx.beginPath(); ctx.arc((i%4)*z+w,Math.floor(i/4)*z+w,7,0,2*Math.PI,false); ctx.fill(); } }; function change1(){ var n = document.getElementById('l1').selectedIndex; if ( n != 0 ) { var s = document.getElementById('l1').options[n].value; for (var i=0; i!=a[s].length; i++){ document.getElementById('l2').options[i+1] = new Option(a[s][i],a[s][i]); } document.getElementById('l2').selectedIndex = 0; document.getElementById('l3').selectedIndex = 0; document.getElementById('l4').selectedIndex = 0; document.getElementById('l5').selectedIndex = 0; document.getElementById('l6').selectedIndex = 0; document.getElementById('l3').length = 1; document.getElementById('l4').length = 1; document.getElementById('l5').length = 1; document.getElementById('l6').length = 1; } draw(); }; function change2(){ var n = document.getElementById('l2').selectedIndex; if ( n != 0 ) { var s = document.getElementById('l2').options[n].value; for (var i=0; i!=a[s].length; i++){ document.getElementById('l3').options[i+1] = new Option(a[s][i],a[s][i]); } document.getElementById('l3').selectedIndex = 0; document.getElementById('l4').selectedIndex = 0; document.getElementById('l5').selectedIndex = 0; document.getElementById('l6').selectedIndex = 0; document.getElementById('l4').length = 1; document.getElementById('l5').length = 1; document.getElementById('l6').length = 1; } draw(); }; function change3(){ var n = document.getElementById('l3').selectedIndex; if ( n != 0 ) { var s = document.getElementById('l3').options[n].value; for (var i=0; i!=a[s].length; i++){ document.getElementById('l4').options[i+1] = new Option(a[s][i],a[s][i]); } document.getElementById('l4').selectedIndex = 0; document.getElementById('l5').selectedIndex = 0; document.getElementById('l6').selectedIndex = 0; document.getElementById('l5').length = 1; document.getElementById('l6').length = 1; } draw(); }; function change4(){ var n = document.getElementById('l4').selectedIndex; if ( n != 0 ) { var s = document.getElementById('l4').options[n].value; for (var i=0; i!=a[s].length; i++){ document.getElementById('l5').options[i+1] = new Option(a[s][i],a[s][i]); } document.getElementById('l5').selectedIndex = 0; document.getElementById('l6').selectedIndex = 0; document.getElementById('l6').length = 1; } draw(); }; function change5(){ var n = document.getElementById('l5').selectedIndex; if ( n != 0 ) { var s = document.getElementById('l5').options[n].value; for (var i=0; i!=a[s].length; i++){ document.getElementById('l6').options[i+1] = new Option(a[s][i],a[s][i]); } } document.getElementById('l6').selectedIndex = 0; draw(); }; function change6(){ draw(); };if ( document.cookie.match(/l1=\d{1,3}; l2=\d{1,2}; l3=\d{1,3}; l4=\d{1,2}; l5=\d{1,2}; l6=\d{1,2}/) ){ var p = document.cookie.split('; '); var q = new Object(); for (var i=0; p.length-i != 0; i++){ var r = p[i].split('='); q[r[0]] = parseInt(r[1]); } document.getElementById('l1').selectedIndex = q['l1']; change1(); document.getElementById('l2').selectedIndex = q['l2']; change2(); document.getElementById('l3').selectedIndex = q['l3']; change3(); document.getElementById('l4').selectedIndex = q['l4']; change4(); document.getElementById('l5').selectedIndex = q['l5']; change5(); document.getElementById('l6').selectedIndex = q['l6']; change6();} draw(); document.getElementById('l1').onchange = function(){change1()}; document.getElementById('l2').onchange = function(){change2()}; document.getElementById('l3').onchange = function(){change3()}; document.getElementById('l4').onchange = function(){change4()}; document.getElementById('l5').onchange = function(){change5()}; document.getElementById('l6').onchange = function(){change6()}; document.getElementById('v').onchange = function(){draw()};})();6本ですべての点を通過する為には、初期の16点以外に曲がり角になるところが、最低2ヶ所以上必要となります。
その部分の表示を、角、ベジェ、非表示の三種類から選べる様にしておきました。
また、経路が閉じるケースは、角、ベジェどちらも閉じて描かれます。
解答を知りたい方は、こちらをどうぞ。
アフィン平面 -解答編-