ãšã³ããªãŒã ïŒããã¯ã¹ãããã§ããŸãïŒ
çµæã®ã²ãŒã ã®ã¢ã€ãã¢ãžã®éã¯éåžžã«é·ããã®ã§ããã ããã¯ãã¹ãŠãjQueryãåŠãã ãšããäºå®ããå§ãŸããŸããã ã¯ã é»éæ代ã§ããã æããªã¢ãã¡ãŒã·ã§ã³ã®å©ããåããŠãã¹ãã€ãªãŒããã£ãŒã«ãäžã§ããŠã¹ã¯ãªãã¯ã®å Žæã«ç§»åãããªã©ãããããçš®é¡ã®ãã ããªãããšãããŸããã ãã®ã¬ãã«ãå®ç§ã«éãããšããç§ã¯ãã®ãã²ãŒã ãã«ãªã³ã©ã€ã³æ§ãå ãããã£ãã ãããŠãããã¯å§ãŸããŸãã...
ç§ã«æåã«èµ·ãã£ãã®ã¯ã2çªç®ã®ãã¬ãŒã€ãŒãäœããããå ŽåãNç§ããšã«ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããããšã§ããã ãã¹ãŠã¯PHP + MySQLã§è¡ãããŸããã ã¯ãªãã¯ã®å Žæãšæéã«é¢ããæ å ±ã¯ããŒã¿ããŒã¹ã«ä¿åããããªã¯ãšã¹ãã«å¿ããŠãã¬ã€ã€ãŒã«çºè¡ãããŸããã æ®å¿µãªãããå¥è·¡ã®åå ã¯æ®ã£ãŠããŸããã
次ã®éèŠãªã¹ãããã¯çç£æ§ã§ããã ãµãŒããŒãžã®çµ¶ãéãªããªã¯ãšã¹ãã䌎ããªãã·ã§ã³ã¯èªç¶ã«æ¶ããä»ã®ãœãªã¥ãŒã·ã§ã³ãæ¢ãå¿ èŠããããŸããã ããããçš®é¡ã®Comet-sãflashãæŽçããŸãããããµãŒããŒã§ãã¹ãŠãååŸããããšããã§ããŸããã§ããã ãããŠãçªç¶NodeJSã«åºäŒããŸããã ããã¯äœãã§ããã ç§ã¯åäŸã®é ãæåã®ãã¹ããããŠããŠãSocket.ioã«ã€ããŠç¥ã£ããšãã¯å¬ããã£ãã§ãã
ã¢ã¡ãªã«ãçºèŠããæ¹æ³ã¯ãã¹ãŠã§ãããå€ã¯ç ãããã³ãŒããæžãããã¹ããè¡ããŸãã...ç§ã®ã²ãŒã ãæå®ã®äœçœ®ã«åºå®ãããŠããããšã«çªç¶æ°ã¥ãããšãã å°ãèããŠãç§ã¯ã²ãŒã ã«äŒŒãæåã®åµé ç©ãäœãå§ããŸããã ç¹°ãè¿ããŸãããã¯ã©ã€ã¢ã³ãã¯åãjQueryãåãã¢ãã¡ãŒã·ã§ã³ãåãçµµæåã®åãã§ããã ãã¹ãŠãåŸã ã«æ¹åããããã£ãããè¿œå ãããããã€ãã®çš®é¡ã®æŠåšãè¿œå ãããŸããïŒãããé¡æåã®ã·ã§ããïŒã 倧ããªãããã¯ãéåžžã®10k x 10kãã¯ã»ã«ã®ç»åã§ããã ãã®åŸãChrome Dev Toolsã«ã€ããŠåŠã³ãŸããã ç§ã®é è³ãã©ã®ããã«èšæ¶ãé£ã¹ãããèŠãŠãç§ã¯ã°ãŒã°ã«ã®è žãæ·±ãæãäžãå§ããŸããã HTML5ã¯Canvasã«ãã§ã«ååšããŠããããšãç¥ããŸããã ããã¯ãåã¶ããäžã€ã®çç±ã§ããã ç¹°ãè¿ãã«ãªããŸãããAPIãåŠç¿ããç ããªãå€ïŒç§ã¯äžè¬çã«JSãéåžžã«è¡šé¢çã«ç¥ã£ãŠããã®ã§ãè€æ°ã®å€ã®èšèããããŠä»ã¯ãããå¯æ¥ã«æ±ãæã§ãïŒã æ°é±éåŸãç§ã®ãã²ãŒã ãã¯çŽç²ãªJSãšHTML5ã§æžãçŽãããŸããã åœæãç§ã¯å€§åŠã§å®éšå©æãšããŠåããŠããŸããããåãå®éšå©æãšäžç·ã«åº§ã£ãŠæŸèæããã¹ãããŸããã æ°æ¥åŸãããã¯ãã§ã«éå±ã§ããããããŠãç§ã¯3Dã«æ²¡é ãå§ããŸãã...
ãããããã¯3Dã§ãã ãã©ãŠã¶ãŒã§3Dãã£ã®ã¥ã¢ãäœæããæããªè©Šã¿ã¯ãåºæ¬çã«å€±æããŸããã ã€ãŸãã圌ãã¯ããŒãžäžã§ããããäœæããèµ€ãããŒã«ãšã°ã¬ãŒã®ã¯ã©ã³ãžã£ããªãŒã®éããã¬ã³ããŒã§äžç·ã«åãããŸããã é©ãã¹ãããšã«ãèšäºãæžããŠãããšãããå€å€ã®åŠ»ããšåŒã°ãããã®å€ã®ãµãŒããŒã§ããŸã çããŠããããšãããããŸããã æã奜å¥å¿ã匷ã人ã®ããã®ãªã³ã¯ã -ããŠã¹ãå転ãããŠç¢å°ãåããããšãã§ããŸãã TreeJSã¯ç§ã«ãšã£ãŠéåžžã«è€éã«æããã®ã§ãåã³Googleãå©ãã«ãªããŸããã ããã§Unity3Dã«ã€ããŠåŠã³ãŸããã äžè¬çã«ãç§ã¯æããªããã©ãŒãã³ã¹ãã¹ããè¡ããšããæããªç¿æ £ãæã£ãŠããŸãã çµæã®æåã®èµ·åæã«ãã€ã³ã¿ãŒãã§ã€ã¹ãã©ãã»ã©äŸ¿å©ã§ãããã«é©ãããã®ãããªããã°ã©ã ãæäœããã¹ãã«ããªããŠããå±±ãå°éãæ»ã®ããå°å³ãäœæããããšãã§ããŸããã ããã¯ã©ããããããæ»ãšããŒãžããŸããã§ãã;ç§ã¯èª€ã£ãŠãããã®æ°äžãå°å³ã«è¿œå ããŸããããããŠãã¬ã³ããªã³ã°ãããšãããããªã«ãŒãã¯æåŠããŸããã ãŸããäœããã¹ãã...åªããã¬ã³ã¬é ããããŸããã
転æç¹ã
å€ãã®äººãã²ãŒã ãããŒããŒãã¬ãŒã·ã³ã°ãã®ãµã¯ã»ã¹ã¹ããŒãªãŒãç¥ã£ãŠãããšæããŸããïŒ ïŒèšäºãžã®ãªã³ã¯ãèŠã€ãããŸããã§ãããæ¿å ¥ã§ããŠå¬ããã§ãïŒã ãœãŒã·ã£ã«ãããã¯ãŒã¯äžã®SUCCESSFULã¢ããªã±ãŒã·ã§ã³ã®éçºè ãã©ãã ã皌ãããèŠã€ãããšããããããä»ã®äººãšåãããã«ããœãŒã·ã£ã«ãããã¯ãŒã¯çšã«èªåã®ã²ãŒã ãäœæãããã£ãã®ã§ãããã ãããŠãç§ã¯ããã«ç©æ¥µçã«åãçµã¿å§ããŸããã ãŸãããŠã§ãçšã®çµ±äžãããžã§ã¯ããæ§ç¯ã§ããããšãåŠã³ãŸãã...ã²ãŒã ã®ã¢ã€ãã¢ã¯æ¯èŒçåçŽã§ãã-äœããšé女ãšã®ç¬èªã®ã©ã€ã³ã å£çµããŠèŠããäœããåŸãããã«ãç§ã¯ãã§ã«ã²ãŒã ã®ããã«ã¢ããããããªã©ãæãããšãã§ãããã¶ã€ããŒãšäº€æžãå§ããŠããŸããã ãã¡ããã誰ããç±å¿ã«åãçµãããšãæãã§ããªãã£ãã®ã§ãããæ·±å»ãªãããžã§ã¯ãã®åæäºç®ã®ããã®ãã±ãããåããããã«ããããç°¡åãªãäœããããããšã«ããŸããã ãã®ãã·ã³ãã«ãªãã¢ã€ãã¢ã¯ãHTML5ã§ãªã³ã©ã€ã³ã®2Dã¬ãŒã¹ãè¡ãããšã§ããã察æŠçžæãã¯ãªãã¯ããŠåŸ ã£ãŠãåã£ãïŒ/ Lost =ïŒããšãããªã³ã©ã€ã³ã¬ãŒã¹ã§ã¯ãªãããã©ãã¯äžã§è»ãã³ã³ãããŒã«ããæ¬ç©ã®ãªã³ã©ã€ã³ã¬ãŒã¹ã§ãã人çãç§ã¯ã¬ãŒã¹ããã©ãã°ããããšã決ãã=ïŒãŸããäœ...ã¿ãŒã³ãªããç©çåŠãæžãããŠ...èŠããã«ãå幎åŸã«ãã¹ãŠã20å°ã®è»ã§ãã¹ãçã§çµãã£ãã ãã§ã«ãã·ã³ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãæ¢ããŠç²ããŠããŸãããªããªãã çŸå®çãªïŒ2次å ã§ãïŒç©çåŠãäœãããšããŸãããã空åæµæããã«ã¯ã°ã©ãããã®ä»ã®ç¹æ§ãªã©ã®ãã©ã¡ãŒã¿ãŒãå¿ èŠã§ããã
ãããããããã®äººçš®ã¯ç§ã«ãšã£ãŠæããã¹ããã®ã§ããã ç§ã¯æ°æè¡ãšæ°æè¡ãç 究ããæŸèæããèªè»¢è»ãæãã€ããç§ã®ã¬ãŒãã«äœåºŠãåºããããŸãã...ãããŠããã®å幎éã§ãããçš®ã®ã¯ã©ã€ã¢ã³ã/ãµãŒããŒã¹ã±ã«ãã³ãç§ã«ãšã£ãŠå®ç§ã§ããã å ·äœçã«ã¯ããã£ã³ãã¹ã¯ã©ã€ã¢ã³ãã®nodejs + socket.ioãµãŒããŒã ããã€ããæ²ãã£ãããããŸããã£ãã ãããŠããããæ©èœããå Žåã¯ã觊ããªãã§ãã ãã=ïŒåºæ¬çã«ãèšèªã®ç¥èãäžè¶³ããŠããããã«åé¡ãçºçããŸãã.JSã«ãã§ã«çµã¿èŸŒãŸããŠããæãåçŽãªæ©èœã§ããããã®ååšãç¥ããã«èªåã§ãµã€ã¯ãªã³ã°ããŸããã ãµãŒããŒåŽã®å°ããªéšåã¯æ¬¡ã®ããã«ãªããŸããã
io = require('socket.io'); mysql = require('mysql'); players = []; //, . - . races = []; // , - 4 // - - ... io.sockets.on('connection', function(socket){ socket.on('message', function(msg){ msg = JSON.pars(msg); switch(msg.type){ case 1: ... break; ... } } }
ïŒèªæžã«èå³ããªããªã£ããèŠãã人-èšäºã®æåŸã®ãªã³ã¯ïŒ
swithã®äžã«ã¯ãç¹å®ã®å¿çããŠãŒã¶ãŒã«éä¿¡ããã³ãŒãããããŸããã ã¡ãªã¿ã«ãã±ãŒã¹ã«æ°åãæžãããšã¯ã§ããŸããã§ãããããŸã ç¥ããŸããã§ããããã®ããã50ãã®ã¡ãã»ãŒãžããããããããçš®é¡ã®ã¡ãã»ãŒãžãèŠããŠããå¿ èŠããããŸãããæ¿èªãã¬ãŒã¹ã®å§ãŸããã¬ãŒã¹ã®çµããããã£ãããããã³ããŸããŸãªã²ãŒã å ã€ãã³ãã ãœã±ããã®å Žåãã¹ã€ããæ§é ã䜿çšãã代ããã«ãããã«socket.onïŒãã¡ãã»ãŒãžã¿ã€ãã...ïŒãèšè¿°ã§ããŸããããã®ã¢ãããŒãã§ã¯ã¹ãã²ããã£ã®äœåãªéšåãäœæãããã³ãŒããæžãã®ã¯ããŸã䟿å©ã§ã¯ãªããããæçµçãªã²ãŒã ã®ãµãŒããŒéšåã¯çŽæ¥èšè¿°ãããŸããŸãã«ããã ã€ãŸãããã®ãããªã¹ã±ã«ãã³ãåŸã§ç§ã¯ãŸã ããªããæããã®ãäœã§ãæžãããšãã§ããå Žåã«æ°ã¥ãã=ïŒã ã¯ã©ã€ã¢ã³ãã§ã¯ããã¶ã€ã³ã¯1察1ã§ããããã¹ãŠã®ãã¬ãŒã€ãŒã®é åã¯ãããŸãããããèªäœïŒããã³ã°ããŒãã«ïŒã®ãªããžã§ã¯ããšãçä¿¡ã¡ãã»ãŒãžãã³ãã©ãŒã®åœ¹å²ãæ ã巚倧ãªé¢æ°ã»ããïŒã°ããŒãã«ïŒã®ã¿ããããŸãã
åŸã ã«ãJSãNodeJSãããã³socket.ioã®æ©èœãåŠã³ãŸããã æ¥ç¶ã®æ倧æ°ã®æåã«æ£åžžã«å€±æãããã¹ããèŠããŠããŸãã 10k +-250æ¥ç¶ã§ã¯ãsocket.ioã¯å¿çæ§ã倱ããæ°ããæ¥ç¶ãåãå ¥ããŸããã§ããã é·ãéšãã®åŸããã®èšäºã¯åœ¹ã«ç«ã¡ãŸããã ããã«ã¯ãã¹ãŠã詳ãã説æãããŠããã®ã§ãç¹°ãè¿ãã¯ããŸããã
ç§ãèšã£ãããã«ãã¬ãŒã¹ã§ç§ã¯å幎éãã¿ãŒãå¡ãããŸããããããŠããã以äžã«ååãªåããããŸããã§ããã 3Dã²ãŒã ã®ã¢ã€ãã¢ãå®å šã«å¿ããŠããŸã£ãã®ã§ãããããã¯ããŒã¿ããŒã¹æ§é ãæã€éšå±ã®ãã¢ã«whatmanããããŸããã§ããã ãããŠä»ãã¬ãŒã¹ã¯ç§ã«ãšã£ãŠè€éãããã®ã§ãã¿ã¹ã¯ãããã«ç°¡çŽ åããé£è¡æ©ã空äžã«é£ã°ãããäºãã«å°æããããšã«ããŸããã
ç§ã®ã²ãŒã ãç§ã®ã²ãŒã ...
æåã®ããŒãžã§ã³
ããžãã¯ãšGovnokod
ããã§ãããæŽããæ¥ãç§ã¯è·å Žã«åº§ã£ãŠç ä¿®çãä¹ããåã³ãã£ã³ãã¹ãè©Šãå§ããŸããã æåã®å®éšã¯æ°åããªããã®ã§ãã-åºå Žãå°ãªããšããŸã£ããã«åããããã«ïŒåºå Žãã¬ãŒã¹ã§èµ°ã£ãåŸãç§ã¯ãã§ã«ãããã©ããã£ãŠãã£ãã®ããå¿ããŠããŠãæ°ããç¥èã§ããäžåºŠæžãçŽãããšã«ããŸããïŒã ãã¡ããã圌ã¯çŽ10ååŸã«åãå§ããŸãã...ãããŠåœŒã¯ããŒç®¡çãè¿œå ããããšã決ããŸãã-äžäžã ãããŠããã¹ãŠã倱éããŸããã è¡åãšãã©ã³ã¹ã©ã€ããåãããã®ãã£ã³ãã¹ã¯ãããééã£ãŠããã...ããŸãã«ãå€ãã®èšç®ããã£ããããã³ãŒããããã²ãŒãã§ããªããªããŸããã ãã¹ãŠã®ãç©çåŠãã¯5幎çã®å¹ŸäœåŠããŸãã¯ããŸããŸãªäžè§åœ¢ã®å¹ŸäœåŠã«åºã¥ããŠããŸããã=ïŒç§ã¯åŠæ ¡ã§äžè§æ³ãå«ã£ãŠããŸããããåŸæããŸããã äžè§åœ¢ã®èšç®ã¯å€§ããããŠéãã£ãããäžè§æ³ã®åºç€ãç 究ããŠãæãè ãäœã§ããããæã£ãã ããããäžè§æ³ã䜿çšãããšããŠãã
else if(player[pid].key.up == false){ if(player[pid].key.down == true){ if(player[pid].alfa >= -359){ player[pid].alfa -= (1.4*(time/player[pid].speed)); } else{ player[pid].alfa = 0; } player[pid].x += k2*Math.cos(k1*player[pid].alfa*Math.PI/180)*2*(time/player[pid].speed); player[pid].y += k2*Math.sin(k1*player[pid].alfa*Math.PI/180)*2*(time/player[pid].speed); player[pid].x = rezak(pid,real,player,k1,k2); if(pid == 'green'){ real['green'].x = player['green'].x + k2*(player[pid].rad * Math.sin(player['green'].alfa*Math.PI/180)); real['green'].y = player['green'].y-player[pid].rad + k2*(player[pid].rad * Math.cos(player['green'].alfa*Math.PI/180)); } else if(pid == 'red'){ real['red'].x = player['red'].x + k2*(player[pid].rad * Math.sin(player['red'].alfa*Math.PI/180)); real['red'].y = player['red'].y-player[pid].rad + k1*(player[pid].rad * Math.cos(player['red'].alfa*Math.PI/180)); } } player[pid].x += k2*Math.cos(k1*player[pid].alfa*Math.PI/180)*2*(time/player[pid].speed); player[pid].y += k2*Math.sin(k1*player[pid].alfa*Math.PI/180)*2*(time/player[pid].speed); player[pid].x = rezak(pid,real,player,k1,k2); if(pid == 'green'){ real['green'].x = player['green'].x + k2*(player[pid].rad * Math.sin(player['green'].alfa*Math.PI/180)); real['green'].y = player['green'].y-player[pid].rad + k2*(player[pid].rad * Math.cos(player['green'].alfa*Math.PI/180)); } else if(pid == 'red'){ real['red'].x = player['red'].x + k2*(player[pid].rad * Math.sin(player['red'].alfa*Math.PI/180)); real['red'].y = player['red'].y-player[pid].rad + k1*(player[pid].rad * Math.cos(player['red'].alfa*Math.PI/180)); } ctx.save(); ctx.translate(player[pid].x, player[pid].y-player[pid].rad); ctx.rotate(k1*player[pid].alfa*Math.PI/180); ctx.drawImage(player[pid].img, -22,+(player[pid].rad-8)); ctx.restore(); }
ç§ã¯ä»ãèšäºãæžããŠããããç§ã®ã³ãŒãã§ã¯ãªãããšãç§ã®ç«ã«èšŒæããŠããŸãã ã³ãŒãã«ã¯ãç§åŠçãªçªç Žã®æ¹æ³ã§éžæãããå®æ°ããããšèšã£ãŠããã®ã§ã¯ãããŸãã...æ®ãã®ã³ãŒããèŠããŠãã ããèªè ã®ç掻ã«ãšã£ãŠå±éºã ãšæããŸãã ãã¹ãŠã®åé¡ã¯ãæ¯åå€æãã£ã³ãã¹ãå®è¡ããå¿ èŠããã£ãããã§ããããã®ããããã¬ãŒã³ã®REAL座æšïŒãŠãŒã¶ãŒãèŠããã®ïŒããã£ããããã®ã¯éåžžã«é£ãããå°ãªããšããã¬ãŒã³ã®ããããèšç®ããããã«å®éã®åº§æšãå¿ èŠã§ããïŒã³ãŒãã§ïŒããšãã°ãcanvasã®åº§æšã¯player [pid] .xãplayer [pid] .yã§ãããå®éã®åº§æšã¯real ['red']ãxããã³real ['red']ãyïŒ-å€æ°åã®éžæã«ã€ããŠã¯å°ããªãã§ãã ãããç§ã¯ã³ãŒããéããããã«...ïŒïŒç§ã®ã³ãŒãã®ããããªã³ããŒã¢ã³ãããŒã¹ããã³ã¡ã³ãã¯ãšãŠããã§ã¹ããã ã£ããç§ã¯ãã®ç¬éããèŠããŠããããªããªã ããããããã¯requestAnimationFrameã®ãã©ã®ããã«æ©èœããããç解ããŠããŸããïŒ
function animate(id,pid,appid,imagesD,player,real,warID){ // #$ time = new Date() - time2; requestAnimationFrame( function(){animate(id,pid,appid,imagesD,player,real,warID);},ctx); drive(id,pid,appid,imagesD,player,real,warID); // time2 = new Date(); }
ã¡ãªã¿ã«ãããã§ããã¹ãŠã®ã²ãŒã ããžãã¯ã¯ãµãŒããŒã«è»¢éãããŸããã ç¹ã«ãæŠéäžã®ã²ãŒã ã¢ã€ãã ã匟è¬ãã©ã€ãã®è³Œå ¥ã ãã¹ãŠããµãŒããŒã«ãã£ãŠèæ ®ãããŸããã èšç®ã¯æå°éã§ããããã¹ãã§ã¯ãããŒã ã»ã¬ãã³2.4 GHzã1ç§ããã10kã®DIFFERENTã¡ãã»ãŒãžãå®å šã«ä¿æããŠããããšã瀺ãããŸããã ãã®ããããã®æç¹ã§ãã¯ã«ããã«ãŒã«å¯Ÿããé²åŸ¡ã®å§ãŸããå§ãŸããŸããã
Govnovdesign
éçºäžãã£ãšããã¶ã€ã³ã¯ã·ã³ãã«ã ãšæã£ãŠããŸããã ãã®ã°ãããèãã§ããªãªãŒã¹ã®ããŒãžã§ã³3ã®åŸã«ã ãå¥ããåããŸããã ããã«ã€ããŠã¯åŸã»ã©...äžè¬ã«ãæ確ã«ããããã«ããã²ãŒã ãã®ããã¶ã€ã³ãã®æåã®ããŒãžã§ã³ãæçš¿ããŸãã
ã芧ã®ããã«ãå¯Ÿç §çãªè²ãäžžãè§ããã¬ãŒã ã®æ¬ åŠã¯ãæã®ãããªãã®ã§ãã ãã©ã®ããã«ç§ã¯ã§ãããããããŠåãã-ããã§æè¡è ã¯ç解ããŠæ²»çããŸãããããŠãã€ã³ã¿ãŒãã§ãŒã¹èšèšè ããã¥ãŒãºã«ãã®çµµãæããããªãã£ãããšãæã¿ãŸãã
ã»ãã·ã§ã³ãåæ¥èšŒæžãå€âŠåæ çãªäœè«
å€ã¯ãã»ãã·ã§ã³ã®ãããªããŒãã¹ããŸãã¯ãããç¶æ ãæ¥ããšãã è©Šéšãåæ¥ããŠããªãåæ¥èšŒæžã®é²è¡ãè»éã®åé¡-ãã°ããã®éã²ãŒã ãå¿ããŠããŸãããã2ãæéïŒ6æã7æïŒè³æ©èœé害ããããŸããã ãããŠçªç¶ãã©ããããããç§ã¯å°ããã皌ããªãããšã«æ°ã¥ããæ°ããä»äºãæ¢ãå§ããŸããã Yandexã®ã¡ã€ã³ããŒãžã§ã³ã³ãœãŒã«ãéããŠããã³ã³ãœãŒã«ã確èªããŸããïŒ ãããšããããªãã¯jsãæžãããšãã§ããŸããïŒ company.yandex.ru/job/vacancies/interface_dev_mail.xml "ã èå³ã®ããã«ã圌ã¯ãã¹ãã®è³ªåã«çããå®å šã«å¿ããŸããã çŽ1é±éåŸãYandexãããSkypeã§ã€ã³ã¿ãã¥ãŒãåãããã§ããïŒããšããæçŽãå±ããŸããã åã¯éŠ¬é¹¿ã§ã¯ãããŸãã=ïŒèŠããã«ãç§ã¯ã€ã³ã¿ãã¥ãŒã§æ²æšã«å€±æããŸããã ã€ãŸãããããäœã§ãããããããã©ã®ããã«äœ¿çšããããã³ã³ã¹ãã©ã¯ã¿ãŒãæ°åãªã©ãåºæ¬çã«ç¥ããŸããã§ãã...èªåã§ãã¬ãŒãã³ã°ããã®ããããšå€æããJSããã¥ã¢ã«ãåã³å«ç ãå§ããŸããã ãããŠã圌ã¯ããã®æ°ãããã³ãŒã«ãã¢ãã©ã€ãããã«ã¯ãŒã«ã§ããããç解ããŸãã...ãããã®ããšã話ãããã«äœ¿ãããšãåŠãã ...ãããŠäœããããŸããã ã²ãŒã ãæžãçŽãããã«åº§ã£ãã
æåã®æã¡äžã
ãããŠãŸããããããšãã¶ã€ã³ã«ã€ããŠå°ã
ãã®å€ãç§ã¯å¹žéã«ã劻ã®ããã«iPhoneãè³Œå ¥ããWP 7.5ã§HTCãæã«å ¥ããŸããã äœããã®çç±ã§ãç§ã¯ã¿ã€ã«åŒµãã®ã€ã³ã¿ãŒãã§ãŒã¹ãæ¬åœã«å¥œãã§ããã ããã¯ã·ã³ãã«ã§ç°¡åã§ãã æ¬åœã«ã·ã³ãã«ã§ããããããã ãããŠãç§ã¯ã²ãŒã ããã¶ã€ã³ã§ãæžãçŽããå§ãããã£ãã®ã§ãã ç§èªèº«ã¯ãã¿ã€ã«ã䜿ã£ãç°¡åãªççšãšããç¹ã§ãã·ã³ãã«ãã€æ確ã«ãã¹ãã ãšå€æããŸããã èŠããã«ãç§ãã©ããã§èµ·ãã£ã
ã³ãŒããã³ãŒããã³ãŒããããäžåºŠ
ãããã®ã¿ã€ã«ãäœãã®ã¯å€¢äžã«ãªã£ãã®ã§ãïŒèª°ã®åã«ïŒïŒèŠãã³ãããããšã«ããããããã®ã¿ã€ã«ãå¥ã ã®ãã£ã³ãã¹ã«äœããŸããã ãã¡ããâŠ
ãã¹ãŠãæžãçŽããåŸãVK apiãèŠãŸãã ããã§ã¯ãããã¹ãå šäœãããã«è©³ãã説æããŸããã...ç°¡æœãã€ãã¡ããšè¡šçŸããããšããŸããå€ãã®æ©èœããããŸã-ååãªããã¥ã¡ã³ãããããŸããã ããã¥ã¡ã³ãã§ã¯ããã¹ãŠã®ãšã©ãŒã³ãŒãã瀺ãããŠããããã§ã¯ãªãããã©ã¡ãŒã¿ã®ååã説æãããŠããªããããçµæã¯äœã®åœ¢ã§ãè¿ãããŸããã ç§åŠçãªçªãæ¹æ³ã䜿çšããŠãã²ãŒã ã«å¯Ÿãããããã®ãã¹ãŠã®APIãªã¯ãšã¹ããäžåºŠã«1ã€èŠãŸããã ãã¡ãããç¿æ £ã®åé¡ã ãã以äžèšãããšã¯ãããŸããã çããããã°ãã¡ããã®ããã¥ã¡ã³ããæžããŠãã ããã åå¿è ã¯å€±ãããŸãïŒã
å®éã«ã¯ãæåã®æã¡äžã
ã²ãŒã ã®ãªãªãŒã¹äºå®æ¥ãè¿ã¥ããŠããã察åŠããå¿ èŠãããå°ããªåé¡ãçºçããŸããã éçºäžã¯ããŒã ãµãŒããŒã®ã¿ã䜿çšããŸãããããŸã ã¬ã³ã¿ã«ããå¿ èŠãããããšã¯æ¢ã«æããã§ããã ãéããªãã£ãã®ã§ãåœæã®ç§ã«ãšã£ãŠçæ³çãªãœãªã¥ãŒã·ã§ã³ã¯ãã¯ã©ãŠããµãŒããŒãåããããšã§ããã Selectelã¯å®ç§ã«è¡ããŸããã
8æXXXã«ãã²ãŒã ã®æåã®å€±æã®æ¥ãæ¥ãŸããã ç³è«ã¯ç³è«ã®1é±éåŸã«æ¿èªãããŸããããããã§ãè¯ãã§ãã ä»é±äžãç§ã¯ã¿ãŒã²ããäžã§ã»ãŒ1äžåã®VKåºåãæåºããŸãããããã¯ç§ã®ç¡é§ãªãéã®ç¡é§é£ãã§ãã æ°æéã§10kãé£ã³ãŸããã ãããããããã®æ°æéã¯çŽ æŽãããçµéšã§ããããšãå€æããŸããã åãŽãã®æåã®ãã¬ãŒã€ãŒã§ãNodeJSã¯è©Šè¡é¯èª€ãç¹°ãè¿ãå§ããŸããã...ãã£ãããŸã ç¥ããŸããã§ãããã²ãŒã ãã«ã¿ãã°ã«å ¥ããŸã§ãäœãã解決ããå¿ èŠããããŸããã ãã®ããªãªãŒã¹ããéå§ããåã«å€±æããããããã¹ãŠã§ã¯ãããŸããããå€ãã®ç©Žãéããããšãã§ããŸããã ç§ã¯æåã§nodejsãåèµ·åãã24æéã³ã³ãœãŒã«ã«åº§ã£ãŠãããŒãã1å以äžçœ®ãããããã«ããªããã°ãªããŸããã§ããã ãŸããbashã®ãããªããšã«ã€ããŠãç¥ããŸããã§ããããŸãã¯ãç¥ããããããŸããã§ããã
ããã€ãã®çµ±èš
åæã®é ããã®ã²ãŒã ã¯6ã7å人ãã€ã³ã¹ããŒã«ããŸããããããã¯ç§ãåã°ããããåŸãŸããã§ããïŒãã¡ãããæ¯èŒãããã®ã¯ãããŸããã§ããïŒã ãšããã§ãããã§é¢çœãïŒãŸãã¯å€åããã§ãªãïŒç¬éãçºçããŸãã
ïŒäžžã§å²ãã ïŒ
æ¥ä»ã衚瀺ãããããããã¬ã€ã€ãŒã®å¹Žéœ¢ãæšæž¬ããã®ã¯é£ãããããŸããã ãªãªãŒã¹æ¥ã®éžæã«ã¯æ³šæããŠãã ããã
ãã®åŸãç§ã¯å®å šã«çµ¶æçã§ããããã€ã³ã¹ããŒã«ã¯æžå°åŸåã«ãããæ倧ã§1ã5幎ã®ããã€ããããããªã³ã©ã€ã³ã§ããã ããã«ã¯ç§ãå«ãŸããŠããŸãã
ä»äºãç¶ããããå¯äžã®ãã©ã¹ã¯ãã²ãŒã ãè³Œå ¥ãããšããç 匱ãªç³ãåºã§ããã åæ¥ã«ã¯ã亀æã®ããã®å€ãã®ãªãã¡ãŒããããäŸ¡æ Œã¯æ倧8äžã«ãŒãã«ã§ããã äºæ¥ç®ãç§ã¯7000ãã«ãŸã§ç³ãåºãããŸãããä»ãç§ã¯åæããªãã£ãããšãåŸæããŠããŸãã
ãšã©ãŒåŠç
ãšã©ãŒ1.è¯ããã¶ã€ããŒãç§ããåºãŠãããšæããŸããã
ç§ã¯ãããããã«ç°¡çŽ åããããšã«æ±ºããscriptionãç¢æã§å·šå€§ãªãã¿ã³ãäœããŸãã-ãŸããå®æäžã®çç±ã§ãã®å¥è·¡ãèŠããããããŸããã
ãšã©ãŒ2.å°æ°ã®ãã€ãã¹ã«ïŒæŠåšãããã£ããããå¿ èŠã«å¿ããŠïŒ
ããã§ã¯èšå€§ãªäœæ¥ãè¡ãããŸããïŒãã¡ããããšã©ãŒã«ã€ããŠïŒã 12ã®æ°ããã¿ã€ãã®æŠåš/ããŒãã¹ãè¿œå ãããšããäºå®ã«å ããŠãç§ã¯ããããããããããšãã«ãããã®ããããã«ãç¹æ®å¹æããå ããŸãã-ãšããã§ãããã¯äœãèŠããŸããã§ããã ãã®æç¹ã§ãæžãæãã¯å ±ãããŸããã äžå®ã®ã¢ãžã¥ãŒã«æ§ããããŸããããããã§ãå°ãªããšãæ¯åæ°ããæŠåšãè¿œå ã§ããããã«ãªããã¢ã€ãã¢ãçãŸããŸããã Kulhackingããã®åŒ·åãªä¿è·ãããã«è¡ãããŸããã
ãã€ãŠãã®ããã ã£ãå ŽåïŒã¯ã©ã€ã¢ã³ããæã¡ãã¯ã©ã€ã¢ã³ãã¯ãã®ãããªæŠåšããããã©ããããã§ãã¯ãããã±ããïŒã¯ã©ã€ã¢ã³ãïŒã¯ãã±ãããçžæã«åœãã£ããã©ããã確èªãããããããªãããµãŒããŒã«ã¡ãã»ãŒãžãéä¿¡ããçžæã«ã¡ãã»ãŒãžãéä¿¡ããŸã圌ãhitã£ãã
ã¯ã©ã€ã¢ã³ãã¯ããŒãæŒããããŒã³ãŒãããµãŒããŒã«éä¿¡ããããµãŒããŒã¯ããŒãå²ãåœãŠãããŠãããã¬ãŒã€ãŒã確èªããæŠåšããªããŒããããŠããããæŠåšã䜿çšå¯èœãããã®é£è¡æ©ã§äœ¿çšã§ãããã©ããã確èªããŸãïŒé£è¡æ©ãè¿œå ããŸãããããããã«ã¯ãã©ã®æŠåšã䜿çšã§ããããªã©ãç¬èªã®å©ç¹ããããå°ããªæ¡ä»¶ããããããããŸãã åäžã®åœç©ããªãã£ãå Žåãã·ã§ããã«é¢ããããŒã¿ãäž¡æ¹ã®ãã¬ãŒã€ãŒã«éä¿¡ãããŸããã ããã§ãfalseãèŠã€ãã£ãå Žåãå°æã¯äžå¯§ã«ïŒèµ€ã倧æåã§ïŒãCOOLDOWNïŒ....ãã®ãããªã¡ãã»ãŒãžã衚瀺ããŸããã å®éã«ãèå³æ·±ãå Žåã¯ããã®ããã«ïŒ
case 'shot': if(Date.now() < players[socket.id].per[msg.typeW]){ console.log(''); } else if(players[socket.id].weapons[msg.typeW] <= 0){ players[socket.id].weapons[msg.typeW] = 0; console.log(' '); } else if(weapons[players[socket.id].plane].weapons.indexOf(msg.typeW) < 0 && weapons.weapons.indexOf(msg.typeW) >= 0){ console.log(' '); } else if(weapons[players[socket.id].plane].bonuses.indexOf(msg.typeW) < 0 && weapons.bonuses.indexOf(msg.typeW) >= 0){ console.log(' '); } else{ if(players[socket.id].wrate != weapons[players[socket.id].plane].rate + players[socket.id].rate && Date.now() >= players[socket.id].per.P){ players[socket.id].wrate = weapons[players[socket.id].plane].rate + players[socket.id].rate; } if(weapons.weapons.indexOf(msg.typeW) >= 0){ msg.per = weapons[msg.typeW].rate*1000/players[socket.id].wrate; players[socket.id].per[msg.typeW] = Date.now() + msg.per; players[socket.id].weapons[msg.typeW] -= 1; players[socket.id].pot[msg.typeW] += 1; msg.hit = weapons[msg.typeW].radius; msg.speed = weapons[msg.typeW].speed; msg.val = players[socket.id].weapons[msg.typeW]; msg.side = players[socket.id].side; } else if(weapons.bonuses.indexOf(msg.typeW) >= 0){ msg.per = weapons[msg.typeW].rate*1000*players[socket.id].wdamage; players[socket.id].per[msg.typeW] = Date.now() + msg.per; players[socket.id].weapons[msg.typeW] -= 1; players[socket.id].pot[msg.typeW] += 1; msg.val = players[socket.id].weapons[msg.typeW]; msg.side = players[socket.id].side; switch(msg.typeW){ case 'I': players[socket.id].life += 10; msg.life = Math.ceil(players[socket.id].life); if(players[socket.id].life > 100){ players[socket.id].life = 100; msg.life = 100; } break; case 'J': players[socket.id].wsuspension += 2; break; case 'L': players[socket.id].kamikadze = true; break; case 'P': players[socket.id].wrate = 100000; break; }; } socket.json.send(msg); io.sockets.socket(players[socket.id].oppSocket).json.send(msg); } break;
ã³ãŒãã®ç°¡åãªèª¬æã ãã¬ãŒã€ãŒ-ãã¹ãŠã®ãã¬ãŒã€ãŒã®é åãšsocket.idã«ããèå¥ã é åã®åèŠçŽ ã¯ãMySQLãè¿ãããã®ãå²ãåœãŠãæ¹æ³ã«ãã£ãŠãã²ãŒã ã«å ¥ããšããã«äœæããããã¬ãŒã€ãŒãªããžã§ã¯ãã§ãã å®éããŠãŒã¶ãŒãžã®éä¿¡äžã«ãšã©ãŒãçºçããå Žåããäºãã®éã«ããã®ã³ãŒãã¯èŠã€ãããŸããã§ããã weaponsã¯ãæŠåšã®ãã©ã¡ãŒã¿ãŒãšããŒãã¹ã®é åã§ãã
ç§ã¯ããããããªãããŒãªãã®ã§èª€ç®ããŸããïŒçžæãèšç®ããŸãã ããã«èª¬æããæ¹æ³... 1人ã®ãã¬ã€ã€ãŒã®çºå°ãæåããåŸã2人ã®ãã¬ã€ã€ãŒãèªåã®äžã«ãã±ãããåŒããããã圌ã«ïŒèªåã®äžã«ïŒåœãããã©ããã確èªããŸãã ååšããå Žåã¯ããäœãæããããç»é¢ã®ã©ãã«ãããããšããå 容ã§ã¡ãã»ãŒãžããµãŒããŒã«éä¿¡ããŸãã ãµãŒããŒã¯æ害ãèšç®ããäž¡æ¹ã®ãã¬ã€ã€ãŒã«éä¿¡ããŸãã ãã®å Žåãå¹»æ³çãªç¹æ®å¹æãæç»ããããã±ãããæ¶ããŸãã åæã«ããµãŒããŒã¯ããã«ã©ãã ãæ®ã£ãŠããããç掻ãªã©ããã§ãã¯ããŸãã -ãã¬ãŒã€ãŒ2ã®ã©ã€ããçªç¶0æªæºã«ãªã£ãå ŽåãããŒã¿ããŒã¹ã«ãã¹ãŠãèšé²ããåã£ããã¬ãŒã€ãŒãšè² ãããã¬ãŒã€ãŒã«é¢ããæ å ±ããã¬ãŒã€ãŒã«éä¿¡ããŸãã
èå³ãããå Žåãã¯ã©ã€ã¢ã³ãã®ãããèšç®ã³ãŒãã¯æ¬¡ã®ãšããã§ã
for(var i = 0; i < weapons_1.length; i++){ if(weapons_1[i].draw({t:avatars[0].time2, x:avatars[0].x, y:avatars[0].y, ra:avatars[0].ra}) == 'coordLimit'){ weapons_1.splice(i,1); } else if(weapons_1[i].s && Math.abs(avatars[0].x-weapons_1[i].x) < 80 && Math.abs(avatars[0].y-weapons_1[i].y) < 80){ var dl = Math.sqrt(((avatars[0].x-weapons_1[i].x)*(avatars[0].x-weapons_1[i].x))+((avatars[0].y-weapons_1[i].y)*(avatars[0].y-weapons_1[i].y))); if(dl < (avatars[0].w/4+weapons_1[i].w/4)+weapons_1[i].hit){ sock.send($.toJSON({type: 'hit', typeW: weapons_1[i].typeW, i: i})); weapons_1.splice(i,1); }; } }
weapons_1ã¯ãæµã«ãã£ãŠçºå°ããããã¹ãŠã®ããµã€ã«ã®é åã«ãããŸããã ã芧ã®ããã«ãã¡ã¢ãªãããŒãããªãããã«ããã±ããããã£ã³ãã¹ãé¢ãããšããã±ããã¯ã¢ã¬ã€ããåé€ãããŸãã
2çªç®ã®éšåã¯å°ãæé©åã§ãã ãããã©ãã»ã©åœ¹ç«ã€ãã¯ããããŸããããåãã¬ãŒã ãæ蟺ïŒäžè§åœ¢ã§ã¯ãã±ããã¯é£è¡æ©ïŒãšããŠã«ãŠã³ãããªãããã«ããŸãç»é¢äžã®çµ¶å¯Ÿäœçœ®ã®å°ããªèšç®ãå®è¡ããŸãã ãããŠããã±ãããããããã®åºæºã§é ãããå Žåãæ蟺ãèæ ®ããå¿ èŠã¯ãããŸããã
ã¢ãã¿ãŒ[0]ãšã¢ãã¿ãŒ[1]ã¯ãã¬ã€ã€ãŒãªããžã§ã¯ãã§ãã ãã®èšäºãèªãã åŸãäœããã®çç±ã§ãç§ã¯ãããã¢ãã¿ãŒãšåŒã¶ããšã«ããŸããã
ã¯ã©ã€ã¢ã³ããžã®ãããã®ãã€ãã³ããã¯æ¬¡ã®ããã«ãªããŸãã
case 'hit': avatars[0].life = msg.life; if(avatars[0].life <= 0) avatars[0].life = 0; if(avatars[0].life > 100) avatars[0].life = 100; $('#life span, #life2 span').html(msg.life); if(msg.damage <= 0){ particles.push(new Effect({type: 'message', text: ('!'), x: avatars[0].x, y: avatars[0].y, t: 1000})); } else{ particles.push(new Effect({type: 'message', text: ('-'+(Math.ceil(msg.damage))), x: avatars[0].x, y: avatars[0].y, t: 1000})); } switch(msg.typeW){ case 'C': avatars[0].ra -= msg.damage*msg.damage*avatars[1].koef; break; case 'E': avatars[0].debaff.E.per = Date.now(); avatars[0].debaff.E.tper = Date.now()+(msg.damage*500); particles.push(new Effect({type: 'message', text: (' !'), x: 350, y: 350, t: 2000})); break; } particles.push(new Effect({type: msg.typeW, x: avatars[0].x, y: avatars[0].y, side: 0, damage: msg.damage})); break; case 'pop': avatars[1].life = msg.life; if(avatars[1].life <= 0) avatars[1].life = 0; if(avatars[1].life > 100) avatars[1].life = 100; if(weapons_0.length > msg.i){ weapons_0.splice(msg.i,1); } if(msg.damage <= 0){ particles.push(new Effect({type: 'message', text: ('!'), x: avatars[1].x, y: avatars[1].y, t: 1000})); } else{ particles.push(new Effect({type: 'message', text: ('-'+(Math.ceil(msg.damage))), x: avatars[1].x, y: avatars[1].y, t: 1000})); } switch(msg.typeW){ case 'C': avatars[1].ra += msg.damage*msg.damage*avatars[1].koef; break; case 'E': particles.push(new Effect({type: 'message', text: (' ! !'), x: 300, y: 220, t: 2000})); break; } if(msg.typeW == 'F') msg.damage = 1; particles.push(new Effect({type: msg.typeW, x: avatars[1].x, y: avatars[1].y, side: 1, damage: msg.damage})); break;
ãã®å Žåããããããã¯ããããããšããèšèã®ç¿»èš³ã«éããªããããèšèªã®ç¥èãèªæ ¢ã§ããªã人ã¯ç§ãç解ã§ããŸãã particles-ç²åã®é åïŒç¹æ®å¹æïŒã ã³ã¡ã³ããããã®ã¯ãããŸããã ã·ã§ããã€ãã³ãã¯ãããŒãã£ã¯ã«ã®ä»£ããã«ãweapons_0ïŒç§ã®ããµã€ã«ïŒãšweapons_1ïŒãã®ããµã€ã«ïŒã®é åã䜿çšãããæ°ãããªããžã§ã¯ããè©°ã蟌ãŸããŠããã ãã§ãé¡æšã«ãã£ãŠçºçããŸãã
ééã3ãå€ãã®ãã°ã
å€æ°ãæ¥æ¿ã«ååšããªãããšã«ãããµãŒããŒã®ãã€ããŒã¯ã©ãã·ã¥ãé€ããŠãç§ã«ãšã£ãŠã®äž»ãªåé¡ã¯pingã§ããã ãããã³ãŒãããäœæ¥äžã«ã³ãã¯ã¿ãé£ãã§ããŸã£ãã®ã§ãã©ããããããåšåº«ããªããwifiã«åº§ããªããã°ãªããŸããã§ããã è·å Žã§ã¯ã圌ã¯è æããŠãããããé«å質ã®é 延ãä¿èšŒãããŠããŸãïŒéåžžã®18-20ã§ã¯ãªã150-200msïŒã 次ã®æŠåšããã¹ããããšããã°ãããããš2ã€ã®ãã©ãŠã¶ãŒãŠã£ã³ããŠã§èªç©ºæ©ã®äœçœ®ã®ç»åãå®å šã«ç°ãªã£ãŠããããšã«æ°ä»ããŸããã ãããŠãå€æããããã«ãwifiã¯ããã«ãããããããpingãããããããã¯ãã±ããæ倱ã«ãããªããŸãã 決å®éã-ããªããç²ããŠããªãå Žåã¯ãããã«èªã¿ãŸãã
äžè¬çã«ã²ãŒã ã§äœãèµ·ãããã ã¡ã«ããºã ã
ã¯ããèšãããšã¯ãããŸããã ãã¿ã³ãæŒã-é£è¡æ©ãäž/äžã«é£ã³ãŸãã ä»ã ãã圌ã¯ãã¬ã€ã€ãŒã®å Žæã§æ£ããæ¹åã«é£ã³å§ããŸãããæµã®å³ã§ã¯ãªããæµãé·ãéãã¿ã³ãæŒããŠèªåã«é£ãã§ãããšããäžéãªã¡ãã»ãŒãžãåŸ ã£ãŠããŸã...å®éãããã¯pingã®åé¡ã§ããpingãå€ãã»ã©ã2ã€ã®ã¯ã©ã€ã¢ã³ãã®ç»åãéããªããŸããåé¡ãå·§åŠã«è§£æ±ºããŸãã-NæéééïŒ1.5-3ç§ïŒããšã«åæãå®éã®ç¶æ³ã§è¡ãããŸãããã¡ããããã®åæäžã«èªç©ºæ©ã®ããããªãžã£ã³ãïŒååŸ2ã3ãã¯ã»ã«ïŒããããŸããããããã¯æµãæã£ãŠãããšããäºå®ã»ã©é¡èã§ã¯ãããŸããããã±ããã圌ãé£ã¶æ§åãèŠãããšãã§ããŸããããã¯ãã§ã«å¥ã®ã³ãŒããŒã«ãããããããããªãã«åãã£ãŠæã€ãããããŸããããããŠãååŸã«ã
ã·ã¹ãã å šäœã¯ãã¯ã©ã€ã¢ã³ãïŒãµãŒããŒæ€èšŒïŒ-ã¯ã©ã€ã¢ã³ãïŒè€æ°å¯ïŒã®ç²Ÿç¥ã§æ§ç¯ãããŸããã
äºåç®ã®æã¡äžã
ç©Žãéããããtry ... catchãèšå®ããbashã§å®è¡ãããŠãããµãŒããŒã確èªããæ¹æ³ãåŠç¿ãïŒäžã®ã¹ã¯ãªããïŒãçžæã®åçãåä¿¡ããã¬ãã«ã§VK APIãåæããTOP-30ãã¬ãŒã€ãŒãçºè¡ããŸãïŒåçãã¡ãªã¿ã«ãååïŒãåã³åºåã«ãéãè²»ããå§ããŸãããä»åã¯ãã¢ããªã±ãŒã·ã§ã³ãã£ã¬ã¯ããªå ã§ããæå³ã®ãããã®ã«ãªããŸãããé©åºŠãª100祚ïŒ700rïŒã§ãçŽ200ã300ã®ã€ã³ã¹ããŒã«ãååŸããŸãããã€ã³ã¹ããŒã«ãããã€ã³ã¹ããŒã«ã®çŽååãããã«åé€ããããããã150 cleanãã«ãªããŸããã
ããŒããå®è¡ãããŠãããã©ããã確èªããã¹ã¯ãªãã
#!/bin/bash echo `date` node /path/to/server.js & while 1>0 do ps -A | grep node > /dev/null if [ $? = "1" ] then echo `date` node /path/to/server.js & fi sleep 5 done
ã¡ãªã¿ã«ãç§ã¯èªåã®ããã«ãã°ãããã¹ã¯ãªãŒã³ãŠãŒãã£ãªãã£ãèŠã€ããããšã«æ³šç®ãã䟡å€ããããŸããä»åœŒå¥³ãªãã§ãæãªãã§ã
æ¹æ¹
æ 床ã®é¢ã§ã®å€±æãšãã¬ã€ã€ãŒããã®æãã®ãã£ãŒãããã¯ã«ãã£ãŠãç§ã¯ããã倱æã§ããããšã«åã³æ°ä»ããŸãããããããç§ãã¡ã®ããžãã¹ã®äž»ãªãã®ã¯ãããããããšã§ã¯ãããŸããïŒãããŠãŸãäœïŒã¯ããç§ã¯åã³ãã¹ãŠãæžãçŽãå§ããŸããã2åç®ã®æã¡äžãã§ã次ã®çµè«ãåºããŸããã
- äºåºŠãšç€ŸäŒæ§ã足ããªã
- ååãªã¢ããŒã«ïŒ
ããããšã®èšèšã¯éè¡æãåããŸãïŒ - ããããã®æ¬ åŠ
- ã¯ã©ã€ã¢ã³ãã§ã®è€éãªèšç®ïŒi7ã§ã®ãã®ãããªãã²ãŒã ãã§ã¯ã1ãã¬ãŒã ã®ã¬ã³ããªã³ã°ãšã¬ã³ããªã³ã°ã«8ã10ããªç§ããããŸãã泚æããŠãã ããïŒ
- ãµãŒããŒã«å€§ããªè² è·ãããããŸãïŒ30人ããªã³ã©ã€ã³-1ã³ã¢ã®10ïŒ ãã¡ã¢ãªã«ã€ããŠã¯èŠããŠããŸãããããã©ãã£ãã¯ã¯5Mbpsã§ãïŒ
- ãã¬ãŒãã³ã°ã¯ãããŸããããã®ããããã¬ã€ã€ãŒã«äœãã©ã®ããã«æ確ã«ããªãã®ã§ãã
ãã€ãã®ããã«ãç§ã¯åã³ãã¶ã€ã³ããå§ããŸãããããã¯çå®ã«äŒŒãŠããŸãããåéã«ãããèŠããŠã圌ãã¯ãWOWã¯ãã®ããããšããã¯ããã«åªããŠããïŒããšèšã£ãããç§ã¯ãã®WOWãæããªãã£ãããæçµçã«æåã®æ£ããäžæ©ãèžã¿åºãããèŠã€ããŠã話ãåã£ãŠãã²ãŒã ã®ãã¹ãŠã®åé¡ã«ã€ããŠç解ããŸããããã®äººã¯ãã¹ãŠãç解ãããã£ã³ãã£ãäœããŸãããïŒã«ãŒãã«ïŒ
ããã¯çŸåšååšããæçµããŒãžã§ã³ã§ããç§ã¯ãã以äžå€¢ãèŠãããšã¯ãããŸããã
ãŸãããã¶ã€ã³ã«ã€ããŠã¯ãã¢ã€ã³ã³ãã²ãŒã èªäœã®èæ¯ãæŠåšã®æ°ããå¹æãªã©ã®å°ããªå²ãåœãŠããŸã ãããŸããã
ããããšãåŠã¶ããšã¯ç§ã«ãšã£ãŠhemoã®æŽ»åã§ããããšãå€æããç§ã¯ã¡ããã©åãã¿ã³ã«ãã³ããäœæããããšãã§ããŸããã
ãã¬ã€ããã€ã³ã»ã³ãã£ããäœã
è¿œå ãããæ°æ©èœã®ãã¡ãäž»ãªææã¯ãã¡ãã«ãšããŒãã¹ãç²åŸããããšã§ãã100åãã¬ã€ãããã·ã³ã¬ã³ãªã©ã§ä»äžããŸããåœç¶ãããªãã®å£ã«ã¡ãã«ã®çŸããåçã眮ããšããææ¡ããããŸããäžç³äºé³¥ã瀟äŒçè©æ¬ºãå®äºããŸããããšããã§ãVKontakteãµãŒããŒã«åçãã¢ããããŒãããããã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
<? $url = $_POST['uploadUrl']; $postdata = array('photo' => '@/path/to/image/'.$_POST["type"].'.jpg', 'app_id' => '3509664', 'api_key' => '1234567890'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $data = curl_exec($ch); curl_close($ch); echo $data[1]; ?>
ãããã¯ãŒã¯äžã§æ¢è£œã®
ãŠãŒã¶ãŒã®å£ã«åçãèšé²ããŠæçš¿ããã¢ã«ãŽãªãºã ã«ã€ããŠèª¬æããŸããããæ£ç¢ºãã€è¿ éã«ã詳现ãªã³ã¡ã³ãã§ã³ãŒããå°ããŸãã
function wall(id, msg, typeMsg){ // : id , , VK.api('photos.getWallUploadServer', {https: 1}, function (data) { // (data.response.upload_url) $.post('upload.php', {'uploadUrl': data.response.upload_url, type: typeMsg)}, function(data) { // , upload.php , typeMsg - . - . var upload = $.parseJSON(data); // hash photo, VK.api('photos.saveWallPhoto', {'hash': upload.hash, 'photo': upload.photo, 'server': upload.server, 'uid': id, 'gid': '', https: 1}, function (data) { // ( ) // , " " wall.post. VK.api('wall.post', {'message': msg, attachments: data.response[0].id, https: 1}, function(data){ // }) }) }); }); }
ãã®ãããªã¹ãã²ããã£ãåŸãããŸããå¥åº·ã®ããã«é£ã¹ãïŒ
顧客ã®æé©å
ãã®ããããµã€ã³ãã³ãµã€ã³ã«ã€ããŠããã«è©³ããèªãããšã«ãããŸãã¬ã³ããªã³ã°ãšå®éã®åº§æšã®åã ã®èšç®ãåãé€ããŸããäŒããã¹ãç¹å¥ãªãã®ã¯ãããŸããããã³ãŒãã¯æããã«åªããŠããŸãã
this.draw = function(t){ this.x2 = this.x; this.y2 = this.y; this.s2 = this.s; this.r2 = this.r; this.cosa2 = this.cosa; this.a2 = this.a; this.timeK = (t > 40) ? 1+((t-40)/40) : 1; this.x += this.timeK*this.koef*this.s*Math.sin((90-this.ra)*this.PI/180); if(isNaN(this.x)) this.x = this.x2+(2*(this.timeK*this.koef*this.s*Math.sin((90-this.ra)*this.PI/180))); this.y -= this.timeK*this.koef*this.s*Math.sin(this.ra*this.PI/180); if(isNaN(this.y)) this.y = this.y2-(2*(this.timeK*this.koef*this.s*Math.sin(this.ra*this.PI/180))); this.s -= this.timeK*(this.koef*Math.sin(this.ra*this.PI/180))*(this.wspeed/(this.y/this.wspeed))/4.5; if(isNaN(this.s)) this.s = this.s2-(2*(this.timeK*(this.koef*Math.sin(this.ra*this.PI/180))*(this.wspeed/(this.y/this.wspeed))/4.5)); if(this.s <= 0) this.s = this.koef*0.0001; this.r = this.timeK*this.s*50/this.wradius; if(isNaN(this.r)) this.r = this.r2; if(this.r == 0) this.r = this.koef*0.000000001; this.cosa = this.timeK*(this.r*this.r+this.r*this.r-this.s*this.s)/(2*this.r*this.r); if(isNaN(this.cosa)) this.cosa = this.cosa2; this.a = this.timeK*this.koef*Math.acos(this.cosa)*180/this.PI; if(isNaN(this.a)) this.a = this.a2; for(var i = 0; i < weapons.all.length; i++){ if(this.id && this.per[weapons.all[i]] <= this.tper[weapons.all[i]]){ this.per[weapons.all[i]] += (t > 40) ? t+40 : 40; // ( ) } } if(this.id){ this.opacity = (this.per.M < this.tper.M) ? 0.6 : 1; if(this.debaff.M.per != 1) this.debaff.M.per += (t > 40) ? t+40 : 40; if(this.debaff.E.per <= this.debaff.E.tper) this.debaff.E.per += (t > 40) ? t+40 : 40; } if(this.x > 700+this.w) this.x = -this.w; if(this.x < -this.w) this.x = 700+this.w; if(this.key == 'up') this.ra += this.a else if(this.key == 'down') this.ra -= this.a; if(isNaN(this.x) || isNaN(this.y) || isNaN(this.r) || isNaN(this.a) || isNaN(this.ra) || isNaN(this.s) || isNaN(this.cosa) || isNaN(this.timeK)){ this.x = (par.side == 'left') ? 40 : 660; this.y = 450; this.s = this.wspeed; this.r = this.s*50/this.wradius; this.cosa = (this.r*this.r+this.r*this.r-this.s*this.s)/(2*this.r*this.r); this.a = 0; this.ra = this.a; } if(this.opacity >= 0.5){ ctx.globalAlpha = this.opacity; ctx.save(); ctx.translate(this.x, this.y); ctx.fillStyle = '#f00'; ctx.strokeStyle = '#000'; ctx.fillRect(-34,-40,(this.life/100)*67,4); ctx.strokeRect(-34,-40,67,4); ctx.rotate(-this.ra*this.PI/180); ctx.drawImage(this.image, -this.w/2, -this.h/2, this.w, this.h); ctx.restore(); } }
ããã§ã¯ãå€æ°åãé€ããã¹ãŠãæãããªããã§ããNaNã®ãã§ãã¯ã«ã€ããŠèª¬æããŸãããã¬ã€ã€ãŒã®1人ãäžå¿«ãªãã°ãçºèŠãïŒåŸã§ç¢ºèªããŸããïŒãèªç©ºæ©ãå·Šäžé ã«çªç¶è¡šç€ºãããã®ã§ãã²ãŒã ãçµäºã§ããŸããããã¯ãããã€ãã®å€æ°ãå°ããªç¢ºçã§èª€ã£ãŠèšç®ãããšã=== 0ã«ãªããããããå€æ°ã«åå²ããå¿ èŠãããããã®ãããªãããããå€æããããã§ãããã°ãNaNæ€èšŒã³ãŒãã«æ¯ããããåŸããã°ã¯æ¶ãã誰ããæºè¶³ããŠããŸãã
ifïŒthis.opacity> = 0.5ïŒ{...}ãã£ã³ãã¹æç»ã³ãŒãã¯ããã¬ãŒã³ãé衚瀺ã¢ãŒãã§ãªãå Žåã«ã®ã¿å®è¡ãããŸãïŒã¯ãããã®ãããªããŒãã¹ããããŸãïŒ
å¥ã®ãã€ã³ã-é¢æ°ã¯ãã©ã¡ãŒã¿ãŒtãåããŸãã匱ãã³ã³ãã¥ãŒã¿ãŒ/ã¿ãã¬ããã«ã¯åºæ¬çã«å¿ èŠã§ããã€ãŸãããã®ãã©ã¡ãŒã¿ãŒã«ã¯ãã¬ãŒã ã®æç»æéã«é¢ããinfaãå«ãŸããŠããã40ããªç§ïŒãã¹ãŠãæ¯ç§25ãã¬ãŒã ã®é床ã§åäœããå ŽåïŒãè¶ ããå Žåãèªç©ºæ©ã®ãã¹ãŠã®åããæ¯äŸçã«å¢å ãããå¿ èŠããããŸãããããã®å€æŽã«ãããã¬ã³ããªã³ã°æéãçŽ2ã3ããªç§ççž®ãããŸãããããã¯æªããããŸããã
次ã®ã¹ãããã¯ãèªç©ºæ©ããã®ç ãæé©åããããšã§ãããæãå€ãã®ã¡ã¢ãªãšããã»ããµãé£ã¹ãã®ã¯åœŒã§ãããç ã®å®è£ æ¹æ³ã«ã€ããŠã¯ããã®èšäºã§æžããŸãããæé©åã®ããã«ãå¥ã®ç»åãäœæããŸããããµã€ãºãå°ãããå転ããå¿ èŠã¯ãããŸããïŒã°ã¬ãŒã°ã©ããŒã·ã§ã³ïŒãèŠããªããã£ã³ãã¹ïŒãããã¡ïŒã«ãã€ã³ãããŠããã³ããŒããŸãããè€éãªããšã¯äœããããŸããããŸããããã€ã¹ã®é»åãæç»ã«ååãªå ŽåïŒt <10ïŒã«ã®ã¿ç²åãè¿œå ãããããã«ããŸãããããã«ãããããã«3ã4ããªç§ã®èšç®ãè¡ãããŸããã
ãã®åŸãæ倧ã®ç©ŽãèŠã€ãããŸãã-åæŠåšã®ãªããŒãçãšéãã¬ã³ããªã³ã°ããŸããæŠéã§ã¯ã次ã®ããã«ãªããŸãã
ç¢å°ã¯ãã¬ã³ããªã³ã°ãæãè€éãªéšåïŒã¢ãŒã¯ïŒã瀺ããŸããç§ã決ããã®ã¯ ã»ãšãã©ã®æŠåšã¯ã»ãšãã©ã®å Žåãã«ãªããŒãç¶æ ã§ãïŒãŸãã¯ã«ãŒããªããžãªãïŒäžã®ã¹ãã©ã€ãïŒïŒããããã®ç¶æ ãå¥ã®ãã£ã³ãã¹ã«åçŽã«æç»ããå¿ èŠã«å¿ããŠå®æãããã®ãæç»ããŸãïŒãŸã£ããæç»ããªãïŒãæãèå³æ·±ãã®ã¯ããããã®32åã®ååã®æé©åãæ倧ã®å¹æïŒ5ã6ããªç§ïŒããããããããšã§ããããã§ããã·ã§ã³ã¯å®äºã§ããäž¡æ¹ã®ãã¬ã€ã€ãŒã®ç ãæ倧ã«ãªããšïŒã©ã€ããå°ãªãã»ã©ç ãå€ããªããŸãïŒããã¬ãŒã ã¯1ã2ããªç§æç»ãå§ããç ããªããã°1ããªç§æªæºïŒå¹³åã§0.2ã0.3ïŒã«ãªããŸããChrome 32ã®ãã¹ãŠã®æ°å€ã
ãµãŒããŒã®æé©å
ãµãŒããŒäžã§æã¡äžãããããã¹ãŠã®ãã±ããããã§ãã¯ããã«ã¯ã³ã¹ããããããããŠãã¯ã©ã€ã¢ã³ãã«å¿çãéä¿¡ããããšã¯ã»ãšãã©ãããŸããã§ããïŒå€æããããã«ãsocket.ioã¯å®ç§ã§ã¯ãããŸããïŒããããã£ãŠãç§ã¯ãã®è²¬ä»»ãã¯ã©ã€ã¢ã³ãã«ç§»ããŸããããäžæ£è¡çºãã身ãå®ãããã«ããµãŒããŒäžã®çããããŠãŒã¶ãŒãéžæçã«ãã§ãã¯ããã ãã§ãïŒç§ã¯ãã®ããšãã¹ããŒãã«æ§ç¯ããŸãã-åãŠãŒã¶ãŒã¯ãµãŒããŒã«äžå®æ°ã®ãšã©ãŒãèç©ãããã®åŸãããæ éãªå¶åŸ¡ã確ç«ãããŸããç§ãå人çã«ãã¬ãŒã€ãŒã®ãã°ã確èªãããŸã§ã¯-ãŸããããã¯çããããã®ãæãŸã£ãå Žåã§ãããããŠãäŸãã°ãæŠåšããªãå Žåã®ãµãŒããŒããã®å¿çã¯è¡ããªã-ããããããã倱æããããšãè©æ¬ºåž«ã«éç¥ããå¿ èŠããããŸããïŒäžè¬ã«ãããã«ããããŒããšããŒã¹ã®äž¡æ¹ã®è² è·ã®å€§ããªéšåãé€å»ãããŸãããçµæã¯150人ã§5ïŒ CPUã§ããããªã³ã©ã€ã³ãäžè¬çã«ããããŒã¯èšæ¶ãé£ã¹ãŸãã
æŒ ç¶ãšãã顧客ã®æ倱
ã¢ããªã±ãŒã·ã§ã³ã«ã¿ãã°ã§ã³ã³ã¿ã¯ãã£ã«é£çµ¡ãããšããã€ã³ã¹ããŒã«çµ±èšãçŸå®ã«å¯Ÿå¿ããŠããŸããã§ãããå€ãã®ãŠãŒã¶ãŒã¯ã²ãŒã ãããŒããããã®ãåŸ ã€ããšããããŸããã§ããïŒå¹³åã§2ç§æªæº-ããã¯ãã©ãã·ã¥ã§ã¯ãããŸããïŒãç§ã¯åé¡ãæ¢ãå§ããäžéšã®ãã¬ã€ã€ãŒïŒ20ïŒ ïŒãhttpsã䜿çšããŠããããšãå€æããŸããããããŠãã¿ã³ããªã³ãšã®ãã³ã¹ãå§ãŸããŸãããæçµçã«ãsocket.ioãšnginxã¯èšå®ã§ããŸãããhttps socket.ioãµãŒããŒãäœæããnodejsãµãŒããŒã®ã³ãŒãã®äžéšã次ã«ç€ºããŸã
var fs = require('fs'); server = require('https').createServer({key: fs.readFileSync('/path/to/*.key'), cert: fs.readFileSync('/path/to/*.crt')}).listen(1006); io = require('socket.io').listen(server);
ã³ã¡ã³ãããããšã¯äœããããŸãããããµãŒããŒã§ã®èšŒææžã®æ³šæãšã€ã³ã¹ããŒã«ã¯å¥ãšããŠãããã«1æ¥ä»¥äžãè²»ãããŸããã
3åç®ã®æã¡äžã
ããããæã¡äžãã®æ¬ åŠãVkontakteã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããæ°èŠããããã¯ã®äžäœ9äœã«1000祚ïŒ7tys.r.ã¯å²åŒãªãïŒã§å ¥ããæ©äŒããããŸãã圌ã¯ç¥šãæããèŠæ±ãéä¿¡ãã1æ¥ïŒææ¥ã®ãã®æç¹ã§ïŒãéžæããŠåŸ æ©ããŸãããå€ã«ãªããšãã³ã³ãã¥ãŒã¿ãŒã§ãã¬ã€ããããã²ãŒã ã«ãã¬ãŒãã³ã°ãããããæ©èœãè¿œå ãããšããææ¡ãšãšãã«ãé 眮ãæåŠããããåŸãªããšããéç¥ãæ¥ãŸãããç§ã¯äž¡æ¹ãè¡ãããšã«ããŸããã
人工ç¥èœ
ç§ã¯ãã§ã«ã³ã³ãã¥ãŒã¿ãŒã§éã¶ããšã®å¯èœæ§ã«ã€ããŠèããŠããŸããããã©ãããããããã®æ··ä¹±ã«ã¯å ¥ããããããŸããã§ãããããã¯ããã€ãã®ããã«ãé·ãéåŒããããããšæããŸãããããããã²ãŒã ã³ãŒãã¯ã¢ãžã¥ãŒã«åŒã§ãããšæ¢ã«è¿°ã¹ãã®ã§ã1æ¥ç®ã¯ã³ã³ãã¥ãŒã¿ãŒãã©ã³ã¯ã殺ãããšãã§ãã2æ¥ç®ã¯ã³ã³ãã¥ãŒã¿ãŒã®é è³ãäœãã30ã¬ãã«ãèŠãŸãããåèšã§ããµãŒããŒåŽã«3è¡ïŒã¬ãã«æ§æãã«ãŠã³ãããªãïŒãè¿œå ããã¯ã©ã€ã¢ã³ãè¡ã«30ã40è¡ãè¿œå ããŸããããããŠãããã¯ãŸã£ããæªããªãããšãå€æããŸãããç§èªèº«ã¯AIã¬ãã«25ã殺ãããšã¯ã§ããŸããã
AIã³ãŒãã¯å°ãã§ããæµã®é£è¡æ©ã¯åžžã«é£è¡æ©ã«è¿œåŸããæ»æã®è§åºŠã蚱容å¯èœã«ãªããšããã¹ãŠã®æŠåšã§æã¡ãŸããããã§ãã7幎çã®äžè§æ³ãšãã以äžã¯ãããŸãããã³ãŒãïŒ
if(avatars[0].oppId == 'computer'){ var x = Math.abs(avatars[0].x-avatars[1].x); var y = Math.abs(avatars[0].y-avatars[1].y); var gp = Math.sqrt((x*x)+(y*y)); var rad = avatars[1].ra*Math.PI/180; var prom; if(avatars[0].x < avatars[1].x && avatars[0].y < avatars[1].y) prom = Math.asin(y/gp)+rad else if(avatars[0].x > avatars[1].x && avatars[0].y < avatars[1].y) prom = (Math.PI/2)-Math.asin(y/gp)+rad+(Math.PI/2) else if(avatars[0].x > avatars[1].x && avatars[0].y > avatars[1].y) prom = Math.asin(y/gp)+rad+Math.PI else if(avatars[0].x < avatars[1].x && avatars[0].y > avatars[1].y) prom = (Math.PI/2)-Math.asin(y/gp)+rad+(Math.PI*1.5); var sin = Math.sin(prom); var cos = Math.cos(prom); avatars[1].time1 -= 40; avatars[1].time2 -= 40; avatars[1].time3 -= 40; if(avatars[1].time2 <= 0 && avatars[0].levelBot == 0 && avatars[1].time3 <= 0){ if(weapons.learning[avatars[1].learning[0]]){ if(weapons.learning[avatars[1].learning[0]][avatars[1].learning[1]] == '^') $('#learning').append('<br/>') else $('#learning').append(weapons.learning[avatars[1].learning[0]][avatars[1].learning[1]]); avatars[1].learning[1] += 1; avatars[1].time3 = 90; if(avatars[1].learning[1] >= weapons.learning[avatars[1].learning[0]].length){ avatars[1].learning[1] = 0; avatars[1].learning[0] += 1; avatars[1].time2 = 1000; $('#learning').empty(); } } } if(weapons.learning[avatars[1].learning[0]] && avatars[0].levelBot == 0){avatars[1].x = -800} else{ if(sin > 0.02){ if(avatars[1].time1 <= 0){avatars[1].key = 'up'; avatars[1].time1 = 100/avatars[1].wradius} } else if(sin <= 0.02 && sin >= -0.02){ if(avatars[1].time1 <= 0){avatars[1].key = false; avatars[1].time1 = 100/avatars[1].wradius} } else if(sin < -0.02){ if(avatars[1].time1 <= 0){avatars[1].key = 'down'; avatars[1].time1 = 100/avatars[1].wradius} } if(avatars[1].y > 510){ if(Math.cos(rad) >= 0){avatars[1].key = 'up'; avatars[1].time1 = 100/avatars[1].wradius} else{avatars[1].key = 'down'; avatars[1].time1 = 100/avatars[1].wradius} } if(sin <= 0.035 && sin >= -0.035 || (sin <= 0.3 && sin >= -0.3 && gp < 30) || gp < 15){ for(var i = 0; i < avatars[1].all.length; i++){ if(avatars[1].weapons[avatars[1].all[i]] > 0){ avatars[1].per[avatars[1].all[i]] += 40; if(avatars[1].per[avatars[1].all[i]] >= avatars[1].tper[avatars[1].all[i]]){ switch(avatars[1].all[i]){ case 'I': if(avatars[1].life <= 20 && avatars[0].life >= 25){ sock.send($.toJSON({type:'shot',x:avatars[1].x,y:avatars[1].y,a:avatars[1].ra,koef:avatars[1].koef,typeW:avatars[1].all[i],side:avatars[1].sideName,bot: 1})); avatars[1].weapons[avatars[1].all[i]] -= 1; } break; case 'J': if(avatars[1].life <= 50){ sock.send($.toJSON({type:'shot',x:avatars[1].x,y:avatars[1].y,a:avatars[1].ra,koef:avatars[1].koef,typeW:avatars[1].all[i],side:avatars[1].sideName,bot: 1})); avatars[1].weapons[avatars[1].all[i]] -= 1; } break; default: sock.send($.toJSON({type:'shot',x:avatars[1].x,y:avatars[1].y,a:avatars[1].ra,koef:avatars[1].koef,typeW:avatars[1].all[i],side:avatars[1].sideName,bot: 1})); avatars[1].weapons[avatars[1].all[i]] -= 1; } } } } } } }
ã¢ã€ãã¢ã«å ããŠãããããåŒãåºãããšã¯äœããããŸãã;ã³ãŒãã䜿çšããããšã¯ãå§ãããŸããã
ifãããã¯ïŒavatars [1] .time2 <= 0 && avatars [0] .levelBot == 0 && avatars [1] .time3 <= 0ïŒ{...}ã¯ãã¬ãŒãã³ã°äžã§ãã AIã¬ãã«0ã§ãã¬ã€ããå Žåã«ã®ã¿çºçããŸããäžçªäžã®è¡ã¯ãã¡ãã»ãŒãžã®é åããã¡ãã»ãŒãžãæåã§è¡šç€ºãããïŒãã¡ãã·ã§ããã«ã§ãã¿ã€ããå°å·ãããïŒãšããããšã§ãã
ãŸããAIã«ã¯ãå£ããªããšãããããã¯ã«é¢ããããã€ãã®é è³ããããŸããããé«åºŠãäžåããšã圌ã¯ããªããç¡èŠãå§ããæ»ãªãªãããã«ã¿ã¯ã·ãŒãè©Šã¿ãŸãããŸã...ãšåœŒã¯ãŸããææ¥ããããæèœã«äœ¿çšããŠããŸããããšã«ããã§ã¯ãããŸããã
å®éãããã·ã§ã³ãå®äºããAIã®æºåãã§ããŠããããã¬ãŒãã³ã°ãè¡ãããŠããŸããåããããã¯ã«é 眮ãã2ã€ç®ã®ã¢ããªã±ãŒã·ã§ã³ã®ç®¡çè ã®æ¿èªãåŸ ã€ã®ã¯å°ããªããšã§ãããªãããã®çç±ã§ã2åç®ã¯3æ23æ¥ã«æãè¿ãé 眮æ¥ãéžæã§ããã®ã§ãåŸ ã£ãŠããŸãããããŠããããäœããã®æ°žç¶çãªãªã³ã©ã€ã³å©çã«ã€ãªããå Žåã¯ããéãçšéãªã©ã®åŒãåºãã«é¢ããèšäºãæžããŸãããããŸã§ã®ãšããããã®ã²ãŒã ã¯20祚ãæããŠããã®ã§ãäœã話ãããšã¯ãããŸããã
çµè«
- ããªãã¯ç§ã®ããã«ã§ããªã
- ããã«ãã¹ãããŸããã§ããã°ã²ãŒã ã§èŠãããšæãéžæã®å¹Žéœ¢ã«ããŽãªã®å人ã«å°ããŠãã ãããåçãèŠããŠããããã©ãã»ã©äŸ¿å©ããå°ããããšãã§ããŸãã
- ã²ãŒã ã«100500ãè¶ ããæ°ããæ©èœãè¿œå ããªãå Žåã¯ãã³ãŒãå šäœãæžãæããªãã§ãã ããïŒäžè¬çã«ãããã·ã³ãã«ãªãã®ããå§ããæ¹ãè¯ãã§ãã
- äžèšã®ãã¹ãŠã¯ãç§ãééãããã¹ãŠã®ææã®ã»ãã®äžéšã§ãããã£ã¬ã³ãžã«åããŸãããïŒ
- éå§-æåŸãŸã§çµäºããŸãããããïŒããªããæåã確信ããç¹å®ã®ç®æšãè¿œæ±ãã楜ãã¿ãæã£ãŠããªãå Žåã«ã®ã¿...ããã§ãªããã°ããªãã§ããïŒ
- é«äŸ¡ãªã·ã£ã³ããŒã§åµãæŽãããšããªãã§ãã ãããç³é¹žã§ããïŒããŸããŸãªæ¹æ³ã§ç解ã§ããæ¯butã§ãããæå³ã¯æ¶ããŸããïŒ
psããã«æžããã³ãŒãã䜿çšããããšããå§ãããŸãããã³ã¡ã³ãã§ãã£ãšããããããšãèããŠããã£ãšãšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ããããšç¢ºä¿¡ããŠããŸãããæž èŽããããšãããããŸããïŒ
æŽæ°ãªã³ã¯ã衚瀺ããããã®å€æ°ã®èŠæ±ãèæ ®ããŠãæ確ãªè¯å¿ããã£ãŠãç§ã¯ãããããã«æžããŠããŸãïŒåç §