крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄

НСбольшоС вступлСниС

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ³Ρ€Ρ‹

Π­Ρ‚Π° ΠΈΠ³Ρ€Π° состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… частСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написаны Π½Π° HTML, CSS ΠΈ JavaScript.

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚Π°ΠΊΠΎΠΉ: Π½Π° Π²Π΅Π±-страничкС (HTML) Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ ссылки Π½Π° Ρ„Π°ΠΉΠ» с JavaScript-ΠΎΠΌ ΠΈ CSS Ρ„Π°ΠΉΠ» со стилями. Π’Π°ΠΊ ΠΆΠ΅, Π² HTML Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ мСста, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ элСмСнты ΠΈΠ³Ρ€Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ. А Ρ‚Π°ΠΊ ΠΆΠ΅ вставлСна ΠΎΠ΄Π½Π° функция Π½Π° JavaScript, которая запускаСтся сразу послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы, ΠΈ Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ языка для ΠΈΠ³Ρ€Ρ‹, ΠΈ Π΄Π°Ρ‘Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

Π’ CSS Ρ„Π°ΠΉΠ»Π΅ содСрТатся стили элСмСнтов ΠΈΠ³Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠ° ΠΊΠ»Π΅Ρ‚ΠΎΠΊ, ΠΈ Ρ‚ΠΈΠΏ курсора ΠΌΡ‹ΡˆΠΈ, ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΊΠ»Π΅Ρ‚ΠΊΡƒ.

Π’ JS Ρ„Π°ΠΉΠ»Π΅ содСрТится основной ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ управляСт ΠΈΠ³Ρ€ΠΎΠΉ.

Π Π°Π· ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‚ΠΎ практичСски каТдая строчка Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ – ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ данная ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ CSS Ρ„Π°ΠΉΠ»Π°

CSS (каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй) – описываСт ΡΡ‚ΠΈΠ»ΡŒ для отобраТСния ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля Π½Π° HTML страницы. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ CSS ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π±Π΅Π· ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… объяснСний, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с коммСнтариями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ символами /* ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ символами */.

Код Π½Π° HTML страницС

HTML. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° Π²Π΅Π±-страницу. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° подписан.

Π’Π°ΠΊ ΠΆΠ΅, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ onload=»initGame();» Π² Ρ‚Π΅Π³ BODY.

Π²Π½ΡƒΡ‚Ρ€ΡŒ BODY – Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΉ:

Π²Π½ΡƒΡ‚Ρ€ΡŒ BODY – Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅:

Код JavaScript ΠΈΠ³Ρ€Ρ‹

Π‘Π°ΠΌΡ‹ΠΉ большой ΠΊΠΎΠ΄. И самый Π³Π»Π°Π²Π½Ρ‹ΠΉ. Π’ Π½Ρ‘ΠΌ Π΅ΡΡ‚ΡŒ ΠΈ ИИ сопСрника, ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отобраТСния ΠΈ построСния поля, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ±Π΅Π΄Ρ‹. Но, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сходу, Π΄ΡƒΠΌΠ°ΡŽ, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТноват, Ρ‚ΠΎ сначала я ΠΎΠΏΠΈΡˆΡƒ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈ функция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈΠ³Ρ€Ρ‹, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь исходный ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° gamescript.js. ВсС основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π΄Π°Π½Ρ‹ с коммСнтариями (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² JS ΠΈΠ΄ΡƒΡ‚ послС Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ слСша //).

// (C) www.AlexeyK.com, 2012.

var gameImgDir=»data/»;
var gTexts=[]; // Для многоязычности.
gTexts[‘win1’]=’Win ‘; gTexts[‘win2′]=’!’;
gTexts[‘playing’]=’. ‘
gTexts[‘start’]=’Begin game!’

var gField=[]; // ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅

function createField(w,h) < // Π—Π°Π΄Π°Ρ‘Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.
gField=new Array(w); // созданиС нового массива.
for (i=0;i // Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π΅ΠΌ массив Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

var hT=»

«; // Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ‚Π΅Π³Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.
for (j=0;j // созданиС новой линии
for (i=0;i // вставка ячССк Π² линию
hT+=»

«;
>
hT+=»

«; // ΠΊΠΎΠ½Π΅Ρ† Π»ΠΈΠ½ΠΈΠΈ
>
document.getElementById(‘game’).innerHTML = hT+»

«;
hT+=» «;
hT+=»

«; // вставка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° страницу.
document.getElementById(‘gameinfo’).innerText=gTexts[‘start’]; // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ сообщСниС
>
function setCell(x,y,t) < // ΠŸΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ крСстик ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊ
gField[x][y]=t; // Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ t Π² массивС
var imgsrc=gameImgDir+’c_null.gif’; // ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
if (t==’x’) imgsrc=gameImgDir+’c_x.gif’; // ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° для крСстика
if (t==’o’) imgsrc=gameImgDir+’c_o.gif’; // ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° для Π½ΠΎΠ»ΠΈΠΊΠ°
var oName=»c»+x+»_»+y; // составлСниС ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ
document.getElementById(oName).src = imgsrc; // Π·Π°ΠΌΠ΅Π½Π° изобраТСния
if (t!=null) document.getElementById(oName).alt = t; // Ссли ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, Ρ‚ΠΎ ΠΈΠ³Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅ πŸ™‚
>

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹

Π’ΠΎΡ‚ ΠΈ всё. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² создании html-страничСк, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эту ΠΈΠ³Ρ€Ρƒ, собрав Π΅Ρ‘ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Если ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‚ΠΎ я ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅Π΄ΠΎΠ΄Π΅Π»Π°Π» сообщСниС ΠΎ Π½Π΅Ρ‡ΡŒΠ΅ΠΉ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° Π½Π΅Ρ‡ΡŒΡŽ, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² ΠΈΠ³Ρ€Ρƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ±Π΅Π΄Ρ‹ Π² крСсти-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Π½Π΅ стандартном ΠΏΠΎΠ»Π΅

Бтолкнулся с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ»ΠΎΠ΄Ρ‹ΠΌ программистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языков, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ большС трудностСй, Ρ‡Π΅ΠΌ синтаксис языка. Если сам синтаксис ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ языку, Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π²Π°ΠΌ придСтся ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ самим. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ спСциализированныС тСхничСскиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π’Π£Π—Π°Ρ…, Π³Π΄Π΅ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

ΠŸΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ простым ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ. Π― Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ±Π΅Π΄Ρ‹ Π² ΠΈΠ³Ρ€Π΅ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ, Π½ΠΎ Π½Π° ΠΏΠΎΠ»Π΅ 6Ρ…6 ΠΈ Π±Π»ΠΎΠΊΠΎΠΌ подряд Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π²Π½ΠΎΠΌΡƒ 4-ΠΌ.

На самом Π΄Π΅Π»Π΅, здСсь прСдставлСн ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… я использовал константы. И это практичСски Π½Π΅ зависит ΠΎΡ‚ языка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эта ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° осущСствляСтся. Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистам сначала Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ графичСски, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΆΠ΅ пСрСвСсти Π΅Π΅ Π½Π° Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ язык. Для создания этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ листок Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ ΠΈ Ρ€ΡƒΡ‡ΠΊΠ°.

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ 6Ρ…6.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. art1 1. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-art1 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° art1 1. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π‘Π»ΠΎΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ достаточСн, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ, Ρ€Π°Π²Π΅Π½ 4-ΠΌ.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. art1 2. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-art1 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° art1 2. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π”ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ (всСго лишь ΠΏΠΎΠ»Π΅ Π΄Π²ΡƒΡ… рисунков) стало Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ понятнСС, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ.

ЀактичСски ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ 2 нСзависимыС Π·Π°Π΄Π°Ρ‡ΠΈ:

1. Найти всС Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ 4Ρ…4

ΠŸΠΎΡ‡Π΅ΠΌΡƒ провСряСм Π±Π»ΠΎΠΊ 4Ρ…4? ВсС просто Π² Π½Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ размСрности, которая Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π°.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ (1&1=1 ΠΈ 1&0=0) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° 1 пСрСмСнная для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. ΠŸΡƒΡΡ‚ΡŒ toright – логичСская пСрСмСнная Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ пишСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ свСрху слСва Π²Π½ΠΈΠ· Π½Π°ΠΏΡ€Π°Π²ΠΎ. И toleft для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ свСрху справа Π²Π½ΠΈΠ· Π½Π°Π»Π΅Π²ΠΎ.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ выставим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true для этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹ сравниваСм ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ Π² Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ с символом Β«Π₯Β» ΠΈΠ»ΠΈ «О». ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это 2-мя Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Π»ΠΈΠ±ΠΎ всС сравниваСм с Β«Π₯Β», Π»ΠΈΠ±ΠΎ всС с «О».

ΠšΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΎΡ‡ΠΊΡƒ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΌΡ‹ сравниваСм с нашим символом ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (true) ΠΈΠ»ΠΈ (false). Π—Π°Ρ‚Π΅ΠΌ Π΄Π΅Π»Π°ΠΌ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (&) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΈ нашСй toright. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пишСм ΠΎΠΏΡΡ‚ΡŒ Π² toright. Если Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ этапС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (false), Ρ‚ΠΎ всС дальнСйшиС toright всСгда Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ (false). Π­Ρ‚ΠΎ слСдуСт ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ»Π° логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (1&0=0).

НапишСм это Π½Π° Jave:

БобствСнно Π²ΠΎΡ‚ Π² этой строчкС

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ запись выглядит Ρ‚Π°ΠΊ:

ΠŸΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ условия:

Для 2-Ρ… Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ, ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ дСлаСтся для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π΅ΠΉ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π΅ΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

БобствСнно это ΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π±Π»ΠΎΠΊΠ° 4Ρ…4. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π°, для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ 4 Π² Ρ†ΠΈΠΊΠ»Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ число, ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ вмСсто числа имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ глобальной видимости, Ρ‚Π°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

2. Найти всС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ 4Ρ…4 Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ 6Ρ…6

БобствСнно, ΠΈΡ… Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ. Начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ [0,0], [1,0] ΠΈ [2,0] для ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°, [0,1], [1,1] ΠΈ [2,1] для Π²Ρ‚ΠΎΡ€ΠΎΠΉ, [0,2], [1,2] ΠΈ [2,2] для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ. Π”Π°Π»ΡŒΡˆΠ΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ 4Ρ…4 Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° 6Ρ…6.

Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ:

Π’ΡƒΡ‚ Π½Π°ΠΌ придСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ checkDiagonal ΠΈ checkLanes, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ 4Ρ…4 с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ смСщСниСм.

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистам я Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» самим ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ checkDiagonal, Ρ‚.ΠΊ. это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

И Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ совСт. Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ имССтся ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² сСти Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ смотритС ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹), Π½Π΅ привязанныС ΠΊ языкам. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ позволят Π²Π°ΠΌ быстро Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠžΡ‡Π΅Π½ΡŒ часто, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ понимая ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ. Π“Π΄Π΅-Ρ‚ΠΎ это Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚, Π° Π³Π΄Π΅-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ дальнСйшСС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π±Π΅Π· измСнСния Π΅Π΅ Π»ΠΎΠ³ΠΈΠΊΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π° я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π¨Π°Π±Π»ΠΎΠ½ ΠΈΠ³Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ здСсь. Π’Π°ΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я описал Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² шаблон Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. А Π²ΠΎΡ‚ здСсь ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° Java. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ ΡƒΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ написали свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° основС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Минимакс Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ³Ρ€Ρ‹ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Нолики»

НСдавно я написал Π½Π΅ΠΏΠΎΠ±Π΅Π΄ΠΈΠΌΡƒΡŽ ΠΈΠ³Ρ€Ρƒ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Нолики». Π­Ρ‚ΠΎ Π±Ρ‹Π» интСрСсный ΠΈ ΠΏΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΡƒ мСня Π½Π°ΡƒΡ‡ΠΈΠ». Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ β€” это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ здСсь.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π½Π΅ΠΏΠΎΠ±Π΅Π΄ΠΈΠΌΠΎΠΉ, Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ…ΠΎΠ΄Ρ‹ для Β«ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎΒ» ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π”Π°Π»Π΅Π΅, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ…ΠΎΠ΄ являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ПослС Π΄ΠΎΠ»Π³ΠΈΡ… исслСдований стало понятно, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Минимакс, Π±Ρ‹Π» Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ПониманиС основ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ рСализация ΠΈΠ³Ρ€Ρ‹ заняли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. Π― нашСл ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ объяснСний, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ это оказалось Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΡƒΠΆ простой Π·Π°Ρ‚Π΅Π΅ΠΉ. НадСюсь этот пост ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

ОписаниС «ИдСальной» ΠΈΠ³Ρ€Ρ‹ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Нолики»

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ опишСм, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΠΎΠ΄ «идСальной» ΠΈΠ³Ρ€ΠΎΠΉ β€” Ссли я ΠΈΠ³Ρ€Π°ΡŽ идСально, я ΠΈΠ»ΠΈ побСТдаю Π² ΠΈΠ³Ρ€Π΅, ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Π°ΡŽ Π²Π½ΠΈΡ‡ΡŒΡŽ. Π’ случаС Ссли я ΠΈΠ³Ρ€Π°ΡŽ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ «идСального» ΠΈΠ³Ρ€ΠΎΠΊΠ°, я всСгда ΠΈΠ³Ρ€Π°ΡŽ Π²Π½ΠΈΡ‡ΡŒΡŽ.

МоТно Π»ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ эти трСбования количСствСнно? Π”Π°Π²Π°ΠΉΡ‚Π΅ для всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ состояния ΠΈΠ³Ρ€Ρ‹ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ количСство ΠΎΡ‡ΠΊΠΎΠ²:

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ состояниС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, ΠΈ ΠΌΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π΄ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ. Π― ΠΈΠ³Ρ€Π°ΡŽ Π·Π° Β«Π₯Β». Моя Ρ†Π΅Π»ΡŒ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, максимизация количСства ΠΎΡ‡ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΏΠΎΠ»ΡƒΡ‡Ρƒ.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

ВСрхняя Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ состояниС ΠΈΠ³Ρ€Ρ‹, ΠΈ, Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°, я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… состояний ΠΈΠ· Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ состояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я побСТдаю (снизу слСва) являСтся Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ. Если я Π½Π΅ сдСлаю этот Ρ…ΠΎΠ΄, ΠΈΠ³Ρ€ΠΎΠΊ «О» ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ, ΠΈ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ± ΠΎΠ½ ΠΏΠΎΠ±Π΅Π΄ΠΈΠ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹Π±Π΅Ρ€Ρƒ Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ принСсСт ΠΌΠ½Π΅ наибольшСС число ΠΎΡ‡ΠΊΠΎΠ².

Но Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ΅? ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ Π² ΠΈΠ³Ρ€Π΅. Π˜Π³Ρ€ΠΎΠΊ «О» Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΡƒ для нас, ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π²Π΅Ρ‰ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΈΠ³Ρ€ΠΎΠΊΠ° «О» начиная с Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… состояний ΠΈΠ³Ρ€Ρ‹ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‚Π΅Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я Π½Π΅ побСТдаю:

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Минимакс

Π‘ΡƒΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Минимакс это ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ² Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ ΠΈΠ³Ρ€ΠΎΠΊ Β«Ρ‡ΡŒΡ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΒ» Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Ρ…ΠΎΠ΄, приносящий максимальноС количСство ΠΎΡ‡ΠΊΠΎΠ². ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠ³Ρ€Π°Π΅ΠΌ Π·Π° ΠΈΠ³Ρ€ΠΎΠΊΠ° Β«Π₯Β», Ρ‚ΠΎΠ³Π΄Π° описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ Ρ‚Π°ΠΊΠΈΠΌ:

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Минимакс

НадСюсь Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС, ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Минимакс опрСдСляСт Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ Ρ…ΠΎΠ΄. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, Ρ‡Ρ‚ΠΎΠ± Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ нашС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.
Π’ΠΎΡ‚ функция, которая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ состояния:

Достаточно просто, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ +10 Ссли Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π΅Ρ‚ Π² ΠΈΠ³Ρ€Π΅, -10, Ссли ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΈ 0 Π² случаС Π½ΠΈΡ‡ΡŒΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹, ΠΊΠ°ΠΊΠΎΠΉ это ΠΈΠ³Ρ€ΠΎΠΊ (Β»Π₯» ΠΈΠ»ΠΈ «О»), Π²Π°ΠΆΠ½ΠΎ лишь Ρ‡Π΅ΠΉ Ρ…ΠΎΠ΄.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ собствСнно сам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ; ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ внимания Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ Ρ…ΠΎΠ΄Π° это просто адрСс ячСйки Π½Π° ΠΏΠΎΠ»Π΅, Ρ‚.Π΅. [0,2] это правая вСрхняя ячСйка Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3×3.

Когда Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ выполняСтся Π² классС PerfectPlayer, Π²Ρ‹Π±ΠΎΡ€ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ходя сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ choice, которая впослСдствии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ состояниС ΠΈΠ³Ρ€Ρ‹ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ Ρ…ΠΎΠ΄Π°.

Π˜Π΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ-самоубийца

Π­Ρ‚Π° имплСмСнтация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π² «крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈΒ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π½Π΅ смоТСтС ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ. Но Π΅ΡΡ‚ΡŒ малСнький нюанс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» Π² процСссС тСстирования ΠΈΠ³Ρ€Ρ‹. Π’ случаС, Ссли ΠΌΠΎΠΉ Β«ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊΒ» ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ состояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅Ρ‚, ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ Π²Π½ΠΈΡ‡ΡŒΡŽ, Π΅Π³ΠΎ Ρ…ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ самоубийствСнным. ΠŸΡ€ΠΎΡ‰Π΅ говоря, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ «я всС Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°ΡŽ, поэтому Π±Π΅Π· Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ сСйчас, ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· 6 Ρ…ΠΎΠ΄ΠΎΠ²Β».

Π― ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» это ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π» явно Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ состояниС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля ΠΈ попытался Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ…ΠΎΠ΄ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Π― ΠΎΠΆΠΈΠ΄Π°Π», Ρ‡Ρ‚ΠΎ Β«ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊΒ» попытаСтся ΠΏΠΎΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ ΠΌΠ½Π΅ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, ΠΊΠ°ΠΊ смоТСт, Π½ΠΎ этого Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ:

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим, Ρ‡Ρ‚ΠΎ происходит здСсь Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠ·ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ…ΠΎΠ΄ΠΎΠ² (для простоты я ΡƒΠ΄Π°Π»ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состояния)

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π§Π΅Ρ€Ρ‚ ΠΏΠΎΠ±Π΅Ρ€ΠΈ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ мастСр «крСстиков-Π½ΠΎΠ»ΠΈΠΊΠΎΠ²Β» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Π”Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π±ΠΎΠΉ: Π³Π»ΡƒΠ±ΠΈΠ½Π°

ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± Β«ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊΒ» ΠΈΠ³Ρ€Π°Π» «идСально» Π΄ΠΎ самого ΠΊΠΎΠ½Ρ†Π°, Ρ‚.Π΅. Π²Π·ΡΡ‚ΡŒ Β«Π³Π»ΡƒΠ±ΠΈΠ½ΡƒΒ» (количСство Ρ…ΠΎΠ΄ΠΎΠ² Π΄ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΠ°) Π² расчСт ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ…ΠΎΠ΄Π°. ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ идСально, ΠΈ постараСтся ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ смоТСт.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ рСкурсии\количСство Ρ…ΠΎΠ΄ΠΎΠ² ΠΎΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ состояния ΠΈΠ³Ρ€Ρ‹. Π’.Π΅. Ρ‡Π΅ΠΌ большС Ρ…ΠΎΠ΄ΠΎΠ² Π΄ΠΎ минимального Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° (ΠΈ Ρ‡Π΅ΠΌ мСньшС Ρ…ΠΎΠ΄ΠΎΠ² Π΄ΠΎ максимального) β€” Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅.

Π’Π°ΠΊ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Минимакс Π³Π»ΡƒΠ±ΠΈΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π½Π° 1, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°ΠΊΠΎΠ½Π΅Ρ† рассчитаСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ состояния ΠΈΠ³Ρ€Ρ‹ ΠΌΡ‹ Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΡƒ Π½Π° Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ это выглядит Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° Ρ…ΠΎΠ΄ΠΎΠ²:

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π― надСюсь всС эти пояснСния ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Минимакс, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ всСгда Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Π² «крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈΒ». Если Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π°ΠΌ каТСтся нСпонятным, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅, поТалуйста, Π² коммСнтариях ΠΈ я ΡƒΠ»ΡƒΡ‡ΡˆΡƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρƒ мСня Π½Π° Github. А ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΡƒΡŽΡΡ ΠΈΠ³Ρ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ здСсь: http://perfecttictactoe.herokuapp.com/.

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ сдСлан с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Π²Ρ‚ΠΎΡ€Π°. МнС ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ эта ΡΡ‚Π°Ρ‚ΡŒΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° просто ΠΈ наглядно описала Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Минимакс. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ нСточности ΠΈ упрощСния Π° Ρ‚Π°ΠΊΠΆΠ΅, мСстами, нСточная тСрминология.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн ΠΌΠΎΠΉ YouTube ΠΊΠ°Π½Π°Π».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Быстрый старт с Java: пишСм «крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈΒ»

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. thumb 392d98281f6035cbb4c9d5207b7923b1. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-thumb 392d98281f6035cbb4c9d5207b7923b1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° thumb 392d98281f6035cbb4c9d5207b7923b1. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. thumb 392d98281f6035cbb4c9d5207b7923b1. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-thumb 392d98281f6035cbb4c9d5207b7923b1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° thumb 392d98281f6035cbb4c9d5207b7923b1. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. retina df67e62ffb95b57a542d01e11fe4ecf5. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-retina df67e62ffb95b57a542d01e11fe4ecf5. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° retina df67e62ffb95b57a542d01e11fe4ecf5. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ, «Быстрый старт с Java: Π½Π°Ρ‡Π°Π»ΠΎΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ оТидаСтся, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π²Π»Π°Π΄Π΅Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² Π½Π΅ΠΉ β€” Π·Π½Π°Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, условиях, Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ классов. БСгодня ΠΌΡ‹ ΡƒΠ³Π»ΡƒΠ±Π»ΠΈΠΌ знания ΠΎ Java, создавая ΠΈΠ³Ρ€Ρƒ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈΒ», которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (консоли). Π’ процСссС Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Ρ€Π°Π±ΠΎΡ‚Π° с массивами, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ аспСкты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (нСстатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, нСстатичСскиС поля, конструктор).

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠŸΡ€ΠΈ написании ΠΈΠ³Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ для Π½Π°Ρ‡Π°Π»Π° рассмотрим, Ρ‡Ρ‚ΠΎ это. ΠœΠ°ΡΡΠΈΠ²Ρ‹ хранят Π½Π°Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если пСрСмСнная ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΡƒ, с написанным Π½Π° Π±ΠΎΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Ρ‚ΠΎ массив ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π±Π»ΠΎΠΊ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡Π΅ΠΊ. И Ρ‚ΠΈΠΏ, ΠΈ имя Ρƒ Π±Π»ΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎ, Π° доступ ΠΊ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠ΅ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ) происходит ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (индСксу).

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

РСшСниС ΠΎΠ΄Π½ΠΎ β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° основании класса. И Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ этом случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСстатичСским. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ это ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚.

Поля класса

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… лишь Ρ‚ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹. А Ссли Π½ΡƒΠΆΠ½Π° пСрСмСнная, доступная Π²ΠΎ всСх ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… класса, Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ поля. Поля ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ. Но Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Π½Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, Π° прямо Π² Ρ‚Π΅Π»Π΅ класса. Подобно ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ статичСскими ΠΈ нСстатичСскими. НСстатичСскиС поля, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ. Π¨Π°Π±Π»ΠΎΠ½ класса

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊ написанию ΠΊΠΎΠ΄Π° ΠΈΠ³Ρ€Ρ‹. Начнём с шаблона класса ΠΈ опрСдСлСния Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ. ИмСнно это содСрТит ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ строки β€” ΠΈΠΌΠΏΠΎΡ€Ρ‚ классов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Π»Π΅ класса ΠΈΠ΄ΡƒΡ‚ описания ΠΏΠΎΠ»Π΅ΠΉ, Π·Π°Ρ‚Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄ main() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ нСстатичСскиС) ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° game() с ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.

ИмСна ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² принято ΠΏΠΈΡΠ°Ρ‚ΡŒ с малСнькой Π±ΡƒΠΊΠ²Ρ‹. Однако Π² ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ TicTacToe() β€” Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ‚ΡƒΡ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅? НСт, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ особСнный ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ называСтся конструктор. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ вызываСтся сразу послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создан. Π•Π³ΠΎ имя, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ конструктор для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ.

Π˜Π³Ρ€ΠΎΠ²Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°

РСализация Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

На всякий случай ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽ ΠΌΠΎΠΉ telegram β€” @biblelamp. Если вас заинтСрСсовала Ρ‚Π΅ΠΌΠ°, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Β«Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…Β» Майка ΠœΠ°ΠΊΠ“Ρ€Π°Ρ‚Π° ΠΈ Β«Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ JavaΒ» ΠšΡΡ‚ΠΈ Π‘ΡŒΠ΅Ρ€Ρ€Π° ΠΈ Π‘Π΅Ρ€Ρ‚ БСйтс.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· сСрии «Быстрый старт с JavaΒ»:

Если язык Java вас заинтСрСсовал β€” ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если Π΅Ρ‰Ρ‘ Π½Π΅ совсСм ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ β€” посмотритС истории успСха Π½Π°ΡˆΠΈΡ… Java-выпускников:

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. retina df67e62ffb95b57a542d01e11fe4ecf5. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-retina df67e62ffb95b57a542d01e11fe4ecf5. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° retina df67e62ffb95b57a542d01e11fe4ecf5. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ, «Быстрый старт с Java: Π½Π°Ρ‡Π°Π»ΠΎΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ оТидаСтся, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ Π²Π»Π°Π΄Π΅Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² Π½Π΅ΠΉ β€” Π·Π½Π°Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, условиях, Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ классов. БСгодня ΠΌΡ‹ ΡƒΠ³Π»ΡƒΠ±Π»ΠΈΠΌ знания ΠΎ Java, создавая ΠΈΠ³Ρ€Ρƒ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈΒ», которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (консоли). Π’ процСссС Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Ρ€Π°Π±ΠΎΡ‚Π° с массивами, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ аспСкты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (нСстатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, нСстатичСскиС поля, конструктор).

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠŸΡ€ΠΈ написании ΠΈΠ³Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ для Π½Π°Ρ‡Π°Π»Π° рассмотрим, Ρ‡Ρ‚ΠΎ это. ΠœΠ°ΡΡΠΈΠ²Ρ‹ хранят Π½Π°Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если пСрСмСнная ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΡƒ, с написанным Π½Π° Π±ΠΎΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Ρ‚ΠΎ массив ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π±Π»ΠΎΠΊ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡Π΅ΠΊ. И Ρ‚ΠΈΠΏ, ΠΈ имя Ρƒ Π±Π»ΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎ, Π° доступ ΠΊ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠ΅ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ) происходит ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ (индСксу).

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

РСшСниС ΠΎΠ΄Π½ΠΎ β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° основании класса. И Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ этом случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСстатичСским. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ это ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚.

Поля класса

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… лишь Ρ‚ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹. А Ссли Π½ΡƒΠΆΠ½Π° пСрСмСнная, доступная Π²ΠΎ всСх ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… класса, Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ поля. Поля ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ. Но Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Π½Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, Π° прямо Π² Ρ‚Π΅Π»Π΅ класса. Подобно ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ статичСскими ΠΈ нСстатичСскими. НСстатичСскиС поля, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ. Π¨Π°Π±Π»ΠΎΠ½ класса

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊ написанию ΠΊΠΎΠ΄Π° ΠΈΠ³Ρ€Ρ‹. Начнём с шаблона класса ΠΈ опрСдСлСния Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ. ИмСнно это содСрТит ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ строки β€” ΠΈΠΌΠΏΠΎΡ€Ρ‚ классов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Π»Π΅ класса ΠΈΠ΄ΡƒΡ‚ описания ΠΏΠΎΠ»Π΅ΠΉ, Π·Π°Ρ‚Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄ main() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ нСстатичСскиС) ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° game() с ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.

ИмСна ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² принято ΠΏΠΈΡΠ°Ρ‚ΡŒ с малСнькой Π±ΡƒΠΊΠ²Ρ‹. Однако Π² ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ TicTacToe() β€” Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ‚ΡƒΡ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅? НСт, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ особСнный ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ называСтся конструктор. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ вызываСтся сразу послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создан. Π•Π³ΠΎ имя, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ конструктор для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ.

Π˜Π³Ρ€ΠΎΠ²Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°

РСализация Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

На всякий случай ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽ ΠΌΠΎΠΉ telegram β€” @biblelamp. Если вас заинтСрСсовала Ρ‚Π΅ΠΌΠ°, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Β«Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…Β» Майка ΠœΠ°ΠΊΠ“Ρ€Π°Ρ‚Π° ΠΈ Β«Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ JavaΒ» ΠšΡΡ‚ΠΈ Π‘ΡŒΠ΅Ρ€Ρ€Π° ΠΈ Π‘Π΅Ρ€Ρ‚ БСйтс.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· сСрии «Быстрый старт с JavaΒ»:

Если язык Java вас заинтСрСсовал β€” ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Π½Π° Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если Π΅Ρ‰Ρ‘ Π½Π΅ совсСм ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ β€” посмотритС истории успСха Π½Π°ΡˆΠΈΡ… Java-выпускников:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ Π½ΠΎΠ»ΠΈΠΊΠΈ Β«Π‘Π΅Π· Π³Ρ€Π°Π½ΠΈΡ†Β»

ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-нолики… Π² Π½ΠΈΡ… ΠΈΠ³Ρ€Π°Π»ΠΈ всС, я ΡƒΠ²Π΅Ρ€Π΅Π½. Π˜Π³Ρ€Π° ΠΏΡ€ΠΈΡ‚ΡΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π° своСй простотой, особСнно ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ‹ Ρ‚ΡΠ½Π΅ΡˆΡŒ часы Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° ΡƒΡ€ΠΎΠΊΠ΅, ΠΏΠ°Ρ€Π΅, Π° ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ‚Ρ€Π°Π΄Π½ΠΎΠ³ΠΎ листа ΠΈ простого ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°. Π£ΠΆ Π½Π΅ знаю, ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ догадался Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ крСсты ΠΈ ΠΊΡ€ΡƒΠΆΠΊΠΈ Π² 9 ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°Ρ…, Π½ΠΎ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΈΠ³Ρ€Π° нисколько Π½Π΅ потСряла Π² вострСбованности, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΠΎΠ΄ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ мноТСство Π΅Ρ‘ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. pdgx cibc6880fmwfxt90nxmi k. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-pdgx cibc6880fmwfxt90nxmi k. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pdgx cibc6880fmwfxt90nxmi k. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ИИ Π½Π° javascript для ΠΈΠ³Ρ€Ρ‹ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ крСстиков-Π½ΠΎΠ»ΠΈΠΊΠΎΠ²: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, Π½ΠΎ я Ρ€Π°Π·Π±Π°Π²ΠΈΠ» Π΅Π³ΠΎ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ. Π’ любом случаС, хотя Π±Ρ‹ стоит ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² это.
ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΈΠ³Ρ€Ρ‹ ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π½Π΅ΠΌ

Π’Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π° объСм ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ мСстами Π½Π΅ совсСм Π΄ΠΎΡ…ΠΎΠ΄Ρ‡ΠΈΠ²ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ мысли, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρƒ мСня Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡΠΆΠ°Ρ‚ΡŒ ΡΡ‚Π°ΡŽ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π² содСрТании ΠΈ качСствС.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ сначала ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ. Код

ГорячиС клавиши ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

НачнСм

ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ самой ΠΈΠ³Ρ€Ρ‹, Ρ‚.Π΅. Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², ΠΏΠΎΠΊΠ° Π±Π΅Π· Π±ΠΎΡ‚Π°. Для своих Ρ†Π΅Π»Π΅ΠΉ я Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ javascript + jquery + bootstrap4, хотя ΠΎΠ½ Ρ‚Π°ΠΌ практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½ΠΎ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ – ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠΏΠ»Ρ‹Π²Π΅Ρ‚. Π’ΡƒΡ‚ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ особо Π½Π΅Ρ‡Π΅Π³ΠΎ, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΏΠΎ js, jquery ΠΈ bootstrap Π½Π° Ρ…Π°Π±Ρ€Π΅ ΠΏΠΎΠ»Π½ΠΎ. Π‘ΠΊΠ°ΠΆΡƒ лишь, Ρ‡Ρ‚ΠΎ использовал MVC. Π”Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ вСсь ΠΊΠΎΠ΄ я Π½Π΅ Π±ΡƒΠ΄Ρƒ – ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΈ Π±Π΅Π· Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.

Π˜Ρ‚Π°ΠΊ, ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π±Ρ‹Π»ΠΎ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. МоТно ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² ΠΊΠ»Π΅Ρ‚ΠΊΠΈ. Но ΠΏΠΎΠ±Π΅Π΄Π° ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ.

Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Β«ΠΊΠΎΠ½Ρ†Π° ΠΈΠ³Ρ€Ρ‹Β»

Π˜Π³Ρ€Π° заканчиваСтся, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² поставит 5 Ρ„ΠΈΠ³ΡƒΡ€ Π² ряд. «ВсС просто!Β» β€” ΠΏΠΎΠ΄ΡƒΠΌΠ°Π» я. И Π½Π°Ρ‡Π°Π» ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ поля: сначала всС Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

Π­Ρ‚ΠΎ Ρ‚ΡƒΠΏΠΎΠΉ способ, Π½ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π». Однако, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ я ΠΈ сдСлал: Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ»Π΅Ρ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ пустой Π½Π° протяТСнии всСй ΠΈΠ³Ρ€Ρ‹ – ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ слишком большоС, Ρ‡Ρ‚ΠΎΠ± Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΠ΄, Π° Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΠ΄ ставится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Ρ„ΠΈΠ³ΡƒΡ€Π° β€” Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этой Ρ„ΠΈΠ³ΡƒΡ€Π΅ (ΠΊΠ»Π΅Ρ‚ΠΊΠ΅): ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒ, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒ ΠΈ Π΄Π²Π΅ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚Π° самая ΠΊΠ»Π΅Ρ‚ΠΊΠ°.

Плюс ΠΊΠΎ всСму, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π»ΠΈΠ½ΠΈΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ³Ρ€Ρ‹ – это 5 Ρ„ΠΈΠ³ΡƒΡ€ Π² ряд, Ρ‚ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π½Π° 6 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ нас Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚. Достаточно ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΡΡ‚ΡŒ ΠΊΠ»Π΅Ρ‚ΠΎΠΊ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· сторон. НС понятно? Π‘ΠΌΠΎΡ‚Ρ€ΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π½ΠΈΠΆΠ΅.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. image loader. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊ самому Π±ΠΎΡ‚Ρƒ

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΡƒΠΆΠ΅ написали страницу с крСстиками-Π½ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ основной Π·Π°Π΄Π°Ρ‡Π΅ – ИИ.
НСльзя просто Ρ‚Π°ΠΊ Π²Π·ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ссли Ρ‚Ρ‹ Π½Π΅ знаСшь ΠΊΠ°ΠΊ: Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π±ΠΎΡ‚Π°.

Π‘ΡƒΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, хотя Π±Ρ‹ Π΅Π³ΠΎ части, ΠΈ просчСта Ρ†Π΅Π½Ρ‹ (вСса) ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π½Π° ΠΏΠΎΠ»Π΅. ΠšΠ»Π΅Ρ‚ΠΊΠ° с наибольшим вСсом – самая пСрспСктивная – Ρ‚ΡƒΠ΄Π° Π±ΠΎΡ‚ ΠΈ поставит Ρ„ΠΈΠ³ΡƒΡ€Ρƒ. Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² просчСтС вСса ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ.

ВСрминология

ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΈ – это Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.
Атакой Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€, стоящих рядом, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ. По сути, это мноТСство. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ„ΠΈΠ³ΡƒΡ€ Π² Π°Ρ‚Π°ΠΊΠ΅ – Π΅Ρ‘ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ. Одна ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ„ΠΈΠ³ΡƒΡ€Π° – Ρ‚ΠΎΠΆΠ΅ Π°Ρ‚Π°ΠΊΠ° (ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 1).

На сосСдних ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ… Π°Ρ‚Π°ΠΊΠΈ (Π½Π° ΠΊΠΎΠ½Ρ†Π°Ρ…) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пустыС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ°. Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π°Ρ‚Π°ΠΊΡƒ с двумя пустыми ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π½Π° Β«ΠΊΠΎΠ½Ρ†Π°Ρ…Β», ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… направлСниях, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ пСрспСктивной. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ пустых ΠΊΠ»Π΅Ρ‚ΠΎΠΊ Π½Π° Β«ΠΊΠΎΠ½Ρ†Π°Ρ…Β» Π°Ρ‚Π°ΠΊΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΠΎΠΌ. ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния 0, 1 ΠΈΠ»ΠΈ 2.
Атаки ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊ: [ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» ]. НапримСр, Π°Ρ‚Π°ΠΊΠ° [4:1].

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. 1 pke3kve1yjbf6cjjzg3hnnzvm. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-1 pke3kve1yjbf6cjjzg3hnnzvm. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 1 pke3kve1yjbf6cjjzg3hnnzvm. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!
Рис 1. Атака [4:1]

Π’ Ρ…ΠΎΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ всС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΅Ρ‘ вСс. Он вычисляСтся Π½Π° основС вСсов всСх Π°Ρ‚Π°ΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ влияСт данная ΠΊΠ»Π΅Ρ‚ΠΊΠ°.

Π‘ΡƒΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π°

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСсколько Π°Ρ‚Π°ΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°. ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ‚ Ρ…ΠΎΠ΄ (пускай крСстики). ЕстСствСнно Ρ…ΠΎΠ΄ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ Π² ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ – ΠΈ Ρ‚Π΅ΠΌ самым ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚:

Π‘ΡƒΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

По сути, Ρ‚Π°ΠΊΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ ΠΌΡ‹ провСряСм, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ ΠΏΠΎΠΉΠ΄Π΅ΠΌ так… Π° Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли Ρ‚Π°ΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚. ΠœΡ‹ смотрим Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΠ΄ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ – с наибольшим вСсом.

Если какая-Ρ‚ΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ больший вСс, Π½Π΅ΠΆΠ΅Π»ΠΈ другая, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΎΠ½Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ созданию Π±ΠΎΠ»Π΅Π΅ опасных Π°Ρ‚Π°ΠΊ, Π»ΠΈΠ±ΠΎ ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ°. ВсС логично… ΠΌΠ½Π΅ каТСтся.
Если Π·Π°ΠΉΡ‚ΠΈ Π½Π° страницу ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² консоли SHOW_WEIGHTS = true, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (Π‘ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ вСса ΠΊΠ»Π΅Ρ‚ΠΎΠΊ).

ВСса Π°Ρ‚Π°ΠΊ

ΠŸΠΎΡ€Π°ΡΠΊΠΈΠ½ΡƒΠ» я ΠΌΠΎΠ·Π³Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π» Ρ‚Π°ΠΊΠΎΠ΅ соотвСтствиС Π°Ρ‚Π°ΠΊ ΠΈ вСсов:

ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π°Π½ΠΎ эмпиричСски – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² массив Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 5 с Π·Π°ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ большим вСсом. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ³Ρ€Ρƒ, смотря Π½Π° шаг Π²ΠΏΠ΅Ρ€Π΅Π΄ (подставляя Ρ„ΠΈΠ³ΡƒΡ€Ρƒ Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ). ΠŸΡ€ΠΎΠΏΡƒΡΠΊ Ρ‚Π°ΠΊΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π½ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Ну ΠΈΠ»ΠΈ побСда… смотря для ΠΊΠΎΠ³ΠΎ.

Атаки с большим ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΠΎΠΌ цСнятся Π²Ρ‹ΡˆΠ΅.

Атака [4:2] Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ€Π΅ΡˆΠ°Π΅Ρ‚ исход ΠΈΠ³Ρ€Ρ‹. Если ΠΈΠ³Ρ€ΠΎΠΊΡƒ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π°Ρ‚Π°ΠΊΡƒ, Ρ‚ΠΎ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚ ΡƒΠΆΠ΅ Π½Π΅ смоТСт Π΅Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Однако это Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ±Π΅Π΄Π°. ΠŸΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ быстрСС Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΈΠ³Ρ€Ρƒ, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρƒ нас Π½Π° ΠΏΠΎΠ»Π΅ Π°Ρ‚Π°ΠΊΠΈ [4:2], поэтому Π΅Π΅ вСс Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Π°Ρ‚Π°ΠΊ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 5. Π‘ΠΌΠΎΡ‚Ρ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. pk4ummarchcw9j4lpkujlmj iig. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-pk4ummarchcw9j4lpkujlmj iig. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pk4ummarchcw9j4lpkujlmj iig. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!
Рис 2. Атака [4:2]

Β«Π Π²Π°Π½Ρ‹Π΅Β» Π°Ρ‚Π°ΠΊΠΈ

Π’ этом Π°Π±Π·Π°Ρ†Π΅ ΠΊΠΎΠ΄ Π½Π΅ прСдставлСн. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ понятиС дСлитСля Π°Ρ‚Π°ΠΊΠΈ ΠΈ объясняСм ΡΡƒΡ‚ΡŒ Β«Ρ€Π²Π°Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊΒ».

Рассмотрим Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: ΠΏΡ€ΠΈ подстановкС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… пустых ΠΊΠ»Π΅Ρ‚ΠΎΠΊ, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5-ΠΈ, располоТСна Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π°.

И Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹, Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ линии… Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π°Ρ‚Π°ΠΊΡƒ, Π° ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ Π½Π΅Ρ‚. НС порядок, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΈΠ΅ Β«Ρ€Π²Π°Π½Ρ‹Π΅Β» Π°Ρ‚Π°ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ нСсут Π² сСбС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π°ΠΊΠΈΡ… случаСв, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 1.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Β«Ρ€Π²Π°Π½Ρ‹Π΅Β» Π°Ρ‚Π°ΠΊΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ИИ. На самом Π΄Π΅Π»Π΅, это Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ, Π½ΠΎ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ дальшС находятся ΠΎΡ‚ сканируСмой ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, Ρ‚Π΅ΠΌ мСньшСС влияниС Π½Π° Π½Π΅Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈ, соотвСтствСнно, ΠΈΠΌΠ΅ΡŽΡ‚ мСньший вСс (благодаря Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ).

Алгоритм поиска Π°Ρ‚Π°ΠΊ

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, создадим класс Π°Ρ‚Π°ΠΊΠΈ. Π£ Π°Ρ‚Π°ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ 3 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я писал Ρ€Π°Π½Π΅Π΅:

И ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ вСс Π΄Π°Π½Π½ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ:

Π”Π°Π»Π΅Π΅. Поиск всСх Π°Ρ‚Π°ΠΊ для ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΌΡ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Π½Π°:

Однако, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ всю линию Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Максимальная ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ, которая нас интСрСсуСт – 5. БСзусловно, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ‚Π°ΠΊΡƒ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ, скаТСм, 6 – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Но для ИИ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠ²ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ…ΠΎΠ΄Π°, всС Ρ€Π°Π²Π½ΠΎ, Ρ‡Ρ‚ΠΎ 6, Ρ‡Ρ‚ΠΎ 5. ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих Π°Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ³Ρ€Ρ‹ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ…ΠΎΠ΄Ρƒ. БоотвСтствСнно, вСс Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΎΠ±ΠΎΠΈΡ… случаях Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ.

Π—Π΄Π΅ΡΡŒ Π½Π°Π΄ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос: Π·Π°Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ 6-ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, Ссли максимальная ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ – 5. ΠžΡ‚Π²Π΅Ρ‚ – это Π½ΡƒΠΆΠ½ΠΎ для опрСдСлСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π° Π°Ρ‚Π°ΠΊΠΈ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π°Ρ‚Π°ΠΊΠ° ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 1 Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ находится Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ сканируСмой области. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» этой Π°Ρ‚Π°ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ Β«Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†ΡƒΒ».

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. cghb0ryfnk7kgmaqhw 67emn0qc. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-cghb0ryfnk7kgmaqhw 67emn0qc. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° cghb0ryfnk7kgmaqhw 67emn0qc. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!
Рис. 3. Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 6-Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΠΊ. Если Π½Π΅ ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 6-ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» Π°Ρ‚Π°ΠΊΠΈ.

Для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ просто Π½Π΅ Ρ…Π²Π°Ρ‚Π°Ρ‚ΡŒ мСста. ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Π² attackplace ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π°Ρ‚Π°ΠΊ бСспСрспСктивны.

крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. . крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄-. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° . ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ»Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΠΈ лСкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скучно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС дСйствия с числами ΠΈ строками, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° красочных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ созданиС ΠΈΠ³Ρ€!
Рис. 4. ΠœΠ΅ΡΡ‚ΠΎ для Π°Ρ‚Π°ΠΊΠΈ

1) НачнСм с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ. Она Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ пустой (ΠΌΡ‹ вСдь собираСмся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Π½Π΅Π΅ Ρ…ΠΎΠ΄, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Однако ΠΌΡ‹ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ наш ИИ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ для Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ…ΠΎΠ΄Π°. Π€ΠΈΠ³ΡƒΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ подставляСм – this.subfig – ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ крСстик. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π΅Ρ‚ΠΊΠ° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² сСбС ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ послС подстановки, Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π°Ρ‚Π°ΠΊΠ΅ this.curAttack:

ВсС эти ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΌΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»ΠΈ Π² значСниях конструктора ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – смотри ΠΊΠΎΠ΄ Π²Ρ‹ΡˆΠ΅.

2) Π”Π°Π»Π΅Π΅, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ 5 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ с ΠΎΠ΄Π½ΠΎΠΉ стороны ΠΎΡ‚ сканируСмой. Π—Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ функция getAttacks( cellX, cellY, subFig, dx, dy ), Π³Π΄Π΅:

cellX, cellY – ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ провСряСмой ΠΊΠ»Π΅Ρ‚ΠΊΠΈ
subFig – Ρ„ΠΈΠ³ΡƒΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ подставляСм Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ
dx, dy – измСнСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ x ΠΈ y Π² Ρ†ΠΈΠΊΠ»Π°Ρ… – Ρ‚Π°ΠΊ ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ поиска:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ссли checkCell() Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° прСкращаСтся.

3) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΠΊ.
Π—Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ функция checkCell( x, y ):

Для Π½Π°Ρ‡Π°Π»Π° запишСм Ρ„ΠΈΠ³ΡƒΡ€Ρƒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ fig:
Model.Field – нашС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅.

fig ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ β€˜x’, β€˜o’, β€˜b’ (Π³Ρ€Π°Π½ΠΈΡ†Π°), 0 (пустая ΠΊΠ»Π΅Ρ‚ΠΊΠ°).

4) Если Π½Π° 5-ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π° совпадаСт с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΎΠΉ, Π·Π½Π°Ρ‡ΠΈΡ‚ Π°Ρ‚Π°ΠΊΠ° Β«ΡƒΠΏΠ΅Ρ€Π»Π°ΡΡŒΒ» Π² Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΈ для опрСдСлСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π° Π°Ρ‚Π°ΠΊΠΈ придСтся Β«ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†ΡƒΒ» ( this.checkEdge = true).

Ѐункция checkCell – Π³ΠΎΡ‚ΠΎΠ²Π°. Однако ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ классом checkLine.

5) ПослС выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π½Π°Π΄ΠΎ Β«Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡΒ». ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ†Π΅Π½Ρ‚Ρ€ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Π°Ρ‚Π°ΠΊΡƒ, с индСксом 0, ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠ· массива Π°Ρ‚Π°ΠΊ ΠΈ устанавливаСм ΠΊΠ°ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ.

6) Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, увСличивая ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€.
ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ такая ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΈΠ³ΡƒΡ€. (Код ΡƒΠΆΠ΅ написан – функция getAttacks)

7) ВсС, ΠΌΡ‹ собрали всС Π°Ρ‚Π°ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π½Π° Π»ΠΈΠ½ΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ массив.
На этом с классом checkLine всё… Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ.

Ну Π° дальшС всС просто – создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ checkLine для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π»ΠΈΠ½ΠΈΠΉ (2 Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒ) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getAttacks. Π’ΠΎ Π΅ΡΡ‚ΡŒ, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ β€” свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ checkLine ΠΈ, соотвСтствСнно, свой Π½Π°Π±ΠΎΡ€ Π°Ρ‚Π°ΠΊ.

ΠŸΡƒΡΡ‚ΡŒ Π·Π° всС это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ функция getAllAttacks() – ΡƒΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ описанных Π²Ρ‹ΡˆΠ΅ классов;

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ со всСми Π°Ρ‚Π°ΠΊΠ°ΠΌΠΈ для провСряСмой ΠΊΠ»Π΅Ρ‚ΠΊΠΈ

Однако Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π½Π΅ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€. Π•Π΅ Π·Π°Π΄Π°Ρ‡Π° – ΠΎΡ‚ΡΠ΅ΠΈΠ²Π°Ρ‚ΡŒ «бСспСрспСктивныС» Π°Ρ‚Π°ΠΊΠΈ:

Π”Π° собСрСм, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, всС Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ

Π˜Ρ‚Π°ΠΊ, основной Π°Π΄ ΠΏΠΎΠ·Π°Π΄ΠΈ β€” описан Π²Ρ‹ΡˆΠ΅. ΠŸΠΎΡ€Π° ΡΠ»Π΅ΠΏΠΈΡ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅. Ѐункция countWeight( x, y ) β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ вСс. Π§Ρ‚ΠΎ ΠΆΠ΅ Ρƒ Π½Π΅Π΅ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ массив всСх Π°Ρ‚Π°ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠ»Π΅Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚. ( getAllAttacks( x, y ) ). ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ всС Π»ΠΈΠ½ΠΈΠΈ, ΠΌΡ‹ считаСм количСство Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΠ½Ρ‚ΠΎΠ². Если 2 Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΠ½Ρ‚Π° – вспоминаСм, Ρ‡Ρ‚ΠΎ такая ситуация ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ исход ΠΈΠ³Ρ€Ρ‹, ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ вСс ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π½Π° 100.
Однако всС Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ, поэтому ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² 2 шага: сначала крСстики, ΠΏΠΎΡ‚ΠΎΠΌ Π½ΠΎΠ»ΠΈΠΊΠΈ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² массивС вСсов Π°Ρ‚Π°ΠΊ ( ATTACK_WEIGHTS[] ) я Π½Π΅ прСдусмотрСл Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 6 ΠΈ большС, ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π°Ρ‚Π°ΠΊΠΈ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 5. Π Π°Π·Π½ΠΈΡ†Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ – всС ΠΎΠ½ΠΈ приводят ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ ΠΈΠ³Ρ€Ρ‹.

Ну ΠΈ суммируСм вСса Π°Ρ‚Π°ΠΊ – ΠΊ этому всС ΠΈ шло.

Π•Ρ‰Π΅ нСбольшой ΠΌΠΎΠΌΠ΅Π½Ρ‚: Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΡ‚ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ³Ρ€Ρ‹ Π½Π΅ Ρ‚ΡƒΠΏΠΈΠ», ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡƒΠΆΠ΅ построил Π°Ρ‚Π°ΠΊΡƒ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ 4 ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚ Π½Π°Π΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ…ΠΎΠ΄ΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ вСс ΠΊΠ»Π΅Ρ‚ΠΊΠΈ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ. Π‘Π΅Π· этого, ИИ, просто Π½Π° просто, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ «опасных» Π°Ρ‚Π°ΠΊ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚Π°, хотя ΠΈΠ³Ρ€Π°, казалось Π±Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Π½Π°. ПослСдний Ρ…ΠΎΠ΄ Π²Π°ΠΆΠ΅Π½.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΅Π΅ вСс. ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ для всСх ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΡƒΡŽ (с наибольшим вСсом). Π’ΡƒΠ΄Π° ΠΈ Ρ…ΠΎΠ΄ΠΈΠΌ)

ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π½Π° github. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΡƒΠΆΠ΅ прСдостаточно, ΠΈ Π΅Π³ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ я Π½Π΅ пытался, оставляСт ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ. Но Ссли Ρ‚Ρ‹ смог Π΄ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ, Ρ‚ΠΎ я Ρ‚Π΅Π±Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½.

МоС ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅

Π‘ΠΎΠΉΠ΄Π΅Ρ‚! Π”Π°, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ‹Π³Ρ€Π°Ρ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π»ΠΈΡ‡Π½ΠΎ для мСня. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ я просто нСдостаточно Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π΅Π½. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈ Π²Ρ‹ свои силы.

Π—Π½Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Π½ΠΎ Π½Π΅ знаю ΠΊΠ°ΠΊ. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Π²Ρ‹ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ людСй Π·Π½Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΈΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π±ΠΎΡ‚Π°.

Π—Π½Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅. Да… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ извСстными Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ, Π²Ρ€ΠΎΠ΄Π΅ минимакса, Π½ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π·Π½Π°Π½ΠΈΠΉ Π² области Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈΠ³Ρ€, Ρ‡Π΅ΠΌ ΠΏΠΎΡ…Π²Π°ΡΡ‚Π°Ρ‚ΡŒ ΡƒΠ²Ρ‹ Π½Π΅ ΠΌΠΎΠ³Ρƒ.

Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΡ‚ΠΎΠ² Π½Π° нСсколько шагов Π²ΠΏΠ΅Ρ€Π΅Π΄, Ρ‡Ρ‚ΠΎ сдСлаСт Π±ΠΎΡ‚Π° Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ сопСрником. Однако сСйчас Π½Π΅ имСю Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ прСдставлСния ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСго; лишь имСю ΠΏΡ€Π΅Π΄ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ сСссию ΠΈ нСдописанный Π΄ΠΈΠΏΠ»ΠΎΠΌ – Ρ‡Ρ‚ΠΎ мСня ΠΎΠ³ΠΎΡ€Ρ‡Π°Π΅Ρ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *