ุชูŠูƒ ุชุงูƒ ุชูˆ "ุจู„ุง ุญุฏูˆุฏ"

ุชูŠูƒ ุชุงูƒ ุชูˆ ... ุงู„ุฌู…ูŠุน ู„ุนุจู‡ู… ุŒ ุฃู†ุง ู…ุชุฃูƒุฏ. ุงู„ู„ุนุจุฉ ุฌุฐุงุจุฉ ููŠ ุจุณุงุทุชู‡ุง ุŒ ุฎุงุตุฉ ุนู†ุฏู…ุง ุชุณุญุจ ุงู„ุณุงุนุฉ ููŠ ู…ูƒุงู† ู…ุง ููŠ ุงู„ุฏุฑุณ ุŒ ุฒูˆุฌูŠู† ุŒ ูˆู„ุง ูŠูˆุฌุฏ ุดูŠุก ููŠ ู…ุชู†ุงูˆู„ ุงู„ูŠุฏ ุจุงุณุชุซู†ุงุก ูˆุฑู‚ุฉ ุฏูุชุฑ ุงู„ู…ู„ุงุญุธุงุช ูˆู‚ู„ู… ุฑุตุงุต ุจุณูŠุท. ู„ุง ุฃุนุฑู ู…ู† ู‡ูˆ ุฃูˆู„ ู…ู† ุฎู…ู† ู…ุฑุฉ ูˆุงุญุฏุฉ ุจุฑุณู… ุตู„ุจุงู† ูˆุฏูˆุงุฆุฑ ููŠ 9 ู…ุฑุจุนุงุช ุŒ ูˆู„ูƒู† ู…ู†ุฐ ุฐู„ูƒ ุงู„ุญูŠู† ู„ู… ุชูู‚ุฏ ุงู„ู„ุนุจุฉ ุฃูŠ ุทู„ุจ ุŒ ุฎุงุตุฉ ูˆุฃู† ุงู„ู†ุงุณ ุชูˆุตู„ูˆุง ุฅู„ู‰ ุงู„ุนุฏูŠุฏ ู…ู† ุงุฎุชู„ุงูุงุชู‡ุง.



ุชุชู†ุงูˆู„ ู‡ุฐู‡ ุงู„ู…ู‚ุงู„ุฉ ุนู…ู„ูŠุฉ ุชุทูˆูŠุฑ ุฌุงูุง ุณูƒุฑูŠุจุช ู„ู„ุฐูƒุงุก ุงู„ุงุตุทู†ุงุนูŠ ู„ู„ุนุจ ุฃุญุฏ ู‡ุฐู‡ ุงู„ุงุฎุชู„ุงูุงุช ููŠ ู„ุนุจุฉ tic-tac-toe: ุธู‡ุฑุช ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ูˆุงุฏ ุŒ ู„ูƒู†ู†ูŠ ุฎููุชู‡ุง ุจุงู„ุฑุณูˆู… ุงู„ู…ุชุญุฑูƒุฉ ูˆุงู„ุตูˆุฑ. ุนู„ู‰ ุฃูŠ ุญุงู„ ุŒ ุนู„ู‰ ุงู„ุฃู‚ู„ ูŠุณุชุญู‚ ุงู„ู…ุญุงูˆู„ุฉ.
ุงู„ุงุฎุชู„ุงูุงุช ุจูŠู† ู‡ุฐุง ุงู„ุฅุตุฏุงุฑ ู…ู† ุงู„ู„ุนุจุฉ ูˆุงู„ุฃุตู„ ู‡ูŠ ูƒู…ุง ูŠู„ูŠ:

  1. ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุงู„ุญู‚ู„ ูƒุจูŠุฑู‹ุง ุจุดูƒู„ ุชุนุณููŠ (ุฅู„ู‰ ู…ุชู‰ ุณูŠุณุชู…ุฑ ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ู…ุญู…ูˆู„)
  2. ุงู„ูุงุฆุฒ ู‡ูˆ ุงู„ุฐูŠ ูŠุถุน 5 ู‚ุทุน (ุฅุฐุง ูƒุงู† ุจุฅู…ูƒุงู†ูƒ ุชุณู…ูŠุชู‡ุง ุจุฐู„ูƒ) ุนู„ู‰ ุงู„ุชูˆุงู„ูŠ.

ูƒู„ ุดูŠุก ุจุณูŠุท ... ูˆููŠ ู†ูุณ ุงู„ูˆู‚ุช ู…ุนู‚ุฏ: ู„ุง ูŠู…ูƒู† ุญุณุงุจ ู†ุชูŠุฌุฉ ุงู„ู„ุนุจุฉ ู…ุณุจู‚ู‹ุง ุŒ ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุงู„ุชู†ุงุธุฑูŠุฉ ุงู„ูƒู„ุงุณูŠูƒูŠุฉ. ุฃุฎุฐ ู‡ุฐุง "ุงู„ุฅุณู‚ุงุท ุงู„ุตุบูŠุฑ" ุงู„ูƒุซูŠุฑ ู…ู† ูˆู‚ุชูŠ ูˆุฃุนุตุงุจูŠ. ุขู…ู„ ุฃู† ุชุฌุฏู‡ุง ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู….

ู‚ุจู„ ุฃู† ู†ุจุฏุฃ


ุงุถุทุฑุฑุช ุฅู„ู‰ ุงู„ุงุนุชุฐุงุฑ ู…ู‚ุฏู…ุง ุนู† ุญุฌู… ุงู„ู…ู‚ุงู„ ูˆููŠ ุจุนุถ ุงู„ุฃู…ุงูƒู† ู„ู… ูŠูƒู† ุนุฑุถ ุงู„ููƒุฑ ูˆุงุถุญู‹ุง ุชู…ุงู…ู‹ุง ุŒ ูˆู…ุน ุฐู„ูƒ ุŒ ู„ู… ุฃุณุชุทุน ุงู„ุถุบุท ุนู„ู‰ ุงู„ู‚ุทูŠุน ุฏูˆู† ูู‚ุฏ ุงู„ู…ุญุชูˆู‰ ูˆุงู„ุฌูˆุฏุฉ.
ุฃูˆุตูŠ ุจุฃู† ุชุชุนุฑู ุนู„ู‰ ุงู„ู†ุชูŠุฌุฉ ุฃูˆู„ุงู‹ . ูƒูˆุฏ

ู…ูุงุชูŠุญ ุงู„ุงุฎุชุตุงุฑ ูˆุงู„ุฃูˆุงู…ุฑ:

  • ุฏ - ู…ู†ุธู…ุฉ ุงู„ุนููˆ ุงู„ุฏูˆู„ูŠุฉ ุณูˆู ุชุชุฎุฐ ุฎุทูˆุฉ ุจุงู„ู†ุณุจุฉ ู„ูƒ
  • T - ุงู†ุธุฑ ูˆุฒู† ุงู„ุฎู„ูŠุฉ
  • ุงูƒุชุจ SHOW_WEIGHTS = true ููŠ ูˆุญุฏุฉ ุงู„ุชุญูƒู… ู„ุนุฑุถ ุฃูˆุฒุงู† ุฌู…ูŠุน ุงู„ุฎู„ุงูŠุง ุงู„ุชูŠ ุชู… ุชุญู„ูŠู„ู‡ุง.

ู„ู†ุจุฏุฃ


ุชุญุชุงุฌ ุฅู„ู‰ ุงู„ุจุฏุก ููŠ ุชู†ููŠุฐ ุงู„ู„ุนุจุฉ ู†ูุณู‡ุง ุŒ ุฃูŠ ูƒุชุงุจุฉ ุทู„ุจ ู„ู„ุงุนุจูŠู† ุŒ ุญุชู‰ ุงู„ุขู† ุจุฏูˆู† ุจูˆุช. ู„ุฃุบุฑุงุถูŠ ุŒ ู‚ุฑุฑุช ุงุณุชุฎุฏุงู… ุฌุงูุง ุณูƒุฑูŠุจุช + jquery + bootstrap4 ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุนุฏู… ุงุณุชุฎุฏุงู…ู‡ ุนู…ู„ูŠู‹ุง ู‡ู†ุงูƒ ุŒ ูˆู„ูƒู† ู…ู† ุงู„ุฃูุถู„ ุชุฑูƒู‡ - ุฃูˆ ุฃู† ุงู„ุฌุฏูˆู„ ุณูˆู ูŠุทููˆ. ู„ุง ูŠูˆุฌุฏ ุดูŠุก ุฎุงุต ู„ู†ู‚ูˆู„ู‡ ุŒ ู‡ู†ุงูƒ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ูˆุงุฏ ุญูˆู„ js ุŒ jquery ูˆ bootstrap. ู„ุง ูŠุณุนู†ูŠ ุฅู„ุง ุฃู† ุฃู‚ูˆู„ ุฃู†ู†ูŠ ุงุณุชุฎุฏู…ุช MVC. ุนู„ู‰ ุฃูŠ ุญุงู„ ุŒ ู„ู† ุฃุดุฑุญ ุชู…ุงู…ู‹ุง ุฌู…ูŠุน ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ - ูƒุงู† ู‡ู†ุงูƒ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ูˆุงุฏ ุจุงู„ูุนู„.

ู„ุฐุง ุŒ ูƒุงู† ุงู„ู…ู„ุนุจ ุฌุงู‡ุฒู‹ุง. ูŠู…ูƒู†ูƒ ุชุนูŠูŠู† ุงู„ุฃุดูƒุงู„ ููŠ ุงู„ุฎู„ุงูŠุง. ู„ูƒู† ุงู†ุชุตุงุฑ ุฃูŠ ู…ู† ุงู„ู„ุงุนุจูŠู† ู„ู… ูŠุซุจุช ุจุฃูŠ ุดูƒู„ ู…ู† ุงู„ุฃุดูƒุงู„.

ู†ู‡ุงูŠุฉ ูุญุต ุงู„ู„ุนุจุฉ


ุชู†ุชู‡ูŠ ุงู„ู„ุนุจุฉ ุนู†ุฏู…ุง ูŠุถุน ุฃุญุฏ ุงู„ู„ุงุนุจูŠู† 5 ู‚ุทุน ู…ุชุชุงู„ูŠุฉ. "ุฅู†ู‡ุง ุจุณูŠุทุฉ!" ููƒุฑุช. ูˆุจุฏุฃ ููŠ ู…ุณุญ ุฌู…ูŠุน ุฎู„ุงูŠุง ุงู„ู…ุฌุงู„ ุชู…ุงู…ู‹ุง: ุฃูˆู„ุงู‹ ุฌู…ูŠุน ุงู„ุฃูู‚ูŠุฉ ุŒ ุซู… ุงู„ุฑุฃุณูŠ ุŒ ูˆุฃุฎูŠุฑู‹ุง ุงู„ุฃู‚ุทุงุฑ.

ู‡ุฐู‡ ุทุฑูŠู‚ุฉ ุบุจูŠุฉ ุŒ ู„ูƒู†ู‡ุง ู†ุฌุญุช. ูˆู…ุน ุฐู„ูƒ ุŒ ูŠู…ูƒู† ุชุญุณูŠู†ู‡ ุจุดูƒู„ ูƒุจูŠุฑ ุŒ ูˆู‡ูˆ ู…ุง ูุนู„ุชู‡: ุณุชุธู„ ู…ุนุธู… ุงู„ุฎู„ุงูŠุง ูุงุฑุบุฉ ุทูˆุงู„ ุงู„ู„ุนุจุฉ - ู…ุณุงุญุฉ ุงู„ู„ุนุจ ูƒุจูŠุฑุฉ ุฌุฏู‹ุง ุจุญูŠุซ ู„ุง ูŠู…ูƒู† ู…ู„ุคู‡ุง ุจุงู„ูƒุงู…ู„. ู†ุธุฑู‹ุง ู„ุฃู†ู‡ ูƒุงู† ู…ู† ุงู„ุถุฑูˆุฑูŠ ู…ุณุญู‡ุง ููŠ ูƒู„ ุญุฑูƒุฉ ุŒ ูˆูŠุชู… ูˆุถุน ู‚ุทุนุฉ ูˆุงุญุฏุฉ ูู‚ุท ููŠ ุญุฑูƒุฉ ูˆุงุญุฏุฉ ุŒ ูŠู…ูƒู†ูƒ ุงู„ุชุฑูƒูŠุฒ ูู‚ุท ุนู„ู‰ ู‡ุฐู‡ ุงู„ู‚ุทุนุฉ (ุงู„ุฎู„ูŠุฉ): ู…ุณุญ ู‚ุทุฑูŠ ุฃูู‚ูŠ ูˆุฑุฃุณูŠ ูˆุงุซู†ูŠู† ูู‚ุท ู…ู† ุงู„ุฎู„ูŠุฉ ุงู„ุชูŠ ุชู…ุชู„ูƒ ู†ูุณ ุงู„ุฎู„ูŠุฉ.

ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ู„ุง ุชุญุชุงุฌ ุฅู„ู‰ ู…ุณุญ ุฌู…ูŠุน ุฎุทูˆุท ุงู„ุฎู„ูŠุฉ. ู†ุธุฑู‹ุง ู„ุฃู† ู†ู‡ุงูŠุฉ ุงู„ู„ุนุจุฉ ู‡ูŠ 5 ู‚ุทุน ู…ุชุชุงู„ูŠุฉ ุŒ ูุฅู† ุงู„ู‚ุทุน ุงู„ุชูŠ ุชุชูƒูˆู† ู…ู† 6 ุฎู„ุงูŠุง ู…ู†ูุตู„ุฉ ุนู† ุจุนุถู‡ุง ุงู„ุจุนุถ ู„ุง ุชู‡ู…ู†ุง. ูŠูƒููŠ ู…ุณุญ ุฎู…ุณ ุฎู„ุงูŠุง ุนู„ู‰ ูƒู„ ุฌุงู†ุจ. ู„ุง ุชูู‡ู…ุŸ ุงู†ุธุฑ ุงู„ุฑุณูˆู… ุงู„ู…ุชุญุฑูƒุฉ ุฃุฏู†ุงู‡.



ุนุฑุถ ุงู„ูƒูˆุฏ
checkWin( cellX, cellY ){ var res = null; var newFig = getFig(cellX,cellY); if( ! newFig ) return false; var res; res = res || checkLine( cellX, cellY, 1, 0 ); //horizontal res = res || checkLine( cellX, cellY, 0, 1 ); //vertical res = res || checkLine( cellX, cellY, 1, 1 ); //diagonal 45 res = res || checkLine( cellX, cellY, 1, -1 ); //diagonal 135 return res; function getFig( x, y ){ return Model.Field[x] && Model.Field[x][y] ? Model.Field[x][y] : 'b'; } function checkLine( x, y, dx, dy ){ x = +x; y = +y; var score = 0; while( getFig( x - dx, y - dy ) == newFig ){ x -= dx; y -= dy; } while( getFig( x, y ) == newFig ){ x += dx; y += dy; score++; } if( score >= 5 ) return true; return false; } } 


ุฏุนูˆู†ุง ู†ู†ุฒู„ ุฅู„ู‰ ุงู„ุจูˆุช ู†ูุณู‡


ู„ุฐุง ุŒ ูู‚ุฏ ูƒุชุจู†ุง ุจุงู„ูุนู„ ุตูุญุฉ ุชุญุชูˆูŠ ุนู„ู‰ ุชูŠูƒ ุชุงูƒ ุชูˆ. ู†ู†ุชู‚ู„ ุฅู„ู‰ ุงู„ู…ู‡ู…ุฉ ุงู„ุฑุฆูŠุณูŠุฉ - ู…ู†ุธู…ุฉ ุงู„ุนููˆ ุงู„ุฏูˆู„ูŠุฉ.
ู„ุง ูŠู…ูƒู†ูƒ ูู‚ุท ุฃุฎุฐ ุงู„ุฑู…ุฒ ูˆูƒุชุงุจุชู‡ ุฅุฐุง ูƒู†ุช ู„ุง ุชุนุฑู ูƒูŠู: ุชุญุชุงุฌ ุฅู„ู‰ ุงู„ุชููƒูŠุฑ ููŠ ู…ู†ุทู‚ ุงู„ุฑูˆุจูˆุช.

ุฎู„ุงุตุฉ ุงู„ู‚ูˆู„ ู‡ูŠ ุชุญู„ูŠู„ ุงู„ู…ู„ุนุจ ุŒ ุนู„ู‰ ุงู„ุฃู‚ู„ ุฌุฒุก ู…ู†ู‡ ุŒ ูˆุญุณุงุจ ุงู„ุณุนุฑ (ุงู„ูˆุฒู†) ู„ูƒู„ ุฎู„ูŠุฉ ููŠ ุงู„ุญู‚ู„. ุงู„ุฎู„ูŠุฉ ุฐุงุช ุงู„ูˆุฒู† ุงู„ุฃุนู„ู‰ - ุงู„ุฃูƒุซุฑ ูˆุงุนุฏุฉ - ุณูŠุถุน ุงู„ุจูˆุช ุดูƒู„ู‹ุง ู‡ู†ุงูƒ. ุชุชู…ุซู„ ุงู„ุตุนูˆุจุฉ ุงู„ุฑุฆูŠุณูŠุฉ ููŠ ุญุณุงุจ ูˆุฒู† ุฎู„ูŠุฉ ูˆุงุญุฏุฉ.

ุงู„ู…ุตุทู„ุญุงุช


ุงู„ุตู„ุจุงู† ูˆุฃุตุงุจุน ุงู„ู‚ุฏู… ู‡ูŠ ุฃุฑู‚ุงู….
ุณูŠุทู„ู‚ ุนู„ู‰ ุงู„ู‡ุฌูˆู… ุนุฏุฉ ุดุฎุตูŠุงุช ู…ุชุทุงุจู‚ุฉ ุชู‚ู ุฌู†ุจู‹ุง ุฅู„ู‰ ุฌู†ุจ ุนู„ู‰ ู†ูุณ ุงู„ุฎุท. ููŠ ุงู„ูˆุงู‚ุน ุŒ ู‡ุฐุง ูƒุซูŠุฑ. ุนุฏุฏ ุงู„ู‚ุทุน ููŠ ุงู„ู‡ุฌูˆู… ู‡ูˆ ู‚ูˆุชู‡ . ู‚ุทุนุฉ ูˆุงุญุฏุฉ ู…ู†ูุตู„ุฉ ู‡ูŠ ุฃูŠุถุง ู‡ุฌูˆู… (ุงู„ู‚ูˆุฉ 1).

ููŠ ุฎู„ุงูŠุง ุงู„ู‡ุฌูˆู… ุงู„ู…ุฌุงูˆุฑุฉ (ููŠ ุงู„ู†ู‡ุงูŠุงุช) ู‚ุฏ ุชูƒูˆู† ู‡ู†ุงูƒ ุฎู„ุงูŠุง ูุงุฑุบุฉ ุฃูˆ ู‚ุทุน ู…ุนุงุฏูŠุฉ. ู…ู† ุงู„ู…ู†ุทู‚ูŠ ุฃู† ู†ููƒุฑ ููŠ ุฃู† ู‡ุฌูˆู…ุงู‹ ุจุฎู„ูŠุชูŠู† ูุงุฑุบุชูŠู† ุนู†ุฏ "ุงู„ู†ู‡ุงูŠุงุช" ูŠู…ูƒู† ุชุทูˆูŠุฑู‡ ููŠ ุงุชุฌุงู‡ูŠู† ุŒ ู…ู…ุง ูŠุฌุนู„ู‡ ุฃูƒุซุฑ ูˆุงุนุฏุฉ. ุณูŠุทู„ู‚ ุนู„ู‰ ุนุฏุฏ ุงู„ุฎู„ุงูŠุง ุงู„ูุงุฑุบุฉ ููŠ "ู†ู‡ุงูŠุงุช" ุงู„ู‡ุฌูˆู… ุฅู…ูƒุงู†ุงุชู‡ . ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุงู„ุฌู‡ุฏ 0 ุฃูˆ 1 ุฃูˆ 2.
ู†ุดูŠุฑ ุฅู„ู‰ ุงู„ู‡ุฌู…ุงุช ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ: [ุงู„ู‚ูˆุฉ ุงู„ู‡ุฌูˆู…ูŠุฉ ุŒ ุงู„ู…ุญุชู…ู„ุฉ] . ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู‡ุฌูˆู… [4: 1] .


ุงู„ุดูƒู„ 1. ู‡ุฌูˆู… [4: 1]

ููŠ ุณูŠุงู‚ ุงู„ุชุญู„ูŠู„ ุŒ ุณู†ู‚ูˆู… ุจุชู‚ูŠูŠู… ุฌู…ูŠุน ุงู„ุฎู„ุงูŠุง ุงู„ุชูŠ ุชุฏุฎู„ ู…ู†ุทู‚ุฉ ู…ุนูŠู†ุฉ. ุณุชุญุณุจ ูƒู„ ุฎู„ูŠุฉ ูˆุฒู†ู‡ุง . ูŠุชู… ุญุณุงุจู‡ุง ุจู†ุงุกู‹ ุนู„ู‰ ุฃูˆุฒุงู† ุฌู…ูŠุน ุงู„ู‡ุฌู…ุงุช ุงู„ุชูŠ ุชุคุซุฑ ุนู„ูŠู‡ุง ู‡ุฐู‡ ุงู„ุฎู„ูŠุฉ.

ุฌูˆู‡ุฑ ุงู„ุชุญู„ูŠู„


ุชุฎูŠู„ ุฃู†ู‡ ููŠ ุณุงุญุฉ ุงู„ู„ุนุจ ุŒ ู‡ู†ุงูƒ ุจุงู„ูุนู„ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู‡ุฌู…ุงุช ู…ู† ู„ุงุนุจ ูˆุงุญุฏ ูˆุซุงู†ูŠ. ูŠู‚ูˆู… ุฃุญุฏ ุงู„ู„ุงุนุจูŠู† ุจุญุฑูƒุฉ (ุฏุนูˆุง ุงู„ุตู„ุจุงู†). ุจุทุจูŠุนุฉ ุงู„ุญุงู„ ุŒ ูŠู†ุชู‚ู„ ุฅู„ู‰ ุฒู†ุฒุงู†ุฉ ูุงุฑุบุฉ - ูˆุจุงู„ุชุงู„ูŠ ูŠู…ูƒู†ู‡:

  1. ุทูˆุฑ ู‡ุฌูˆู…ูƒ ุŒ ูˆุฑุจู…ุง ุฃูƒุซุฑ ู…ู† ู‡ุฌูˆู… ูˆุงุญุฏ ุŒ ูŠุฒูŠุฏ ู…ู† ู‚ูˆุชู‡. ู‚ุฏ ูŠุดู† ู‡ุฌูˆู…ู‹ุง ุฌุฏูŠุฏู‹ุง ุŒ ูˆู…ุง ุฅู„ู‰ ุฐู„ูƒ.
  2. ู…ู†ุน ุชุทูˆุฑ ู‡ุฌูˆู… ุงู„ุนุฏูˆ ุฃูˆ ู…ู†ุนู‡ ุชู…ุงู…ู‹ุง.

ุฃูŠ ุฃู† ุจุทู„ู†ุง ูŠู…ูƒู†ู‡ ุงู„ู‡ุฌูˆู… ูˆุงู„ุฏูุงุน. ุฃูˆ ุฑุจู…ุง ุฏูุนุฉ ูˆุงุญุฏุฉ. ุจุงู„ู†ุณุจุฉ ู„ู‡ ุŒ ูƒู„ ู…ู† ุงู„ุฃูˆู„ ูˆุงู„ุซุงู†ูŠ ู…ู‡ู…ุงู†.

ุฌูˆู‡ุฑ ุงู„ุชุญู„ูŠู„ ูƒู…ุง ูŠู„ูŠ:

  1. ูŠุณุชุจุฏู„ ุงู„ุจูˆุช ุงู„ุฃุฑู‚ุงู… ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ุฎู„ูŠุฉ ุงู„ู…ุญุฏุฏุฉ: ุฃูˆู„ุงู‹ ุชู‚ุงุทุน ุŒ ุซู… ุตูุฑ.
  2. ุซู… ูŠุจุญุซ ุนู† ุฌู…ูŠุน ุงู„ู‡ุฌู…ุงุช ุงู„ุชูŠ ุชู„ู‚ุชู‡ุง ู…ุซู„ ู‡ุฐู‡ ุงู„ุชุญุฑูƒุงุช ูˆูŠู„ุฎุต ุฃูˆุฒุงู†ู‡ุง.
  3. ุงู„ู…ุจู„ุบ ุงู„ู…ุณุชู„ู… ู‡ูˆ ูˆุฒู† ุงู„ุฎู„ูŠุฉ.
  4. ูŠุชู… ุชู†ููŠุฐ ุฎูˆุงุฑุฒู…ูŠุฉ ู…ู…ุงุซู„ุฉ ู„ุฌู…ูŠุน ุฎู„ุงูŠุง ุงู„ู…ู„ุนุจ.



ููŠ ุงู„ูˆุงู‚ุน ุŒ ู†ุชุญู‚ู‚ ู…ู† ู‡ุฐู‡ ุงู„ุฎูˆุงุฑุฒู…ูŠุฉ ุนู…ุง ุณูŠุญุฏุซ ุฅุฐุง ุฐู‡ุจู†ุง ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ... ูˆู…ุงุฐุง ุณูŠุญุฏุซ ุฅุฐุง ุฐู‡ุจ ุงู„ุฎุตู… ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ. ู†ุชุทู„ุน ุฎุทูˆุฉ ูˆุงุญุฏุฉ ูˆู†ุฎุชุงุฑ ุงู„ุฎู„ูŠุฉ ุงู„ุฃูƒุซุฑ ู…ู„ุงุกู…ุฉ - ุจุฃุนู„ู‰ ูˆุฒู†.

ุฅุฐุง ูƒุงู† ู„ู„ุฎู„ูŠุฉ ูˆุฒู† ุฃูƒุซุฑ ู…ู† ุฎู„ูŠุฉ ุฃุฎุฑู‰ ุŒ ูุฅู†ู‡ุง ุชุคุฏูŠ ุฅู„ู‰ ุฅู†ุดุงุก ู‡ุฌู…ุงุช ุฃูƒุซุฑ ุฎุทูˆุฑุฉ ุŒ ุฃูˆ ู„ู…ู†ุน ู‡ุฌู…ุงุช ุงู„ุนุฏูˆ ุงู„ู‚ูˆูŠุฉ. ูƒู„ ุดูŠุก ู…ู†ุทู‚ูŠ ... ูŠุจุฏูˆ ู„ูŠ.
ุฅุฐุง ุงู†ุชู‚ู„ุช ุฅู„ู‰ ุงู„ุตูุญุฉ ูˆูƒุชุจุช ููŠ ูˆุญุฏุฉ ุงู„ุชุญูƒู… SHOW_WEIGHTS = ุตุญูŠุญ ุŒ ูŠู…ูƒู†ูƒ ุฃู† ุชุดุนุฑ ุจุตุฑูŠู‹ุง ุจุชุดุบูŠู„ ุงู„ุฎูˆุงุฑุฒู…ูŠุฉ (ุณูŠุชู… ุนุฑุถ ุฃูˆุฒุงู† ุงู„ุฎู„ูŠุฉ).

ุฃูˆุฒุงู† ุงู„ู‡ุฌูˆู…


ู„ู‚ุฏ ุชุทุฑู‚ุช ุฅู„ู‰ ุนู‚ู„ูŠ ูˆุฃุญุถุฑุช ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ุฑุงุณู„ุงุช ู…ู† ุงู„ู‡ุฌู…ุงุช ูˆุงู„ุฃูˆุฒุงู†:

 ATTACK_WEIGHT = [[],[],[],[],[],[]]; ATTACK_WEIGHT[1][1] = 0.1; ATTACK_WEIGHT[2][1] = 2; ATTACK_WEIGHT[3][1] = 4; ATTACK_WEIGHT[4][1] = 6; ATTACK_WEIGHT[5][1] = 200; ATTACK_WEIGHT[1][2] = 0.25; ATTACK_WEIGHT[2][2] = 5; ATTACK_WEIGHT[3][2] = 7; ATTACK_WEIGHT[4][2] = 100; ATTACK_WEIGHT[5][2] = 200; ATTACK_WEIGHT[5][0] = 200; 

ุชู… ุงุฎุชูŠุงุฑู‡ ุชุฌุฑูŠุจูŠู‹ุง - ุฑุจู…ุง ู„ูŠุณ ู‡ุฐุง ู‡ูˆ ุงู„ุฎูŠุงุฑ ุงู„ุฃูุถู„.

ุฃุถูุช ู‚ูˆุฉ ู‡ุฌูˆู… ู…ู† 5 ู…ุน ูˆุฒู† ูƒุจูŠุฑ ุจุดูƒู„ ู…ุญุธูˆุฑ ู„ู„ุตููŠู. ูŠู…ูƒู† ุชูุณูŠุฑ ุฐู„ูƒ ู…ู† ุฎู„ุงู„ ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ุจูˆุช ูŠุญู„ู„ ุงู„ู„ุนุจุฉ ุŒ ูˆูŠู†ุธุฑ ุฅู„ู‰ ุฎุทูˆุฉ ุฅู„ู‰ ุงู„ุฃู…ุงู… (ุงุณุชุจุฏุงู„ ุงู„ุดูƒู„ ููŠ ุงู„ุฎู„ูŠุฉ). ุชุฎุทูŠ ู…ุซู„ ู‡ุฐุง ุงู„ู‡ุฌูˆู… ู„ูŠุณ ุณูˆู‰ ู‡ุฒูŠู…ุฉ. ุญุณู†ู‹ุง ุŒ ุฃูˆ ุงู„ู†ุตุฑ ... ุงุนุชู…ุงุฏู‹ุง ุนู„ู‰ ู…ู†.

ูŠุชู… ุชู‚ูŠูŠู… ุงู„ู‡ุฌู…ุงุช ุฐุงุช ุงู„ุฅู…ูƒุงู†ุงุช ุงู„ุนุงู„ูŠุฉ ุฃุนู„ู‰.

ุงู„ู‡ุฌูˆู… [4: 2] ูŠู‚ุฑุฑ ููŠ ู…ุนุธู… ุงู„ุญุงู„ุงุช ู†ุชูŠุฌุฉ ุงู„ู…ุจุงุฑุงุฉ. ุฅุฐุง ุชู…ูƒู† ุงู„ู„ุงุนุจ ู…ู† ุฅู†ุดุงุก ู…ุซู„ ู‡ุฐุง ุงู„ู‡ุฌูˆู… ุŒ ูู„ู† ูŠุชู…ูƒู† ุงู„ุฎุตู… ุจุนุฏ ุฐู„ูƒ ู…ู† ุตุฏู‡. ูˆู…ุน ุฐู„ูƒ ุŒ ู‡ุฐุง ู„ูŠุณ ุงู†ุชุตุงุฑุง. ูŠู…ูƒู† ู„ู„ุนุฏูˆ ุฅู†ู‡ุงุก ุงู„ู„ุนุจุฉ ุจุดูƒู„ ุฃุณุฑุน ุŒ ุญุชู‰ ู„ูˆ ูƒุงู† ู„ุฏูŠู†ุง ู‡ุฌูˆู… [4: 2] ุนู„ู‰ ุฃุฑุถ ุงู„ู…ู„ุนุจ ุŒ ูˆุจุงู„ุชุงู„ูŠ ูุฅู† ูˆุฒู†ู‡ ุฃู‚ู„ ู…ู† ูˆุฒู† ุงู„ู‡ุฌู…ุงุช ุจู‚ูˆุฉ 5. ุงู†ุธุฑ ุงู„ู…ุซุงู„ ุฃุฏู†ุงู‡.


ุงู„ุดูƒู„ 2. ุงู„ู‡ุฌูˆู… [4: 2]

ู‡ุฌู…ุงุช ู…ู…ุฒู‚ุฉ


ู„ู… ูŠุชู… ุชู‚ุฏูŠู… ุงู„ุฑู…ุฒ ููŠ ู‡ุฐู‡ ุงู„ูู‚ุฑุฉ. ู†ู‚ุฏู… ู‡ู†ุง ู…ูู‡ูˆู… ู…ู‚ุณู… ุงู„ู‡ุฌูˆู… ูˆุดุฑุญ ุฌูˆู‡ุฑ "ุงู„ู‡ุฌู…ุงุช ุงู„ู…ู…ุฒู‚ุฉ" .

ุถุน ููŠ ุงุนุชุจุงุฑูƒ ุงู„ู…ูˆู‚ู ุงู„ุชุงู„ูŠ: ุนู†ุฏ ุงุณุชุจุฏุงู„ ุดูƒู„ ู„ุฅุฒุงู„ุฉ ุนุฏุฉ ุฎู„ุงูŠุง ูุงุฑุบุฉ ุŒ ูˆู„ูƒู† ู„ูŠุณ ุฃูƒุซุฑ ู…ู† 5 ุŒ ูŠูˆุฌุฏ ูˆุงุญุฏ ุขุฎุฑ.

ูˆูŠุจุฏูˆ ุฃู† ู‡ู†ุงูƒ ุดุฎุตูŠุชุงู† ู…ุชุทุงุจู‚ุชุงู† ุนู„ู‰ ู†ูุณ ุงู„ุฎุท ... ูŠุจุฏูˆ ุฃู†ู‡ ู‡ุฌูˆู… ุŒ ูˆู„ูƒู† ููŠ ุงู„ุญู‚ูŠู‚ุฉ ู„ุง. ู„ูŠุณ ุฃู…ุฑุง ุŒ ู„ุฃู† ู…ุซู„ ู‡ุฐู‡ ุงู„ู‡ุฌู…ุงุช "ุงู„ู…ู…ุฒู‚ุฉ" ุชู†ุทูˆูŠ ุฃูŠุถุง ุนู„ู‰ ุชู‡ุฏูŠุฏ ู…ุญุชู…ู„.

ุฎุงุตุฉ ููŠ ู…ุซู„ ู‡ุฐู‡ ุงู„ุญุงู„ุงุช ุŒ ู„ูƒู„ ู‡ุฌูˆู… ุณูˆู ู†ุญุณุจ ุงู„ู…ู‚ุณูˆู… ุนู„ูŠู‡. ููŠ ุงู„ุจุฏุงูŠุฉ ุŒ ู‚ูŠู…ุชู‡ุง ู‡ูŠ 1.

  1. ู†ู‚ุฏู… ุงู„ู‡ุฌูˆู… "ุงู„ู…ู…ุฒู‚" ุนู„ู‰ ุฃู†ู‡ ุงุนุชูŠุงุฏูŠ
  2. ู†ุญุณุจ ุนุฏุฏ ุงู„ุฎู„ุงูŠุง ุงู„ูุงุฑุบุฉ ุจูŠู† ุงู„ู‡ุฌูˆู… ุงู„ู…ุฑูƒุฒูŠ ูˆุงู„ุฌุงู†ุจ
  3. ู„ูƒู„ ุฎู„ูŠุฉ ูุงุฑุบุฉ ุŒ ูŠุฒุฏุงุฏ ุงู„ู…ู‚ุณูˆู… ุจู…ู‚ุฏุงุฑ 1
  4. ู†ุญุณุจ ูˆุฒู† ุงู„ู‡ุฌูˆู… ุงู„ู…ุฑูƒุฒูŠ ูƒุงู„ู…ุนุชุงุฏ ุŒ ูˆุฒู† ุงู„ู‡ุฌู…ุงุช ุงู„ุฌุงู†ุจูŠุฉ - ุงู„ู‚ุณู…ุฉ ุนู„ู‰ ุงู„ู…ู‚ุณูˆู… ุนู„ูŠู‡


ุงู„ุดูƒู„ 3. ุชุญู„ูŠู„ "ุงู„ู‡ุฌูˆู… ุงู„ู…ู…ุฒู‚". ูŠุชู… ูุญุต ุฎู„ูŠุฉ ุฐุงุช ุตู„ูŠุจ ุฃุตูุฑ.

ูˆุจุงู„ุชุงู„ูŠ ุŒ ุณุชุฃุฎุฐ ู…ู†ุธู…ุฉ ุงู„ุนููˆ ุงู„ุฏูˆู„ูŠุฉ ุจุนูŠู† ุงู„ุงุนุชุจุงุฑ ุงู„ู‡ุฌู…ุงุช ุงู„ู…ู…ุฒู‚ุฉ. ููŠ ุงู„ูˆุงู‚ุน ุŒ ุณุชูƒูˆู† ู‡ุฐู‡ ู‡ุฌู…ุงุช ุนุงุฏูŠุฉ ุŒ ูˆู„ูƒู† ูƒู„ู…ุง ูƒุงู†ุช ุฃุจุนุฏ ู…ู† ุงู„ุฎู„ูŠุฉ ุงู„ู…ู…ุณูˆุญุฉ ุถูˆุฆูŠู‹ุง ุŒ ู‚ู„ ุชุฃุซูŠุฑู‡ุง ุนู„ูŠู‡ุง ุŒ ูˆุจุงู„ุชุงู„ูŠ ุŒ ูƒุงู† ู„ู‡ุง ูˆุฒู† ุฃู‚ู„ (ุจูุถู„ ุงู„ุญุงุฌุฒ).

ุฎูˆุงุฑุฒู…ูŠุฉ ุจุญุซ ุงู„ู‡ุฌูˆู…


ุฃูˆู„ุงู‹ ุŒ ู‚ู… ุจุฅู†ุดุงุก ูุฆุฉ ู‡ุฌูˆู…. ุณูŠูƒูˆู† ู„ู„ู‡ุฌูˆู… ุซู„ุงุซ ุณู…ุงุช ุŒ ูƒุชุจุช ุนู†ู‡ุง ููŠ ูˆู‚ุช ุณุงุจู‚:

 class Attack{ constructor( cap = 0, pot = 0, div = 1 ){ this.capability = cap; // this.potential = pot; // this.divider = div; // } 

ูˆุฃุญุฏ ุงู„ุทุฑู‚ ุงู„ุชูŠ ุณุชุนูŠุฏ ูˆุฒู† ู‡ุฌูˆู… ู…ุง:

 countWeigth(){ return ATTACK_WEIGHT[ this.capability, this.potential ] / this.divider } } 

ุงู„ุชุงู„ูŠ. ุณู†ู‚ุณู… ุงู„ุจุญุซ ุนู† ุฌู…ูŠุน ุงู„ู‡ุฌู…ุงุช ู„ุฎู„ูŠุฉ ูˆุงุญุฏุฉ ุฅู„ู‰:

  1. ุงู„ุจุญุซ ุงู„ุฃูู‚ูŠ
  2. ุจุญุซ ุนู…ูˆุฏูŠ
  3. 45 ุฏุฑุฌุฉ ุจุญุซ ู‚ุทุฑูŠ
  4. 135 ุฏุฑุฌุฉ ุจุญุซ ู‚ุทุฑูŠ

ูƒู„ ู‡ุฐู‡ ุฎุทูˆุท ุŒ ูˆูŠู…ูƒู† ุชุนู…ูŠู… ุฎูˆุงุฑุฒู…ูŠุฉ ุงู„ุจุญุซ ุนู† ุงู„ู‡ุฌู…ุงุช ุนู„ู‰ ู‡ุฐู‡ ุงู„ุฎุทูˆุท: ูุฆุฉ checkLine .

ูˆู…ุน ุฐู„ูƒ ุŒ ู„ุง ู†ุญุชุงุฌ ุฅู„ู‰ ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุฎุท ุจุฃูƒู…ู„ู‡. ุงู„ู‚ูˆุฉ ุงู„ู‡ุฌูˆู…ูŠุฉ ุงู„ู‚ุตูˆู‰ ุงู„ุชูŠ ุชู‡ู…ู†ุง ู‡ูŠ 5. ุจุงู„ุทุจุน ุŒ ู…ู† ุงู„ู…ู…ูƒู† ุฅู†ุดุงุก ู‡ุฌูˆู… ุจู‚ูˆุฉ ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ 6. ูˆู„ูƒู† ุจุงู„ู†ุณุจุฉ ุฅู„ู‰ ุงู„ุฐูƒุงุก ุงู„ุงุตุทู†ุงุนูŠ ุงู„ุฐูŠ ูŠุญู„ู„ ูˆุถุน ุงู„ู„ุนุจุฉ ููŠ ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ุŒ ูุฅู†ู‡ ูŠุดุจู‡ 6 ุฃูˆ 5. ูŠุดูŠุฑ ุงุญุชู…ุงู„ ุงู„ุญุตูˆู„ ุนู„ู‰ ุฅุญุฏู‰ ู‡ุฐู‡ ุงู„ู‡ุฌู…ุงุช ุฅู„ู‰ ู†ู‡ุงูŠุฉ ุงู„ู„ุนุจุฉ ููŠ ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ. ูˆุจู†ุงุกู‹ ุนู„ู‰ ุฐู„ูƒ ุŒ ุณูŠูƒูˆู† ูˆุฒู† ุงู„ุฎู„ูŠุฉ ุงู„ุชูŠ ุชู… ุชุญู„ูŠู„ู‡ุง ู‡ูˆ ู†ูุณู‡ ููŠ ูƒู„ุชุง ุงู„ุญุงู„ุชูŠู†.

ุณู…ุงุช ุงู„ูุตู„:

 class checkLine{ constructor(){ //,        this.subFig = "ร—"; //     .    ยซ0ยป - . this.Attacks = []; //  this.curAttack = new Attack; // (      ) this.iter = 1; //,     this.checkEdge = false; 

ู…ู† ุงู„ุถุฑูˆุฑูŠ ุงู„ุชูˆู‚ู ู‡ู†ุง ุŒ ุญูŠุซ ู‚ุฏ ูŠุทุฑุญ ุงู„ุณุคุงู„: ู„ู…ุงุฐุง ุชุญู‚ู‚ ู…ู† ุงู„ุฎู„ูŠุฉ ุงู„ุณุงุฏุณุฉ ุฅุฐุง ูƒุงู†ุช ู‚ูˆุฉ ุงู„ู‡ุฌูˆู… ุงู„ู‚ุตูˆู‰ ู‡ูŠ 5. ูˆุงู„ุฌูˆุงุจ ู‡ูˆ ุชุญุฏูŠุฏ ุฌู‡ุงุฒ ุงู„ุชุญูƒู… ุนู† ุจุนุฏ ุงู„ู…ุญุชู…ู„ ู…ู† ู…ุฑูƒุฒ ุงู„ู‡ุฌูˆู….

ููŠู…ุง ูŠู„ูŠ ู…ุซุงู„: ูŠู‚ุน ู‡ุฌูˆู… ุจู‚ูˆุฉ 1 ููŠ ุงู„ุตูˆุฑุฉ ุนู„ู‰ ุญุฏูˆุฏ ุงู„ู…ู†ุทู‚ุฉ ุงู„ู…ู…ุณูˆุญุฉ ุถูˆุฆูŠู‹ุง. ู„ู…ุนุฑูุฉ ุฅู…ูƒุงู†ุงุช ู‡ุฐุง ุงู„ู‡ุฌูˆู… ุชุญุชุงุฌ ุฅู„ู‰ "ุงู„ู†ุธุฑ ุฅู„ู‰ ุงู„ุฎุงุฑุฌ".


ุงู„ุชูŠู†. 3. ู…ุณุญ ุงู„ุฎู„ุงูŠุง ุงู„ุณุงุฏุณุฉ. ุฅุฐุง ู„ู… ุชู‚ู… ุจู…ุณุญ ุงู„ุฎู„ูŠุฉ ุงู„ุณุงุฏุณุฉ ุŒ ูŠู…ูƒู†ูƒ ุชุญุฏูŠุฏ ุงุญุชู…ุงู„ ุงู„ู‡ุฌูˆู… ุจุดูƒู„ ุบูŠุฑ ุตุญูŠุญ.

  //   this.attackplace = 1; } 

ู‚ุฏ ู„ุง ูŠูƒูˆู† ู‡ู†ุงูƒ ุจุจุณุงุทุฉ ู…ุณุงุญุฉ ูƒุงููŠุฉ ู„ุฅูƒู…ุงู„ ุจุนุถ ุงู„ู‡ุฌู…ุงุช. ุจุนุฏ ุงุญุชุณุงุจ ู…ูƒุงู† ุงู„ู‡ุฌูˆู… ุŒ ูŠู…ูƒู†ู†ุง ุฃู† ู†ูู‡ู… ู…ุณุจู‚ู‹ุง ุฃูŠ ุงู„ู‡ุฌู…ุงุช ุบูŠุฑ ูˆุงุนุฏุฉ.


ุงู„ุชูŠู†. 4. ู…ูƒุงู† ู„ู„ู‡ุฌูˆู…

ุงู„ุฎูˆุงุฑุฒู…ูŠุฉ ู‡ูŠ ูƒู…ุง ูŠู„ูŠ:

1) ู„ู†ุจุฏุฃ ุจุงู„ุฎู„ูŠุฉ ุงู„ู…ุฑูƒุฒูŠุฉ. ูŠุฌุจ ุฃู† ูŠูƒูˆู† ูุงุฑุบู‹ุง (ุณู†ู‚ูˆู… ุจุงู„ุชุญุฑูƒ ููŠู‡ ุŒ ุฃู„ูŠุณ ูƒุฐู„ูƒุŸ ู„ูƒู†ู†ุง ู„ุง ู†ู†ุณู‰ ุฃู† ุงู„ุฐูƒุงุก ุงู„ุงุตุทู†ุงุนูŠ ุงู„ุฎุงุต ุจู†ุง ูŠุฌุจ ุฃู† ูŠุญู„ ู…ุญู„ ุงู„ุฃุฑู‚ุงู… ููŠ ู‡ุฐู‡ ุงู„ุฎู„ูŠุฉ ู„ุชุญู„ูŠู„ ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ. ุงู„ุฑู‚ู… ุงู„ุฐูŠ ู†ุณุชุจุฏู„ู‡ ู‡ูˆ this.subfig - ุงู„ุงูุชุฑุงุถูŠ ู‡ูˆ ุตู„ูŠุจ. ู†ุธุฑู‹ุง ู„ุฃู† ุงู„ุฎู„ูŠุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ุณุชุญุชูˆูŠ ููŠ ุงู„ุจุฏุงูŠุฉ ุนู„ู‰ ุดูƒู„ ู…ุง ุจุนุฏ ุงู„ุงุณุชุจุฏุงู„ ุŒ ูุฅู†ู‡ุง ุณุชู†ุชู…ูŠ ุฅู„ู‰ ู†ูˆุน ู…ู† ู‡ุฐุง ุงู„ู‡ุฌูˆู…. ู‡ุฌูˆู… ุงู„ู‡ุฌูˆู…:

  • ู‚ูˆุชู‡ ู„ู† ุชู‚ู„ ุนู† 1 (ุฑู‚ู… ููŠ ุงู„ุฎู„ูŠุฉ ุงู„ู…ุฑูƒุฒูŠุฉ)
  • ู…ู‚ุณู… - 1 ุŒ ู„ุฃู†ู‡ ุฅู†ู‡ ู‡ุฌูˆู… ู…ุฑูƒุฒูŠ (ูŠู†ุชู…ูŠ ุฅู„ู‰ ุงู„ุฎู„ูŠุฉ ุงู„ู…ู…ุณูˆุญุฉ) ุ›
  • ุงู„ุฅู…ูƒุงู†ุงุช ุบูŠุฑ ู…ุนุฑูˆูุฉ ุญุชู‰ ุงู„ุขู† - ุงู„ุงูุชุฑุงุถูŠ ู‡ูˆ 0 ุ›


ู„ู‚ุฏ ุนุฑุถู†ุง ุฌู…ูŠุน ู‡ุฐู‡ ุงู„ู†ู‚ุงุท ููŠ ู‚ูŠู… ุงู„ู…ูู†ุดุฆ ุงู„ุงูุชุฑุงุถูŠุฉ - ุงู†ุธุฑ ุงู„ุฑู…ุฒ ุฃุนู„ุงู‡.

2) ุจุนุฏ ุฐู„ูƒ ุŒ ุชู‚ู„ูŠู„ ุงู„ู…ูƒุฑุฑ ุŒ ูŠุชูƒุฑุฑ ุฃูƒุซุฑ ู…ู† 5 ุฎู„ุงูŠุง ุนู„ู‰ ุฌุงู†ุจ ูˆุงุญุฏ ู…ู† ุงู„ุฌุงู†ุจ ุงู„ู…ู…ุณูˆุญ ุถูˆุฆูŠู‹ุง. ูˆุธูŠูุฉ getAttacks (cellX ุŒ cellY ุŒ subFig ุŒ dx ุŒ dy) ู…ุณุคูˆู„ุฉ ุนู† ุฐู„ูƒ ุŒ ุญูŠุซ:

cellX ุŒ cellY - ุฅุญุฏุงุซูŠุงุช ุงู„ุฎู„ูŠุฉ ุงู„ู…ุญุฏุฏุฉ
subFig - ุงู„ุฑู‚ู… ุงู„ุฐูŠ ู†ุณุชุจุฏู„ู‡ ููŠ ุงู„ุฎู„ูŠุฉ ุงู„ู…ุญุฏุฏุฉ
dxุŒ dy - ุงู„ุชุบูŠูŠุฑุงุช ููŠ ุฅุญุฏุงุซูŠุงุช ุณ ูˆุต ููŠ ุฏูˆุฑุงุช - ู‡ูƒุฐุง ู†ุญุฏุฏ ุงุชุฌุงู‡ ุงู„ุจุญุซ:

  • ุฃูู‚ูŠ (dx = 1ุŒ dy = 0)
  • ุนู…ูˆุฏูŠ (dx = 0 ุŒ dy = 1)
  • ู‚ุทุฑูŠ 45 (dx = 1ุŒ dy = -1)
  • ู‚ุทุฑูŠ 135 (dx = 1 ุŒ dy = 1)

ุจู…ุนู†ู‰ ู…ุง ุŒ ู‡ุฐุง ู…ุชุฌู‡ ู…ูˆุงุฒ ู„ุฎุท ุงู„ุจุญุซ. ูˆุจุงู„ุชุงู„ูŠ ุŒ ุณุชุชู…ูƒู† ูˆุธูŠูุฉ ูˆุงุญุฏุฉ ู…ู† ุงู„ุจุญุซ ููŠ 4 ุงุชุฌุงู‡ุงุช ูˆู„ู† ู†ู†ุชู‡ูƒ ู…ุจุฏุฃ DRY ู…ุฑุฉ ุฃุฎุฑู‰.

ูƒูˆุฏ ุงู„ูˆุธูŠูุฉ:

 getAttacks( cellX, cellY, subFig, dx, dy ){ this.substitudeFigure( subFig ); //  โ€“  ... for( var x = cellX - dx, y = cellY - dy; Math.abs( x - cellX ) <= 5 && Math.abs( y - cellY ) <= 5; x -= dx, y -= dy ) if( this.checkCell( x, y ) ) break; //: //    (  ) this.turnAround(); //  -    ... for( var x = cellX + dx, y = cellY + dy; Math.abs( x - cellX ) <= 5 && Math.abs( y - cellY ) <= 5; x += dx, y += dy ) if( this.checkCell( x, y ) ) break; return this.Attacks; } 

ูŠุฑุฌู‰ ู…ู„ุงุญุธุฉ ุฃู†ู‡ ุฅุฐุง ุฃุฑุฌุนุช checkCell () ุดูŠุฆู‹ุง ุŒ ูุณุชุชูˆู‚ู ุงู„ุญู„ู‚ุฉ.

3) ู†ุชุญู‚ู‚ ู…ู† ุฃุฑู‚ุงู… ู‡ุฐู‡ ุงู„ุฎู„ุงูŠุง.
ูˆุธูŠูุฉ checkCell (xุŒ y) ู…ุณุคูˆู„ุฉ ุนู† ู‡ุฐุง:

ุฃูˆู„ุงู‹ ุŒ ุงูƒุชุจ ุงู„ุดูƒู„ ุฅู„ู‰ ู…ุชุบูŠุฑ ุงู„ุชูŠู† :
Model.Field ู‡ูˆ ู…ูŠุฏุงู† ู„ุนุจู†ุง.

 checkCell( x, y ){ var fig = Model.Field[x] && Model.Field[x][y] !== undefined ? Model.Field[x][y] : 'b'; 

ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุงู„ุชูŠู† "x" ูˆ "o" ูˆ "b" (ุงู„ุญุฏ) ูˆ 0 (ุงู„ุฎู„ูŠุฉ ุงู„ูุงุฑุบุฉ).

  • ุฅุฐุง ุชุฒุงู…ู† ู‡ุฐุง ุงู„ุดูƒู„ ู…ุน ุดูƒู„ ุงู„ุฎู„ูŠุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ( this.subFig ) ุŒ ูุฅู†ู†ุง ู†ูˆุงุตู„ ุงู„ุฎูˆุงุฑุฒู…ูŠุฉ - ุซู… ู†ูˆุงุตู„ ู…ุณุญ ุงู„ู‡ุฌูˆู… ุŒ ูƒู„ ุดูŠุก ุนู„ู‰ ู…ุง ูŠุฑุงู… ุŒ ู†ุณุชู…ุฑ ููŠ ู†ูุณ ุงู„ุฑูˆุญ. ู‚ุทุนุฉ ุฅุถุงููŠุฉ ููŠ ุงู„ู‡ุฌูˆู… ู‡ูŠ ุฅุถุงูุฉ ุฅู„ู‰ ู‚ูˆุชู‡ุง ( this.curAttack.capability ) ูˆุงู„ู…ูƒุงู† ( this.attackplace ).

    (ุงู†ุธุฑ ุงู„ุฑู…ุฒ ููŠ ุงู„ูู‚ุฑุฉ ุงู„ุชุงู„ูŠุฉ)
  • ุฅุฐุง ูƒุงู† ู‡ุฐุง ุงู„ุฑู‚ู… ู…ุฎุชู„ูู‹ุง ุŒ ูุณูŠุชู… ุญุธุฑ ุงู„ู‡ุฌูˆู… ุงู„ุฐูŠ ู‚ู…ู†ุง ุจูุญุตู‡ ู…ู† ู‚ุจู„ (this.curAttack) ู…ู† ู‡ุฐุง ุงู„ุฌุงู†ุจ. ู†ุญู† ู„ุง ู†ุบูŠุฑ ุฃูŠ ุดูŠุก ููŠ ู…ุนู„ู…ุงุช ุงู„ู‡ุฌูˆู… ุŒ ู†ูƒุชุจู‡ ุฅู„ู‰ ู…ุฌู…ูˆุนุฉ ุงู„ู‡ุฌู…ุงุช ูˆู†ุฎุฑุฌ ู…ู† ุงู„ุญู„ู‚ุฉ.

     if( fig == 'โ—‹' || fig == 'ร—' ){ if( this.subFig != fig ){ //  this.Attacks.push( this.curAttack ); //  return fig; //      } else{ //    this.curAttack.capability++; // +   this.attackplace++; // +   } } 

  • ุฅุฐุง ู„ู… ูŠูƒู† ู‡ู†ุงูƒ ู…ุซู„ ู‡ุฐู‡ ุงู„ุฎู„ูŠุฉ ุŒ ูู‡ุฐุง ูŠุนู†ูŠ ุฃู†ู‡ุง ุณู‚ุทุช ุฎุงุฑุฌ ุงู„ุญุฏูˆุฏ ุงู„ู…ูŠุฏุงู†ูŠุฉ ุŒ ู…ู…ุง ูŠุนู†ูŠ ุฃู† ุงู„ู‡ุฌูˆู… ู…ุญุธูˆุฑ. ู†ูƒุชุจู‡ุง ููŠ ู…ุฌู…ูˆุนุฉ ู…ู† ุฌู…ูŠุน ุงู„ู‡ุฌู…ุงุช ูˆู†ุฎุฑุฌ ู…ู† ุงู„ุญู„ู‚ุฉ.

     else if( fig == 'b' ){ // this.Attacks.push( this.curAttack ); return 'b'; } 

  • ุฅุฐุง ู‚ุจุถุช ุนู„ู‰ ู‚ูุต ูุงุฑุบ ุŒ ูู‡ุฐุง ูŠุนู†ูŠ ุฃู† ุงู„ู‡ุฌูˆู… ุงู„ุญุงู„ูŠ ู‚ุฏ ุงู†ุชู‡ู‰ ุฃูˆ ุฃู†ู†ุง ู†ุชุนุงู…ู„ ู…ุน "ู‡ุฌูˆู… ู…ู…ุฒู‚". ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฅู…ูƒุงู†ูŠุฉ ูˆู…ูƒุงู† ุงู„ู‡ุฌูˆู… (ู„ุฃู†ู‡ ู„ู… ูŠุชู… ุญุธุฑ ุงู„ู‡ุฌูˆู…). ูˆู…ุน ุฐู„ูƒ ุŒ ูุฅู†ู†ุง ู„ุง ู†ุฎุฑุฌ ู…ู† ุงู„ุญู„ู‚ุฉ - ุฑุจู…ุง ูŠูƒูˆู† ู‡ุฐุง "ู‡ุฌูˆู…ู‹ุง ู…ู…ุฒู‚ู‹ุง" - ู†ุญู† ุจุจุณุงุทุฉ ู†ูƒุชุจ this.curAttack ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฌู…ูŠุน ู‡ุฌู…ุงุช ุงู„ุฎุท this.Attacks []. ุงุตู†ุน ู‡ุฌูˆู…ู‹ุง "ุฌุฏูŠุฏู‹ุง" ุฌุฏูŠุฏู‹ุง ูˆุฒุฏ ุงู„ู‚ุงุณู… ุนู„ูŠู‡ ุจู†ุณุจุฉ 1 (ู‡ุฐุง ู‡ุฌูˆู… ุฌุงู†ุจูŠ).

     else{ //  if( this.curAttack.capability ){ this.curAttack.potential++; this.Attacks.push( this.curAttack ); this.curAttack = new Attack; this.curAttack.potential++; } this.curAttack.divider++; this.attackplace++; } 



4) ุฅุฐุง ุชุฒุงู…ู† ุงู„ุดูƒู„ ููŠ ุงู„ุฎู„ูŠุฉ ุงู„ุฎุงู…ุณุฉ ู…ุน ุงู„ุฎู„ูŠุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ุŒ ูุฅู† ุงู„ู‡ุฌูˆู… "ุงุณุชุฑุงุญ" ุนู„ู‰ ุงู„ุญุฏูˆุฏ ูˆู„ุชุญุฏูŠุฏ ุงุญุชู…ุงู„ ุงู„ู‡ุฌูˆู… ุŒ ุณูŠูƒูˆู† ุนู„ูŠูƒ "ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุญุฏูˆุฏ" ( this.checkEdge = true ).

 if( this.iter == 4 && fig == this.subFig ) // 5-  this.checkEdge = true; else if( this.iter == 5 ){ if( this.checkEdge ){ if( fig == this.curFig || fig == 0 ) this.curAttack.potential++; this.Attacks.push( this.curAttack ) } return 0; } this.iter++ 

ูˆุธูŠูุฉ checkCell ุฌุงู‡ุฒุฉ. ูˆู…ุน ุฐู„ูƒ ุŒ ู†ูˆุงุตู„ ุงู„ุนู…ู„ ููŠ ูุฆุฉ checkLine .

5) ุจุนุฏ ุงู„ุงู†ุชู‡ุงุก ู…ู† ุงู„ุฏูˆุฑุฉ ุงู„ุฃูˆู„ู‰ ุŒ ุชุญุชุงุฌ ุฅู„ู‰ "ุงู„ุฏูˆุฑุงู†". ู†ู‚ูˆู… ุจุชุฑุฌู…ุฉ ุงู„ู…ูƒุฑุฑ ุฅู„ู‰ ุงู„ู…ุฑูƒุฒ ูˆุงู„ู‡ุฌูˆู… ุงู„ู…ุฑูƒุฒูŠ ุŒ ู…ุน ุงู„ูู‡ุฑุณ 0 ุŒ ูˆุฅุฒุงู„ุชู‡ ู…ู† ู…ุฌู…ูˆุนุฉ ุงู„ู‡ุฌู…ุงุช ูˆุชุนูŠูŠู†ู‡ ูƒุงู„ู‡ุฌูˆู… ุงู„ุญุงู„ูŠ.

 turnAround(){ this.iter = 1; this.checkEdge = false; this.curAttack = this.Attacks[0]; this.Attacks.splice(0,1) } 

6) ุจุนุฏ ุฐู„ูƒ ุŒ ุงู†ุชู‚ู„ ุฅู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุขุฎุฑ ู…ู† ุงู„ุฎู„ูŠุฉ ุงู„ุญุงู„ูŠุฉ ุŒ ูˆุฒูŠุงุฏุฉ ุงู„ู…ูƒุฑุฑ.
ุจุงู„ุชุฃูƒูŠุฏ ู†ูุณ ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุฃุฑู‚ุงู…. (ุงู„ุฑู…ุฒ ู…ูƒุชูˆุจ ุจุงู„ูุนู„ - ูˆุธูŠูุฉ getAttacks )

7) ูƒู„ ุดูŠุก ุŒ ุฌู…ุนู†ุง ูƒู„ ุงู„ู‡ุฌู…ุงุช ุงู„ุชูŠ ูƒุงู†ุช ุนู„ู‰ ุงู„ุฎุท ููŠ ุตููŠู ูˆุงุญุฏ.
ู‡ุฐุง ูƒู„ ุดูŠุก ู…ุน ูุฆุฉ checkLine ... ูŠุชู… ูƒู„ ุดูŠุก.

ุญุณู†ู‹ุง ุŒ ูƒู„ ุดูŠุก ุจุณูŠุท - ู‚ู… ุจุฅู†ุดุงุก ูƒุงุฆู† checkLine ู„ูƒู„ ู…ู† ุงู„ุฎุทูˆุท ( ู‚ุทุฑูŠุงู† ุŒ ุฃูู‚ูŠู‹ุง ูˆุนู…ูˆุฏูŠู‹ุง) ูˆุงุณุชุฏุนูŠ ูˆุธูŠูุฉ getAttacks . ุฃูŠ ู„ูƒู„ ุณุทุฑ - ูƒุงุฆู† checkLine ุงู„ุฎุงุต ุจู‡ ุŒ ูˆุจุงู„ุชุงู„ูŠ ู…ุฌู…ูˆุนุฉ ุงู„ู‡ุฌู…ุงุช ุงู„ุฎุงุตุฉ ุจู‡.

ุฏุน ูˆุธูŠูุฉ getAllAttacks () ู…ุณุคูˆู„ุฉ ุนู† ูƒู„ ู‡ุฐุง - ุจุงู„ูุนู„ ุจุดูƒู„ ู…ู†ูุตู„ ุนู† ุงู„ูุฆุงุช ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡ ุ›

 getAllAttacks( cellX, cellY ){ // ,  , //       if( Model.Field[ cellX ][ cellY ] ) return false var cX = []; var cO = []; //   ... cX['0'] = this.getAttacksLine( cellX, cellY, 'ร—', 1, 0 ); cX['90'] = this.getAttacksLine( cellX, cellY, 'ร—', 0, 1 ); cX['45'] = this.getAttacksLine( cellX, cellY, 'ร—', 1, -1 ); cX['135'] = this.getAttacksLine( cellX, cellY, 'ร—', 1, 1 ); //  ... cO['0'] = this.getAttacksLine( cellX, cellY, 'โ—‹', 1, 0 ); cO['90'] = this.getAttacksLine( cellX, cellY, 'โ—‹', 0, 1 ); cO['45'] = this.getAttacksLine( cellX, cellY, 'โ—‹', 1, -1 ); cO['135'] = this.getAttacksLine( cellX, cellY, 'โ—‹', 1, 1 ); return { //     'x': cX, 'o': cO } } getAttacksLine( cellX, cellY, subFig, dx, dy ){ //      var C = new checkLine; C.getAttacks( cellX, cellY, subFig, dx, dy ); return this.filterAttacks( C ) //   } 

ุนู†ุฏ ุงู„ู…ุฎุฑุฌ ุŒ ู„ุฏูŠู†ุง ุฌุณู… ุจู‡ ุฌู…ูŠุน ุงู„ู‡ุฌู…ุงุช ู„ู„ุฎู„ูŠุฉ ุงู„ู…ุฎุชุจุฑุฉ

ูˆู…ุน ุฐู„ูƒ ุŒ ุฑุจู…ุง ู„ุงุญุธุช ู†ูˆุนู‹ุง ู…ู† ูˆุธูŠูุฉ ุงู„ุชุตููŠุฉ. ูˆุชุชู…ุซู„ ู…ู‡ู…ุชู‡ุง ููŠ ูุฑุฒ ุงู„ู‡ุฌู…ุงุช "ุบูŠุฑ ุงู„ู…ุฌุฏูŠุฉ":

  • ุจุฏูˆู† ุทุงู‚ุฉ (ู„ุง ุชุนุฑู ุฃุจุฏู‹ุง ู…ุง ุฅุฐุง ูƒุงู†ูˆุง ูŠุฏุฎู„ูˆู† ููŠ ุงู„ุตููŠู)
  • ุงู„ู‡ุฌู…ุงุช ุงู„ุชูŠ ุชูุชู‚ุฑ ุฅู„ู‰ ู…ุณุงุญุฉ (ู…ู‡ุงุฌู…ุฉ <5)
  • ู…ุน ุนุฏู… ูˆุฌูˆุฏ ุงุญุชู…ุงู„.

ูˆู…ุน ุฐู„ูƒ ุŒ ุฅุฐุง ูƒุงู†ุช ู‚ูˆุฉ ุงู„ู‡ุฌูˆู… ุฃูƒุจุฑ ู…ู† 5 ุŒ ูุณูˆู ูŠุชุฎุทู‰ ุงู„ู…ุฑุดุญ ุฐู„ูƒ. ูŠุฌุจ ุฃู† ูŠุฑู‰ ุงู„ุจูˆุช ู…ุซู„ ู‡ุฐู‡ ุงู„ู‡ุฌู…ุงุช ุŒ ุณูŠุคุฏูŠ ูุญุตู‡ุง ุฅู„ู‰ ุนุถุงุฏุงุช ููŠ ู†ู‡ุงูŠุฉ ุงู„ู„ุนุจุฉ.

 filterAttacks( attackLine ){ var res = [] if( attackLine.attackplace >= 5 ) attackLine.Attacks.forEach( ( a )=>{ if( a.capability && a.potential || a.capability >= 5 ) res.push( a ) }) attackLine.Attacks = res; return res } 

ู†ู‚ุงุท ุงู„ุชูˆู‚ู


ู†ุนู… ... ู…ุฑุฉ ุฃุฎุฑู‰ ุŒ ุขุณู! ู„ุฐู„ูƒ ุณูˆู ู†ุณู…ูŠ ุงู„ู…ูˆู‚ู ููŠ ุงู„ู„ุนุจุฉ ุŒ ุนู†ุฏู…ุง ุชู‚ุฑุฑ ุฎุทูˆุฉ ุฎุงุทุฆุฉ ู†ุชูŠุฌุฉ ุงู„ู„ุนุจุฉ.

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠุนุฏ ุงู„ู‡ุฌูˆู… [3: 2] ู†ู‚ุทุฉ ุชูˆู‚ู. ุฅุฐุง ู„ู… ูŠู…ู†ุนู‡ ุงู„ุฎุตู… ุจูˆุถุน ู‚ุทุนุฉ ุจุฌุงู†ุจู‡ ุŒ ูุฅู† ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ุŒ ู„ุฏูŠู†ุง ุจุงู„ูุนู„ ู‡ุฌูˆู… [4: 2] ุนู„ู‰ ุฃุฑุถ ุงู„ู…ู„ุนุจ - ุญุณู†ู‹ุง ุŒ ูŠุชู… ุชุญุฏูŠุฏ ู†ุชูŠุฌุฉ ุงู„ู„ุนุจุฉ ุŒ ุฃูŠุง ูƒุงู† ู…ุง ู‚ุฏ ูŠู‚ูˆู„ู‡ ุงู„ู…ุฑุก (ููŠ ุงู„ุบุงู„ุจูŠุฉ ุงู„ุนุธู…ู‰ ู…ู† ุงู„ุญุงู„ุงุช).

ุฃูˆ ู‡ุฌูˆู… [4: 1]. ุชุซุงุคุจ ูˆุงุญุฏ - ูˆูŠู…ูƒู† ุฅูƒู…ุงู„ ุงู„ู„ุนุจุฉ ุจุณู‡ูˆู„ุฉ.


ุงู„ุดูƒู„ 5 ุงู„ุดูƒู„

ูƒู„ ุดูŠุก ูˆุงุถุญ ูˆู…ูู‡ูˆู… ุŒ ูˆุงู„ุฎูˆุงุฑุฒู…ูŠุฉ ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡ ู‚ุงุฏุฑุฉ ุจุงู„ูุนู„ ุนู„ู‰ ู…ุฑุงุนุงุฉ ู†ู‚ุงุท ุงู„ุชูˆู‚ู ูˆุญุธุฑู‡ุง ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจ. ูŠุชุทู„ุน ุงู„ุจูˆุช ุฅู„ู‰ ุงู„ุฃู…ุงู…. ุณูŠุฑู‰ ุฃู†ู‡ ููŠ ุงู„ู…ู†ุนุทู ุงู„ุชุงู„ูŠ ุณูŠูƒูˆู† ุงู„ุฎุตู… ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุฅู†ุดุงุก ู‡ุฌูˆู… [5: 1] ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูˆุฒู†ู‡ 200 - ู…ู…ุง ูŠุนู†ูŠ ุฃู† ู†ุฑุฏูŠ ุงู„ู…ุงูƒุฑุฉ ุณูˆู ูŠุฐู‡ุจ ู‡ู†ุง.

ูˆู…ุน ุฐู„ูƒ ุŒ ุชุฎูŠู„ ู…ูˆู‚ูู‹ุง ุนู†ุฏู…ุง ุชู…ูƒู† ุฃุญุฏ ุงู„ู„ุงุนุจูŠู† ู…ู† ุงู„ุญุตูˆู„ ุนู„ู‰ ู†ู‚ุทุชูŠ ุชูˆู‚ู ููŠ ุงู„ู…ู„ุนุจ. ูˆู‡ุฐุง ุŒ ู…ู† ุงู„ูˆุงุถุญ ุŒ ู„ุง ูŠุชุฑูƒ ูุฑุตุฉ ู„ู„ุฎุตู… ุŒ ู„ุฃู†ู‡ ููŠ ุฎุทูˆุฉ ูˆุงุญุฏุฉ ูŠู…ูƒู†ู†ุง ู…ู†ุน ู†ู‚ุทุฉ ุชูˆู‚ู ูˆุงุญุฏุฉ ูู‚ุท. ูƒูŠู ู†ุนู„ู… ุงู„ุฐูƒุงุก ุงู„ุงุตุทู†ุงุนูŠ ู„ู…ู†ุน ู…ุซู„ ู‡ุฐู‡ ุงู„ู‡ุฌู…ุงุชุŸ


ุงู„ุดูƒู„ 6. 2 ู†ู‚ุงุท ุงู„ุชูˆู‚ู

ูƒู„ ุดูŠุก ุจุณูŠุท ุŒ ุนู†ุฏ ุชุญู„ูŠู„ ุฎู„ูŠุฉ ุŒ ุนู†ุฏ ุงุณุชุจุฏุงู„ ู‚ุทุนุฉ ููŠู‡ุง ุŒ ุณู†ุญุณุจ ุนุฏุฏ ู†ู‚ุงุท ุงู„ุชูˆู‚ู ุงู„ุชูŠ ุณู†ุญุตู„ ุนู„ูŠู‡ุง ููŠ ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ (ูŠู†ุธุฑ ุงู„ุจูˆุช ููŠ ุงู„ุฎุทูˆุฉ ุฅู„ู‰ ุงู„ุฃู…ุงู… ุŒ ู„ุง ุชู†ุณู‰). ู…ู† ุฎู„ุงู„ ุญุณุงุจ ู†ู‚ุทุชูŠ ุชูˆู‚ู ุŒ ู†ุฒูŠุฏ ู…ู† ูˆุฒู† ุงู„ุฎู„ูŠุฉ ุจู…ู‚ุฏุงุฑ 100.

ูˆุงู„ุขู† ุŒ ู„ู† ูŠู…ู†ุน ุงู„ุจูˆุช ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ูˆุงู‚ู ููŠ ุงู„ู„ุนุจุฉ ูุญุณุจ ุŒ ุจู„ ุณูŠูƒูˆู† ู‚ุงุฏุฑู‹ุง ุฃูŠุถู‹ุง ุนู„ู‰ ุฅู†ุดุงุฆู‡ุง ุŒ ู…ู…ุง ูŠุฌุนู„ู‡ุง ุงู„ุขู† ุฎุตู…ู‹ุง ุฃูƒุจุฑ.

ูƒูŠู ู†ูู‡ู… ุฃู† ุงู„ู‡ุฌูˆู… ู‡ูˆ ู†ู‚ุทุฉ ุชูˆู‚ู


ู„ู†ุจุฏุฃ ุจุงู„ูˆุงุถุญ: ุฃูŠ ู‡ุฌูˆู… ุจู‚ูˆุฉ 4 ู‡ูˆ ู†ู‚ุทุฉ ุชูˆู‚ู. ุชุชูŠุญ ู„ู†ุง ุฎุทูˆุฉ ูˆุงุญุฏุฉ ูุงุฆุชุฉ ูุฑุตุฉ ู„ุฅูƒู…ุงู„ ุงู„ู„ุนุจุฉ ุŒ ุฃูŠ ุถุน 5 ู‚ุทุน ุนู„ู‰ ุงู„ุชูˆุงู„ูŠ.

ุนู„ุงูˆุฉ ุนู„ู‰ ุฐู„ูƒ ุŒ ุฅุฐุง ูƒุงู† ุงุญุชู…ุงู„ ุงู„ู‡ุฌูˆู… 2 ุŒ ูุณูˆู ู†ู†ูู‚ ุฏูˆุฑุฉ ูˆุงุญุฏุฉ ุฃุฎุฑู‰ ู„ู…ู†ุน ู…ุซู„ ู‡ุฐุง ุงู„ู‡ุฌูˆู… ุŒ ู…ู…ุง ูŠุนู†ูŠ ุฃู† ู‡ู†ุงูƒ ู†ู‚ุทุฉ ุชูˆู‚ู ุจู‚ูˆุฉ 3. ูˆู„ูƒู† ู‡ู†ุงูƒ ู†ู‚ุทุฉ ุชูˆู‚ู ูˆุงุญุฏุฉ ูู‚ุท - ู‡ุฐุง ู‡ุฌูˆู… [3: 2].

ูˆุฃูƒุซุฑ ุตุนูˆุจุฉ - "ุงู„ู‡ุฌู…ุงุช ุงู„ู…ู…ุฒู‚ุฉ" .
ุณู†ู†ุธุฑ ูู‚ุท ููŠ ุงู„ู‡ุฌู…ุงุช ุงู„ุชูŠ ุชุญุชูˆูŠ ุนู„ู‰ ุฎู„ูŠุฉ ูุงุฑุบุฉ ูˆุงุญุฏุฉ ููŠ ุงู„ู…ู†ุชุตู - ู„ุง ุฃูƒุซุฑ. ู‡ุฐุง ู„ุฃู†ู‡ ู…ู† ุฃุฌู„ ุฅูƒู…ุงู„ ุงู„ู‡ุฌูˆู… ุจุฎู„ูŠุชูŠู† ูุงุฑุบุชูŠู† ููŠ ุงู„ู…ู†ุชุตู ุŒ ุชุญุชุงุฌ ุฅู„ู‰ ุฅู†ูุงู‚ ุญุฑูƒุชูŠู† ุนู„ู‰ ุงู„ุฃู‚ู„ - ู…ู† ุงู„ูˆุงุถุญ ุฃู† ู‡ุฐู‡ ู„ูŠุณุช ู†ู‚ุทุฉ ุชูˆู‚ู.

ูƒู…ุง ู†ุชุฐูƒุฑ ุŒ ู†ุนุชุจุฑ ุงู„ู‡ุฌู…ุงุช ุงู„ู…ู…ุฒู‚ุฉ ุนุฏุฉ ู‡ุฌู…ุงุช ุชู‚ู„ูŠุฏูŠุฉ: ู‡ุฌูˆู… ู…ุฑูƒุฒูŠ ูˆุงุญุฏ ูˆู‡ุฌู…ุงุช ุฌุงู†ุจูŠุฉ. ูŠู†ุชู…ูŠ ุงู„ู‡ุฌูˆู… ุงู„ู…ุฑูƒุฒูŠ ุฅู„ู‰ ุงู„ุฎู„ูŠุฉ ุงู„ู…ู…ุณูˆุญุฉ ุถูˆุฆูŠู‹ุง ุŒ ูˆูŠุญุชูˆูŠ ุงู„ู…ู‚ุณู… ุงู„ุฌุงู†ุจูŠ ุนู„ู‰ ุฃูƒุซุฑ ู…ู† 1 - ุชู… ูˆุตู ุฐู„ูƒ ุฃุนู„ุงู‡.

ุฎูˆุงุฑุฒู…ูŠุฉ ุฅูŠุฌุงุฏ ู†ู‚ุทุฉ ุชูˆู‚ู (ุฃุณู‡ู„ ุŒ ุงู‚ุฑุฃ ุฃุฏู†ุงู‡):

  1. ู†ู‚ุฏู… ุงู„ู†ุชูŠุฌุฉ ุงู„ู…ุชุบูŠุฑุฉ
  2. ู†ุฃุฎุฐ ุงู„ู‡ุฌูˆู… ุงู„ู…ุฑูƒุฒูŠ ุŒ ู†ุนุชุจุฑ ุงู„ู‚ูˆุฉ
  3. ู†ุฃุฎุฐ ุฃุญุฏ ุงู„ุฌูˆุงู†ุจ ุฅุฐุง ูƒุงู† ุงู„ู…ู‚ุณูˆู… ุนู„ูŠู‡ ู„ุง ูŠุฒูŠุฏ ุนู† 2x.
  4. ุงู„ู†ุชูŠุฌุฉ - ู…ุฌู…ูˆุน ู‚ูˆุฉ ุงู„ู‡ุฌู…ุงุช ุงู„ู…ุฑูƒุฒูŠุฉ ูˆุงู„ุฌุงู†ุจูŠุฉ
  5. ุฅุฐุง ูƒุงู†ุช ุฅู…ูƒุงู†ุงุช ุงู„ู‡ุฌู…ุงุช ุงู„ู…ุฑูƒุฒูŠุฉ ูˆุงู„ุฌุงู†ุจูŠุฉ 2 ุŒ ูู…ู† ุฃุฌู„ ู…ู†ุน ู…ุซู„ ู‡ุฐุง ุงู„ู‡ุฌูˆู… ุŒ ุณุชุญุชุงุฌ ุฅู„ู‰ ุฅู†ูุงู‚ ุฏูˆุฑ ูˆุงุญุฏ ุฅุถุงููŠ. ู„ุฐู„ูƒ ุŒ ูŠุชู… ุฒูŠุงุฏุฉ ุงู„ู†ุชูŠุฌุฉ ุจู…ู‚ุฏุงุฑ 1
  6. ุฅุฐุง ูƒุงู†ุช ุงู„ู†ุชูŠุฌุฉ > = 4 ุŒ ูู‡ุฐู‡ ู†ู‚ุทุฉ ุชูˆู‚ู
    ููŠ ุงู„ูˆุงู‚ุน ุŒ ูŠู…ูƒู† ุจุจุณุงุทุฉ ุชุนุฏุงุฏ ู†ู‚ุงุท ุงู„ุชูˆู‚ู ุŒ ูˆู„ุง ูŠูˆุฌุฏ ุงู„ูƒุซูŠุฑ ู…ู†ู‡ุง ุŒ ู„ูƒู†ู†ูŠ ู„ู… ุฃูู‡ู… ุฐู„ูƒ ุนู„ู‰ ุงู„ููˆุฑ.

 isBreakPoint( attackLine ){ if( ! attackLine || ! attackLine.length ) return false; var centAtk; attackLine.forEach( ( a )=>{ if( a.divider == 1 ) centAtk = a; }) if( centAtk.capability >= 4 ) return true if( centAtk.potential == 2 && centAtk.capability >= 3 ) return true; var res = false; attackLine.forEach( ( a )=>{ var score = centAtk.capability; if( a.divider == 2 ){ //side attack if( centAtk.potential == 2 && a.potential == 2 ) score++; if( score + a.capability >= 4 ){ res = true; return; } } }) return res; } 

ู†ุนู… ุŒ ุณู†ุฌู…ุน ูƒู„ ุดูŠุก ููŠ ุงู„ู†ู‡ุงูŠุฉ


ู„ุฐู„ูƒ ุŒ ูŠุชู… ูˆุตู ุงู„ุฌุญูŠู… ุงู„ุฑุฆูŠุณูŠ ูˆุฑุงุก ุฃุนู„ุงู‡. ุญุงู† ุงู„ูˆู‚ุช ู„ู‚ูˆู„ุจ ุดูŠุก ูŠุนู…ู„ ู…ู†ู‡. ุงู„ุฏุงู„ุฉ countWeight (xุŒ y) - ุชุฃุฎุฐ ุฅุญุฏุงุซูŠุงุช ุงู„ุฎู„ูŠุฉ ูƒู…ุฏุฎู„ ุŒ ูˆุชุนูŠุฏ ูˆุฒู†ู‡ุง. ู…ุง ุชุญุช ุบุทุงุก ู…ุญุฑูƒ ุงู„ุณูŠุงุฑุฉุŸ

ุฃูˆู„ุงู‹ ุŒ ู†ุญุตู„ ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฌู…ูŠุน ุงู„ู‡ุฌู…ุงุช ุงู„ุชูŠ ุชู†ุชู…ูŠ ุฅู„ูŠู‡ุง ุงู„ุฎู„ูŠุฉ. ( getAllAttacks (xุŒ y) ). ุจุงู„ู…ุฑูˆุฑ ุนุจุฑ ุฌู…ูŠุน ุงู„ุฎุทูˆุท ุŒ ู†ุญุณุจ ุนุฏุฏ ู†ู‚ุงุท ุงู„ุชูˆู‚ู. ุฅุฐุง ูƒุงู†ุช ู‡ู†ุงูƒ ู†ู‚ุทุชุง ุชูˆู‚ู ุŒ ู†ุชุฐูƒุฑ ุฃู† ู…ุซู„ ู‡ุฐุง ุงู„ู…ูˆู‚ู ูŠู…ูƒู† ุฃู† ูŠู‚ุฑุฑ ู†ุชูŠุฌุฉ ุงู„ู„ุนุจุฉ ุŒ ูˆูŠุฒูŠุฏ ู…ู† ูˆุฒู† ุงู„ุฎู„ูŠุฉ ุจู…ู‚ุฏุงุฑ 100.
ูˆู…ุน ุฐู„ูƒ ุŒ ูŠุฌุจ ุฃู† ุชู†ุชู…ูŠ ุฌู…ูŠุน ู†ู‚ุงุท ุงู„ุชูˆู‚ู ุฅู„ู‰ ู„ุงุนุจ ูˆุงุญุฏ ุŒ ู„ุฐู„ูƒ ุงุถุทุฑุฑุช ุฅู„ู‰ ุชู†ููŠุฐ ูุญุต ููŠ ุฎุทูˆุชูŠู†: ุงู„ุชู‚ุงุทุนุงุช ุงู„ุฃูˆู„ู‰ ุŒ ุซู… ุงู„ุฃุตูุงุฑ.

ู†ุธุฑู‹ุง ู„ุฃู†ู†ูŠ ููŠ ู…ุฌู…ูˆุนุฉ ุฃูˆุฒุงู† ุงู„ู‡ุฌูˆู… ( ATTACK_WEIGHTS [] ) ู„ู… ุฃู‚ู… ุจุชุฒูˆูŠุฏ ุงู„ู‡ุฌู…ุงุช ุจู‚ูˆุฉ 6 ุฃูˆ ุฃูƒุซุฑ ุŒ ูƒุงู† ุนู„ูŠ ุงุณุชุจุฏุงู„ู‡ุง ุจู‡ุฌู…ุงุช ุจู‚ูˆุฉ 5. ู„ุง ูุฑู‚ - ูู‡ูŠ ุชุคุฏูŠ ุฌู…ูŠุนู‡ุง ุฅู„ู‰ ู†ู‡ุงูŠุฉ ุงู„ู„ุนุจุฉ.

ุญุณู†ู‹ุง ุŒ ู†ุญู† ู†ู„ุฎุต ุฃูˆุฒุงู† ุงู„ู‡ุฌูˆู… - ู‡ุฐุง ูƒู„ ุดูŠุก.

ู†ู‚ุทุฉ ุตุบูŠุฑุฉ ุฃุฎุฑู‰: ุจุญูŠุซ ู„ุง ูŠูƒูˆู† ุงู„ุจูˆุช ุบุจูŠู‹ุง ููŠ ู†ู‡ุงูŠุฉ ุงู„ู„ุนุจุฉ ุŒ ุนู†ุฏู…ุง ูŠูƒูˆู† ู‚ุฏ ุจู†ู‰ ุจุงู„ูุนู„ ู‡ุฌูˆู…ู‹ุง ุจู‚ูˆุฉ 4 ูˆูŠููƒุฑ ููŠ ุงู„ุญุฑูƒุฉ ุงู„ุญุงู„ูŠุฉ ุŒ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุฒูŠุงุฏุฉ ูˆุฒู† ุงู„ุฎู„ูŠุฉ ุจุดูƒู„ ูƒุจูŠุฑ ู„ุฅูƒู…ุงู„ ู…ุซู„ ู‡ุฐุง ุงู„ู‡ุฌูˆู…. ุจุฏูˆู† ู‡ุฐุง ุŒ ูŠู…ูƒู† ู„ู„ุฐูƒุงุก ุงู„ุงุตุทู†ุงุนูŠ ุจุจุณุงุทุฉ ุฃู† ูŠุจุฏุฃ ููŠ ุงู„ุฏูุงุน ุนู† ู†ูุณู‡ ู…ู† ุงู„ู‡ุฌู…ุงุช "ุงู„ุฎุทูŠุฑุฉ" ุงู„ุชูŠ ูŠู‚ูˆู… ุจู‡ุง ุงู„ุฎุตู… ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู† ุงู„ู„ุนุจุฉ ุณุชุจุฏูˆ ูุงุฆุฒุฉ. ุงู„ุฎุทูˆุฉ ุงู„ุฃุฎูŠุฑุฉ ู…ู‡ู…ุฉ.

 countWeight( x, y ){ var attacks = this.getAttacks( x, y ) if( ! attacks ) return; var sum = 0; sum += count.call( this, attacks.x, 'ร—' ); sum += count.call( this, attacks.o, 'โ—‹' ); return sum function count( atks, curFig ){ var weight = 0; var breakPoints = 0; [ "0", "45", "90", "135" ].forEach( ( p )=>{ if( this.isBreakPoint( atks[p] ) ){ debug( "Break point" ) if( ++breakPoints == 2 ){ weight += 100; debug( "Good cell" ) return; } } atks[p].forEach( ( a )=>{ if( a.capability > 5 ) a.capability = 5; if( a.capability == 5 && curFig == Model.whoPlays.char ) weight += 100; weight += a.getWeight(); }); }) return weight } } 

ุงู„ุขู† ุŒ ุนู†ุฏ ุงุณุชุฏุนุงุก ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ ู„ุฎู„ูŠุฉ ู…ุนูŠู†ุฉ ุŒ ุณู†ุญุตู„ ุนู„ู‰ ูˆุฒู†ู‡ุง. ู†ู‚ูˆู… ุจู‡ุฐู‡ ุงู„ุนู…ู„ูŠุฉ ู„ุฌู…ูŠุน ุงู„ุฎู„ุงูŠุง ูˆู†ุฎุชุงุฑ ุงู„ุฃูุถู„ (ุจุฃุนู„ู‰ ูˆุฒู†). ู‡ู†ุงูƒ ูˆุชุฐู‡ุจ)

ูŠู…ูƒู†ูƒ ุงู„ุนุซูˆุฑ ุนู„ู‰ ุจุงู‚ูŠ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุนู„ู‰ github . ู‡ู†ุงูƒ ุจุงู„ูุนู„ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ูˆุงุฏ ุŒ ูˆุนุฑุถู‡ุง ุŒ ูƒู…ุง ู„ู… ุฃุญุงูˆู„ ุŒ ูŠุชุฑูƒ ุงู„ูƒุซูŠุฑ ู…ู…ุง ู‡ูˆ ู…ุฑุบูˆุจ ููŠู‡. ูˆู„ูƒู† ุฅุฐุง ูƒู†ุช ุชุณุชุทูŠุน ุงู„ู‚ุฑุงุกุฉ ุญุชู‰ ู‡ุฐู‡ ุงู„ู†ู‚ุทุฉ ุŒ ุนุฒูŠุฒูŠ ุงู„ู‚ุงุฑุฆ ุŒ ูุฃู†ุง ู…ู…ุชู† ู„ูƒ.

ุฑุฃูŠูŠ ููŠ ุงู„ู†ุชูŠุฌุฉ


ุงู†ุฒู„! ู†ุนู… ุŒ ูŠู…ูƒู†ูƒ ู‡ุฒูŠู…ุชู‡ ุŒ ู„ูƒู† ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ูŠู…ุซู„ ู…ุดูƒู„ุฉ ุจุงู„ู†ุณุจุฉ ู„ูŠ ุดุฎุตูŠุงู‹. ุฑุจู…ุง ุฃู†ุง ู„ุณุช ุญุฐุฑุง ุจู…ุง ููŠู‡ ุงู„ูƒูุงูŠุฉ. ุฌุฑุจ ู‚ูˆุชูƒ ุฃูŠุถู‹ุง.

ุฃุนู„ู… ุฃู† ุฐู„ูƒ ุฃุณู‡ู„ ุŒ ู„ูƒู†ูŠ ู„ุง ุฃุนุฑู ูƒูŠู. ุฃูˆุฏ ุงู„ุงุณุชู…ุงุน ุฅู„ู‰ ุงู„ุฃุดุฎุงุต ุงู„ุฐูŠู† ูŠุนุฑููˆู† ุฃูˆ ูŠู†ุธุฑูˆู† ุฅู„ู‰ ุชุทุจูŠู‚ุงุช ุฃุฎุฑู‰ ู„ู…ุซู„ ู‡ุฐุง ุงู„ุฑูˆุจูˆุช.

ุฃู†ุง ุฃุนุฑู ู…ุง ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุฃูุถู„. ู†ุนู… ... ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุฎูˆุงุฑุฒู…ูŠุงุช ู…ุนุฑูˆูุฉ ุŒ ู…ุซู„ minimax ุŒ ูˆู„ูƒู† ู„ู‡ุฐุง ุชุญุชุงุฌ ุฅู„ู‰ ุงู„ุญุตูˆู„ ุนู„ู‰ ุจุนุถ ุงู„ู…ุนุฑูุฉ ููŠ ู…ุฌุงู„ ู†ุธุฑูŠุฉ ุงู„ู„ุนุจุฉ ุŒ ูˆุงู„ุชูŠ ู„ู„ุฃุณู ู„ุง ูŠู…ูƒู†ู†ูŠ ุงู„ุชุจุงู‡ูŠ ุจู‡ุง.

ุฃุฎุทุท ููŠ ุงู„ู…ุณุชู‚ุจู„ ู„ุฅุถุงูุฉ ุชุญู„ูŠู„ ู†ู‚ุงุท ุงู„ุชูˆู‚ู ุนุฏุฉ ุฎุทูˆุงุช ุฅู„ู‰ ุงู„ุฃู…ุงู… ุŒ ู…ู…ุง ุณูŠุฌุนู„ ุงู„ุจูˆุช ุฎุตู…ู‹ุง ุฃูƒุซุฑ ุฌุฏูŠุฉ. ูˆู…ุน ุฐู„ูƒ ุŒ ู„ูŠุณ ู„ุฏูŠ ุงู„ุขู† ููƒุฑุฉ ูˆุงุถุญุฉ ุนู† ุชู†ููŠุฐ ุฐู„ูƒ ุ› ู„ุฏูŠ ูู‚ุท ุงู„ุฌู„ุณุฉ ุงู„ู‚ุงุฏู…ุฉ ูˆุดู‡ุงุฏุฉ ุบูŠุฑ ู…ูƒุชู…ู„ุฉ - ุงู„ุฃู…ุฑ ุงู„ุฐูŠ ูŠุญุฒู†ู†ูŠ.

ุดูƒุฑุง ู„ูƒ ุฅุฐุง ู‚ุฑุฃุช ุญุชู‰ ุงู„ู†ู‡ุงูŠุฉ.

Source: https://habr.com/ru/post/ar430708/


All Articles