ุชูู ุชุงู ุชู ... ุงูุฌู
ูุน ูุนุจูู
 ุ ุฃูุง ู
ุชุฃูุฏ. ุงููุนุจุฉ ุฌุฐุงุจุฉ ูู ุจุณุงุทุชูุง ุ ุฎุงุตุฉ ุนูุฏู
ุง ุชุณุญุจ ุงูุณุงุนุฉ ูู ู
ูุงู ู
ุง ูู ุงูุฏุฑุณ ุ ุฒูุฌูู ุ ููุง ููุฌุฏ ุดูุก ูู ู
ุชูุงูู ุงููุฏ ุจุงุณุชุซูุงุก ูุฑูุฉ ุฏูุชุฑ ุงูู
ูุงุญุธุงุช ูููู
 ุฑุตุงุต ุจุณูุท. ูุง ุฃุนุฑู ู
ู ูู ุฃูู ู
ู ุฎู
ู ู
ุฑุฉ ูุงุญุฏุฉ ุจุฑุณู
 ุตูุจุงู ูุฏูุงุฆุฑ ูู 9 ู
ุฑุจุนุงุช ุ ูููู ู
ูุฐ ุฐูู ุงูุญูู ูู
 ุชููุฏ ุงููุนุจุฉ ุฃู ุทูุจ ุ ุฎุงุตุฉ ูุฃู ุงููุงุณ ุชูุตููุง ุฅูู ุงูุนุฏูุฏ ู
ู ุงุฎุชูุงูุงุชูุง.

ุชุชูุงูู ูุฐู ุงูู
ูุงูุฉ ุนู
ููุฉ ุชุทููุฑ ุฌุงูุง ุณูุฑูุจุช ููุฐูุงุก ุงูุงุตุทูุงุนู ููุนุจ ุฃุญุฏ ูุฐู ุงูุงุฎุชูุงูุงุช ูู ูุนุจุฉ tic-tac-toe: ุธูุฑุช ุงููุซูุฑ ู
ู ุงูู
ูุงุฏ ุ ููููู ุฎููุชูุง ุจุงูุฑุณูู
 ุงูู
ุชุญุฑูุฉ ูุงูุตูุฑ. ุนูู ุฃู ุญุงู ุ ุนูู ุงูุฃูู ูุณุชุญู ุงูู
ุญุงููุฉ.
ุงูุงุฎุชูุงูุงุช ุจูู ูุฐุง ุงูุฅุตุฏุงุฑ ู
ู ุงููุนุจุฉ ูุงูุฃุตู ูู ูู
ุง ููู:
- ูู
ูู ุฃู ูููู ุงูุญูู ูุจูุฑูุง ุจุดูู ุชุนุณูู (ุฅูู ู
ุชู ุณูุณุชู
ุฑ ุงููู
ุจููุชุฑ ุงูู
ุญู
ูู)
- ุงููุงุฆุฒ ูู ุงูุฐู ูุถุน 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 );  
 ุฏุนููุง ููุฒู ุฅูู ุงูุจูุช ููุณู
ูุฐุง ุ ููุฏ ูุชุจูุง ุจุงููุนู ุตูุญุฉ ุชุญุชูู ุนูู ุชูู ุชุงู ุชู. ููุชูู ุฅูู ุงูู
ูู
ุฉ ุงูุฑุฆูุณูุฉ - ู
ูุธู
ุฉ ุงูุนูู ุงูุฏูููุฉ.
ูุง ูู
ููู ููุท ุฃุฎุฐ ุงูุฑู
ุฒ ููุชุงุจุชู ุฅุฐุง ููุช ูุง ุชุนุฑู ููู: ุชุญุชุงุฌ ุฅูู ุงูุชูููุฑ ูู ู
ูุทู ุงูุฑูุจูุช.
ุฎูุงุตุฉ ุงูููู ูู ุชุญููู ุงูู
ูุนุจ ุ ุนูู ุงูุฃูู ุฌุฒุก ู
ูู ุ ูุญุณุงุจ 
ุงูุณุนุฑ (ุงููุฒู) ููู ุฎููุฉ ูู ุงูุญูู. ุงูุฎููุฉ ุฐุงุช ุงููุฒู ุงูุฃุนูู - ุงูุฃูุซุฑ ูุงุนุฏุฉ - ุณูุถุน ุงูุจูุช ุดูููุง ููุงู. ุชุชู
ุซู ุงูุตุนูุจุฉ ุงูุฑุฆูุณูุฉ ูู ุญุณุงุจ ูุฒู ุฎููุฉ ูุงุญุฏุฉ.
ุงูู
ุตุทูุญุงุช
ุงูุตูุจุงู ูุฃุตุงุจุน ุงููุฏู
 ูู ุฃุฑูุงู
.
ุณูุทูู ุนูู 
ุงููุฌูู
 ุนุฏุฉ ุดุฎุตูุงุช ู
ุชุทุงุจูุฉ ุชูู ุฌูุจูุง ุฅูู ุฌูุจ ุนูู ููุณ ุงูุฎุท. ูู ุงููุงูุน ุ ูุฐุง ูุซูุฑ. ุนุฏุฏ ุงููุทุน ูู ุงููุฌูู
 ูู 
ููุชู . ูุทุนุฉ ูุงุญุฏุฉ ู
ููุตูุฉ ูู ุฃูุถุง ูุฌูู
 (ุงูููุฉ 1).
ูู ุฎูุงูุง ุงููุฌูู
 ุงูู
ุฌุงูุฑุฉ (ูู ุงูููุงูุงุช) ูุฏ ุชููู ููุงู ุฎูุงูุง ูุงุฑุบุฉ ุฃู ูุทุน ู
ุนุงุฏูุฉ. ู
ู ุงูู
ูุทูู ุฃู ูููุฑ ูู ุฃู ูุฌูู
ุงู ุจุฎููุชูู ูุงุฑุบุชูู ุนูุฏ "ุงูููุงูุงุช" ูู
ูู ุชุทููุฑู ูู ุงุชุฌุงููู ุ ู
ู
ุง ูุฌุนูู ุฃูุซุฑ ูุงุนุฏุฉ. ุณูุทูู ุนูู ุนุฏุฏ ุงูุฎูุงูุง ุงููุงุฑุบุฉ ูู "ููุงูุงุช" ุงููุฌูู
 
ุฅู
ูุงูุงุชู . ูู
ูู ุฃู ูููู ุงูุฌูุฏ 0 ุฃู 1 ุฃู 2.
ูุดูุฑ ุฅูู ุงููุฌู
ุงุช ุนูู ุงููุญู ุงูุชุงูู: 
[ุงูููุฉ ุงููุฌูู
ูุฉ ุ ุงูู
ุญุชู
ูุฉ] . ุนูู ุณุจูู ุงูู
ุซุงู ุ 
ูุฌูู
 [4: 1] .
 ุงูุดูู 1. ูุฌูู
 [4: 1]
ุงูุดูู 1. ูุฌูู
 [4: 1]ูู ุณูุงู ุงูุชุญููู ุ ุณูููู
 ุจุชูููู
 ุฌู
ูุน ุงูุฎูุงูุง ุงูุชู ุชุฏุฎู ู
ูุทูุฉ ู
ุนููุฉ. ุณุชุญุณุจ ูู ุฎููุฉ 
ูุฒููุง . ูุชู
 ุญุณุงุจูุง ุจูุงุกู ุนูู ุฃูุฒุงู ุฌู
ูุน ุงููุฌู
ุงุช ุงูุชู ุชุคุซุฑ ุนูููุง ูุฐู ุงูุฎููุฉ.
ุฌููุฑ ุงูุชุญููู
ุชุฎูู ุฃูู ูู ุณุงุญุฉ ุงููุนุจ ุ ููุงู ุจุงููุนู ุงูุนุฏูุฏ ู
ู ุงููุฌู
ุงุช ู
ู ูุงุนุจ ูุงุญุฏ ูุซุงูู. ูููู
 ุฃุญุฏ ุงููุงุนุจูู ุจุญุฑูุฉ (ุฏุนูุง ุงูุตูุจุงู). ุจุทุจูุนุฉ ุงูุญุงู ุ ููุชูู ุฅูู ุฒูุฒุงูุฉ ูุงุฑุบุฉ - ูุจุงูุชุงูู ูู
ููู:
- ุทูุฑ ูุฌูู
ู ุ ูุฑุจู
ุง ุฃูุซุฑ ู
ู ูุฌูู
 ูุงุญุฏ ุ ูุฒูุฏ ู
ู ููุชู. ูุฏ ูุดู ูุฌูู
ูุง ุฌุฏูุฏูุง ุ ูู
ุง ุฅูู ุฐูู.
- ู
ูุน ุชุทูุฑ ูุฌูู
 ุงูุนุฏู ุฃู ู
ูุนู ุชู
ุงู
ูุง.
ุฃู ุฃู ุจุทููุง ูู
ููู ุงููุฌูู
 ูุงูุฏูุงุน. ุฃู ุฑุจู
ุง ุฏูุนุฉ ูุงุญุฏุฉ. ุจุงููุณุจุฉ ูู ุ ูู ู
ู ุงูุฃูู ูุงูุซุงูู ู
ูู
ุงู.
ุฌููุฑ ุงูุชุญููู ูู
ุง ููู:
- ูุณุชุจุฏู ุงูุจูุช ุงูุฃุฑูุงู
 ุงูู
ูุฌูุฏุฉ ูู ุงูุฎููุฉ ุงูู
ุญุฏุฏุฉ: ุฃููุงู ุชูุงุทุน ุ ุซู
 ุตูุฑ.
- ุซู
 ูุจุญุซ ุนู ุฌู
ูุน ุงููุฌู
ุงุช ุงูุชู ุชููุชูุง ู
ุซู ูุฐู ุงูุชุญุฑูุงุช ูููุฎุต ุฃูุฒุงููุง.
- ุงูู
ุจูุบ ุงูู
ุณุชูู
 ูู ูุฒู ุงูุฎููุฉ.
- ูุชู
 ุชูููุฐ ุฎูุงุฑุฒู
ูุฉ ู
ู
ุงุซูุฉ ูุฌู
ูุน ุฎูุงูุง ุงูู
ูุนุจ.

ูู ุงููุงูุน ุ ูุชุญูู ู
ู ูุฐู ุงูุฎูุงุฑุฒู
ูุฉ ุนู
ุง ุณูุญุฏุซ ุฅุฐุง ุฐูุจูุง ุจูุฐู ุงูุทุฑููุฉ ... ูู
ุงุฐุง ุณูุญุฏุซ ุฅุฐุง ุฐูุจ ุงูุฎุตู
 ุจูุฐู ุงูุทุฑููุฉ. ูุชุทูุน ุฎุทูุฉ ูุงุญุฏุฉ ููุฎุชุงุฑ ุงูุฎููุฉ ุงูุฃูุซุฑ ู
ูุงุกู
ุฉ - ุจุฃุนูู ูุฒู.
ุฅุฐุง ูุงู ููุฎููุฉ ูุฒู ุฃูุซุฑ ู
ู ุฎููุฉ ุฃุฎุฑู ุ ูุฅููุง ุชุคุฏู ุฅูู ุฅูุดุงุก ูุฌู
ุงุช ุฃูุซุฑ ุฎุทูุฑุฉ ุ ุฃู ูู
ูุน ูุฌู
ุงุช ุงูุนุฏู ุงููููุฉ. ูู ุดูุก ู
ูุทูู ... ูุจุฏู ูู.
ุฅุฐุง ุงูุชููุช ุฅูู ุงูุตูุญุฉ ููุชุจุช ูู ูุญุฏุฉ ุงูุชุญูู
 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]
ุงูุดูู 2. ุงููุฌูู
 [4: 2]ูุฌู
ุงุช ู
ู
ุฒูุฉ
ูู
 ูุชู
 ุชูุฏูู
 ุงูุฑู
ุฒ ูู ูุฐู ุงูููุฑุฉ. ููุฏู
 ููุง ู
ูููู
 ู
ูุณู
 ุงููุฌูู
 ูุดุฑุญ ุฌููุฑ 
"ุงููุฌู
ุงุช ุงูู
ู
ุฒูุฉ" .
ุถุน ูู ุงุนุชุจุงุฑู ุงูู
ููู ุงูุชุงูู: ุนูุฏ ุงุณุชุจุฏุงู ุดูู ูุฅุฒุงูุฉ ุนุฏุฉ ุฎูุงูุง ูุงุฑุบุฉ ุ ูููู ููุณ ุฃูุซุฑ ู
ู 5 ุ ููุฌุฏ ูุงุญุฏ ุขุฎุฑ.
ููุจุฏู ุฃู ููุงู ุดุฎุตูุชุงู ู
ุชุทุงุจูุชุงู ุนูู ููุณ ุงูุฎุท ... ูุจุฏู ุฃูู ูุฌูู
 ุ ูููู ูู ุงูุญูููุฉ ูุง. ููุณ ุฃู
ุฑุง ุ ูุฃู ู
ุซู ูุฐู ุงููุฌู
ุงุช "ุงูู
ู
ุฒูุฉ" ุชูุทูู ุฃูุถุง ุนูู ุชูุฏูุฏ ู
ุญุชู
ู.
ุฎุงุตุฉ ูู ู
ุซู ูุฐู ุงูุญุงูุงุช ุ ููู ูุฌูู
 ุณูู ูุญุณุจ ุงูู
ูุณูู
 ุนููู. ูู ุงูุจุฏุงูุฉ ุ ููู
ุชูุง ูู 1.
- ููุฏู
 ุงููุฌูู
 "ุงูู
ู
ุฒู" ุนูู ุฃูู ุงุนุชูุงุฏู
- ูุญุณุจ ุนุฏุฏ ุงูุฎูุงูุง ุงููุงุฑุบุฉ ุจูู ุงููุฌูู
 ุงูู
ุฑูุฒู ูุงูุฌุงูุจ
- ููู ุฎููุฉ ูุงุฑุบุฉ ุ ูุฒุฏุงุฏ ุงูู
ูุณูู
 ุจู
ูุฏุงุฑ 1
- ูุญุณุจ ูุฒู ุงููุฌูู
 ุงูู
ุฑูุฒู ูุงูู
ุนุชุงุฏ ุ ูุฒู ุงููุฌู
ุงุช ุงูุฌุงูุจูุฉ - ุงููุณู
ุฉ ุนูู ุงูู
ูุณูู
 ุนููู
 ุงูุดูู 3. ุชุญููู "ุงููุฌูู
 ุงูู
ู
ุฒู". ูุชู
 ูุญุต ุฎููุฉ ุฐุงุช ุตููุจ ุฃุตูุฑ.
ุงูุดูู 3. ุชุญููู "ุงููุฌูู
 ุงูู
ู
ุฒู". ูุชู
 ูุญุต ุฎููุฉ ุฐุงุช ุตููุจ ุฃุตูุฑ.ูุจุงูุชุงูู ุ ุณุชุฃุฎุฐ ู
ูุธู
ุฉ ุงูุนูู ุงูุฏูููุฉ ุจุนูู ุงูุงุนุชุจุงุฑ ุงููุฌู
ุงุช ุงูู
ู
ุฒูุฉ. ูู ุงููุงูุน ุ ุณุชููู ูุฐู ูุฌู
ุงุช ุนุงุฏูุฉ ุ ูููู ููู
ุง ูุงูุช ุฃุจุนุฏ ู
ู ุงูุฎููุฉ ุงูู
ู
ุณูุญุฉ ุถูุฆููุง ุ ูู ุชุฃุซูุฑูุง ุนูููุง ุ ูุจุงูุชุงูู ุ ูุงู ููุง ูุฒู ุฃูู (ุจูุถู ุงูุญุงุฌุฒ).
ุฎูุงุฑุฒู
ูุฉ ุจุญุซ ุงููุฌูู
ุฃููุงู ุ ูู
 ุจุฅูุดุงุก 
ูุฆุฉ ูุฌูู
. ุณูููู ูููุฌูู
 ุซูุงุซ ุณู
ุงุช ุ ูุชุจุช ุนููุง ูู ููุช ุณุงุจู:
 class Attack{ constructor( cap = 0, pot = 0, div = 1 ){ this.capability = cap;  
ูุฃุญุฏ 
ุงูุทุฑู ุงูุชู ุณุชุนูุฏ ูุฒู ูุฌูู
 ู
ุง:
 countWeigth(){ return ATTACK_WEIGHT[ this.capability, this.potential ] / this.divider } } 
ุงูุชุงูู. ุณููุณู
 ุงูุจุญุซ ุนู ุฌู
ูุน ุงููุฌู
ุงุช ูุฎููุฉ ูุงุญุฏุฉ ุฅูู:
- ุงูุจุญุซ ุงูุฃููู
- ุจุญุซ ุนู
ูุฏู
- 45 ุฏุฑุฌุฉ ุจุญุซ ูุทุฑู
- 135 ุฏุฑุฌุฉ ุจุญุซ ูุทุฑู
ูู ูุฐู 
ุฎุทูุท ุ ููู
ูู ุชุนู
ูู
 ุฎูุงุฑุฒู
ูุฉ ุงูุจุญุซ ุนู ุงููุฌู
ุงุช ุนูู ูุฐู ุงูุฎุทูุท: 
ูุฆุฉ checkLine .
ูู
ุน ุฐูู ุ ูุง ูุญุชุงุฌ ุฅูู ุงูุชุญูู ู
ู ุงูุฎุท ุจุฃูู
ูู. ุงูููุฉ ุงููุฌูู
ูุฉ ุงููุตูู ุงูุชู ุชูู
ูุง ูู 5. ุจุงูุทุจุน ุ ู
ู ุงูู
ู
ูู ุฅูุดุงุก ูุฌูู
 ุจููุฉ ุ ุนูู ุณุจูู ุงูู
ุซุงู ุ 6. ูููู ุจุงููุณุจุฉ ุฅูู ุงูุฐูุงุก ุงูุงุตุทูุงุนู ุงูุฐู ูุญูู ูุถุน ุงููุนุจุฉ ูู ุงูุฎุทูุฉ ุงูุชุงููุฉ ุ ูุฅูู ูุดุจู 6 ุฃู 5. ูุดูุฑ ุงุญุชู
ุงู ุงูุญุตูู ุนูู ุฅุญุฏู ูุฐู ุงููุฌู
ุงุช ุฅูู ููุงูุฉ ุงููุนุจุฉ ูู ุงูุฎุทูุฉ ุงูุชุงููุฉ. ูุจูุงุกู ุนูู ุฐูู ุ ุณูููู ูุฒู ุงูุฎููุฉ ุงูุชู ุชู
 ุชุญููููุง ูู ููุณู ูู ููุชุง ุงูุญุงูุชูู.
ุณู
ุงุช ุงููุตู:
 class checkLine{ constructor(){  
ู
ู ุงูุถุฑูุฑู ุงูุชููู ููุง ุ ุญูุซ ูุฏ ูุทุฑุญ ุงูุณุคุงู: ูู
ุงุฐุง ุชุญูู ู
ู ุงูุฎููุฉ ุงูุณุงุฏุณุฉ ุฅุฐุง ูุงูุช ููุฉ ุงููุฌูู
 ุงููุตูู ูู 5. ูุงูุฌูุงุจ ูู ุชุญุฏูุฏ ุฌูุงุฒ ุงูุชุญูู
 ุนู ุจุนุฏ ุงูู
ุญุชู
ู ู
ู ู
ุฑูุฒ ุงููุฌูู
.
ููู
ุง ููู ู
ุซุงู: ููุน ูุฌูู
 ุจููุฉ 1 ูู ุงูุตูุฑุฉ ุนูู ุญุฏูุฏ ุงูู
ูุทูุฉ ุงูู
ู
ุณูุญุฉ ุถูุฆููุง. ูู
ุนุฑูุฉ ุฅู
ูุงูุงุช ูุฐุง ุงููุฌูู
 ุชุญุชุงุฌ ุฅูู "ุงููุธุฑ ุฅูู ุงูุฎุงุฑุฌ".
 ุงูุชูู. 3. ู
ุณุญ ุงูุฎูุงูุง ุงูุณุงุฏุณุฉ. ุฅุฐุง ูู
 ุชูู
 ุจู
ุณุญ ุงูุฎููุฉ ุงูุณุงุฏุณุฉ ุ ูู
ููู ุชุญุฏูุฏ ุงุญุชู
ุงู ุงููุฌูู
 ุจุดูู ุบูุฑ ุตุญูุญ.
ุงูุชูู. 3. ู
ุณุญ ุงูุฎูุงูุง ุงูุณุงุฏุณุฉ. ุฅุฐุง ูู
 ุชูู
 ุจู
ุณุญ ุงูุฎููุฉ ุงูุณุงุฏุณุฉ ุ ูู
ููู ุชุญุฏูุฏ ุงุญุชู
ุงู ุงููุฌูู
 ุจุดูู ุบูุฑ ุตุญูุญ.   
ูุฏ ูุง ูููู ููุงู ุจุจุณุงุทุฉ ู
ุณุงุญุฉ ูุงููุฉ ูุฅูู
ุงู ุจุนุถ ุงููุฌู
ุงุช. ุจุนุฏ ุงุญุชุณุงุจ ู
ูุงู ุงููุฌูู
 ุ ูู
ูููุง ุฃู ูููู
 ู
ุณุจููุง ุฃู ุงููุฌู
ุงุช ุบูุฑ ูุงุนุฏุฉ.
 ุงูุชูู. 4. ู
ูุงู ูููุฌูู
ุงูุชูู. 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 );  
ูุฑุฌู ู
ูุงุญุธุฉ ุฃูู ุฅุฐุง ุฃุฑุฌุนุช 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 (ุงูุฎููุฉ ุงููุงุฑุบุฉ).
4) ุฅุฐุง ุชุฒุงู
ู ุงูุดูู ูู ุงูุฎููุฉ ุงูุฎุงู
ุณุฉ ู
ุน ุงูุฎููุฉ ุงูู
ุฑูุฒูุฉ ุ ูุฅู ุงููุฌูู
 "ุงุณุชุฑุงุญ" ุนูู ุงูุญุฏูุฏ ููุชุญุฏูุฏ ุงุญุชู
ุงู ุงููุฌูู
 ุ ุณูููู ุนููู "ุงูุชุญูู ู
ู ุงูุญุฏูุฏ" ( 
this.checkEdge = true ).
 if( this.iter == 4 && fig == this.subFig )  
ูุธููุฉ 
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 ){  
ุนูุฏ ุงูู
ุฎุฑุฌ ุ ูุฏููุง ุฌุณู
 ุจู ุฌู
ูุน ุงููุฌู
ุงุช ููุฎููุฉ ุงูู
ุฎุชุจุฑุฉ
ูู
ุน ุฐูู ุ ุฑุจู
ุง ูุงุญุธุช ููุนูุง ู
ู ูุธููุฉ ุงูุชุตููุฉ. ูุชุชู
ุซู ู
ูู
ุชูุง ูู ูุฑุฒ ุงููุฌู
ุงุช "ุบูุฑ ุงูู
ุฌุฏูุฉ":
- ุจุฏูู ุทุงูุฉ (ูุง ุชุนุฑู ุฃุจุฏูุง ู
ุง ุฅุฐุง ูุงููุง ูุฏุฎููู ูู ุงูุตููู)
- ุงููุฌู
ุงุช ุงูุชู ุชูุชูุฑ ุฅูู ู
ุณุงุญุฉ (ู
ูุงุฌู
ุฉ <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 ุงูุดูููู ุดูุก ูุงุถุญ ูู
ูููู
 ุ ูุงูุฎูุงุฑุฒู
ูุฉ ุงูู
ูุถุญุฉ ุฃุนูุงู ูุงุฏุฑุฉ ุจุงููุนู ุนูู ู
ุฑุงุนุงุฉ ููุงุท ุงูุชููู ูุญุธุฑูุง ูู ุงูููุช ุงูู
ูุงุณุจ. ูุชุทูุน ุงูุจูุช ุฅูู ุงูุฃู
ุงู
. ุณูุฑู ุฃูู ูู ุงูู
ูุนุทู ุงูุชุงูู ุณูููู ุงูุฎุตู
 ูุงุฏุฑูุง ุนูู ุฅูุดุงุก ูุฌูู
 [5: 1] ุ ุนูู ุณุจูู ุงูู
ุซุงู ุ ูุฒูู 200 - ู
ู
ุง ูุนูู ุฃู ูุฑุฏู ุงูู
ุงูุฑุฉ ุณูู ูุฐูุจ ููุง.
ูู
ุน ุฐูู ุ ุชุฎูู ู
ููููุง ุนูุฏู
ุง ุชู
ูู ุฃุญุฏ ุงููุงุนุจูู ู
ู ุงูุญุตูู ุนูู ููุทุชู ุชููู ูู ุงูู
ูุนุจ. ููุฐุง ุ ู
ู ุงููุงุถุญ ุ ูุง ูุชุฑู ูุฑุตุฉ ููุฎุตู
 ุ ูุฃูู ูู ุฎุทูุฉ ูุงุญุฏุฉ ูู
ูููุง ู
ูุน ููุทุฉ ุชููู ูุงุญุฏุฉ ููุท. ููู ูุนูู
 ุงูุฐูุงุก ุงูุงุตุทูุงุนู ูู
ูุน ู
ุซู ูุฐู ุงููุฌู
ุงุชุ
 ุงูุดูู 6. 2 ููุงุท ุงูุชููู
ุงูุดูู 6. 2 ููุงุท ุงูุชููููู ุดูุก ุจุณูุท ุ ุนูุฏ ุชุญููู ุฎููุฉ ุ ุนูุฏ ุงุณุชุจุฏุงู ูุทุนุฉ ูููุง ุ ุณูุญุณุจ ุนุฏุฏ ููุงุท ุงูุชููู ุงูุชู ุณูุญุตู ุนูููุง ูู ุงูุฎุทูุฉ ุงูุชุงููุฉ (ููุธุฑ ุงูุจูุช ูู ุงูุฎุทูุฉ ุฅูู ุงูุฃู
ุงู
 ุ ูุง ุชูุณู). ู
ู ุฎูุงู ุญุณุงุจ ููุทุชู ุชููู ุ ูุฒูุฏ ู
ู ูุฒู ุงูุฎููุฉ ุจู
ูุฏุงุฑ 100.
ูุงูุขู ุ ูู ูู
ูุน ุงูุจูุช ู
ุซู ูุฐู ุงูู
ูุงูู ูู ุงููุนุจุฉ ูุญุณุจ ุ ุจู ุณูููู ูุงุฏุฑูุง ุฃูุถูุง ุนูู ุฅูุดุงุฆูุง ุ ู
ู
ุง ูุฌุนููุง ุงูุขู ุฎุตู
ูุง ุฃูุจุฑ.
ููู ูููู
 ุฃู ุงููุฌูู
 ูู ููุทุฉ ุชููู
ููุจุฏุฃ ุจุงููุงุถุญ: ุฃู ูุฌูู
 ุจููุฉ 4 ูู ููุทุฉ ุชููู. ุชุชูุญ ููุง ุฎุทูุฉ ูุงุญุฏุฉ ูุงุฆุชุฉ ูุฑุตุฉ ูุฅูู
ุงู ุงููุนุจุฉ ุ ุฃู ุถุน 5 ูุทุน ุนูู ุงูุชูุงูู.
ุนูุงูุฉ ุนูู ุฐูู ุ ุฅุฐุง ูุงู ุงุญุชู
ุงู ุงููุฌูู
 2 ุ ูุณูู ูููู ุฏูุฑุฉ ูุงุญุฏุฉ ุฃุฎุฑู ูู
ูุน ู
ุซู ูุฐุง ุงููุฌูู
 ุ ู
ู
ุง ูุนูู ุฃู ููุงู ููุทุฉ ุชููู ุจููุฉ 3. ูููู ููุงู ููุทุฉ ุชููู ูุงุญุฏุฉ ููุท - ูุฐุง ูุฌูู
 [3: 2].
ูุฃูุซุฑ ุตุนูุจุฉ - 
"ุงููุฌู
ุงุช ุงูู
ู
ุฒูุฉ" .
ุณููุธุฑ ููุท ูู ุงููุฌู
ุงุช ุงูุชู ุชุญุชูู ุนูู ุฎููุฉ ูุงุฑุบุฉ ูุงุญุฏุฉ ูู ุงูู
ูุชุตู - ูุง ุฃูุซุฑ. ูุฐุง ูุฃูู ู
ู ุฃุฌู ุฅูู
ุงู ุงููุฌูู
 ุจุฎููุชูู ูุงุฑุบุชูู ูู ุงูู
ูุชุตู ุ ุชุญุชุงุฌ ุฅูู ุฅููุงู ุญุฑูุชูู ุนูู ุงูุฃูู - ู
ู ุงููุงุถุญ ุฃู ูุฐู ููุณุช ููุทุฉ ุชููู.
ูู
ุง ูุชุฐูุฑ ุ ูุนุชุจุฑ ุงููุฌู
ุงุช ุงูู
ู
ุฒูุฉ ุนุฏุฉ ูุฌู
ุงุช ุชูููุฏูุฉ: ูุฌูู
 ู
ุฑูุฒู ูุงุญุฏ ููุฌู
ุงุช ุฌุงูุจูุฉ. ููุชู
ู ุงููุฌูู
 ุงูู
ุฑูุฒู ุฅูู ุงูุฎููุฉ ุงูู
ู
ุณูุญุฉ ุถูุฆููุง ุ ููุญุชูู ุงูู
ูุณู
 ุงูุฌุงูุจู ุนูู ุฃูุซุฑ ู
ู 1 - ุชู
 ูุตู ุฐูู ุฃุนูุงู.
ุฎูุงุฑุฒู
ูุฉ ุฅูุฌุงุฏ ููุทุฉ ุชููู (ุฃุณูู ุ ุงูุฑุฃ ุฃุฏูุงู):
- ููุฏู
 ุงููุชูุฌุฉ ุงูู
ุชุบูุฑุฉ
- ูุฃุฎุฐ ุงููุฌูู
 ุงูู
ุฑูุฒู ุ ูุนุชุจุฑ ุงูููุฉ
- ูุฃุฎุฐ ุฃุญุฏ ุงูุฌูุงูุจ ุฅุฐุง ูุงู ุงูู
ูุณูู
 ุนููู ูุง ูุฒูุฏ ุนู 2x.
- ุงููุชูุฌุฉ - ู
ุฌู
ูุน ููุฉ ุงููุฌู
ุงุช ุงูู
ุฑูุฒูุฉ ูุงูุฌุงูุจูุฉ
- ุฅุฐุง ูุงูุช ุฅู
ูุงูุงุช ุงููุฌู
ุงุช ุงูู
ุฑูุฒูุฉ ูุงูุฌุงูุจูุฉ 2 ุ ูู
ู ุฃุฌู ู
ูุน ู
ุซู ูุฐุง ุงููุฌูู
 ุ ุณุชุญุชุงุฌ ุฅูู ุฅููุงู ุฏูุฑ ูุงุญุฏ ุฅุถุงูู. ูุฐูู ุ ูุชู
 ุฒูุงุฏุฉ ุงููุชูุฌุฉ ุจู
ูุฏุงุฑ 1
- ุฅุฐุง ูุงูุช ุงููุชูุฌุฉ > = 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 ){  
ูุนู
 ุ ุณูุฌู
ุน ูู ุดูุก ูู ุงูููุงูุฉ
ูุฐูู ุ ูุชู
 ูุตู ุงูุฌุญูู
 ุงูุฑุฆูุณู ูุฑุงุก ุฃุนูุงู. ุญุงู ุงูููุช ููููุจ ุดูุก ูุนู
ู ู
ูู. ุงูุฏุงูุฉ 
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 ุ ูููู ููุฐุง ุชุญุชุงุฌ ุฅูู ุงูุญุตูู ุนูู ุจุนุถ ุงูู
ุนุฑูุฉ ูู ู
ุฌุงู ูุธุฑูุฉ ุงููุนุจุฉ ุ ูุงูุชู ููุฃุณู ูุง ูู
ูููู ุงูุชุจุงูู ุจูุง.ุฃุฎุทุท ูู ุงูู
ุณุชูุจู ูุฅุถุงูุฉ ุชุญููู ููุงุท ุงูุชููู ุนุฏุฉ ุฎุทูุงุช ุฅูู ุงูุฃู
ุงู
 ุ ู
ู
ุง ุณูุฌุนู ุงูุจูุช ุฎุตู
ูุง ุฃูุซุฑ ุฌุฏูุฉ. ูู
ุน ุฐูู ุ ููุณ ูุฏู ุงูุขู ููุฑุฉ ูุงุถุญุฉ ุนู ุชูููุฐ ุฐูู ุ ูุฏู ููุท ุงูุฌูุณุฉ ุงููุงุฏู
ุฉ ูุดูุงุฏุฉ ุบูุฑ ู
ูุชู
ูุฉ - ุงูุฃู
ุฑ ุงูุฐู ูุญุฒููู.ุดูุฑุง ูู ุฅุฐุง ูุฑุฃุช ุญุชู ุงูููุงูุฉ.