Professional Documents
Culture Documents
Chess Katya
Chess Katya
Խնդրի նկարագրություն........................................................................................................4
Գրականություն....................................................................................................................18
3
Խնդրի նկարագրություն
Ֆիգուրների դասավորում Random և ձեռքով: Չթույլատրել անօրինական մուտք:
Ներառել ծրագրի բացատրությունը:
Նկ․ 1
4
Նկ․ 2
Նկ․ 3
5
/random-positions երթուղին նախատեսված է random դասավորված ֆիգուրներով
շախմատի տախտակի ցուցադրման համար։ constants թղթապանակի index.js
ֆայլում նկարագրվում է BOARD_SIZE հաստատունը, որը ցույց է տալիս
շախմատային տախտակի չափերը։
Նկ․ 4
Նկ,5
6
helpers թղթապանակի figures.js ֆայլում նկարագրված է FIGURES հաստատունը,
որտեղ ներկայացվում են շախմատային ֆիգուրաները՝ համապատասխան
անուններով և սիմվոլներով։
Նկ. 6
7
Նկ. 7
Նկ.8
8
helpers թղթապանակի randomPositions.js ֆայլում նկարագրվում է նախնական
մատրիցան, որը համապատասխանում է շախմատային տախտակին ։ Այնուհետև
generateRandomPositions ֆունկցիայում դասավորվում են ֆիգուրները random
դասավորությամբ։ Կատարվում է ստուգում, որպեսզի տվյալ դաշտը լինի ազատ,
իսկ սև և սպիտակ զիվորերը չհայտնվեն տախտակի եզրերում։
Նկ.9
Նկ.10
9
helpers թղթապանակի figuresSteps.js ֆայլում նկարագրված են ֆիգուրների
հնարավոր քայլերը ստուգող ֆունկցիաները։
10
Նկ.13- Փղի թույլատրելի քայելր
Նկ.15
11
Գեներացվում են random դիրքեր յուրաքանչյուր ֆիգուրի համար, այնպես որ սև և
սպիտակ արքաները չլինեն վտանգավոր դիրքերում։ Այդ ամենը ստուգվում է
checkForBlackKing և checkForWhiteKing ֆունկցիաների միջոցով։ Սպիտակ արքայի
համար հայտնաբերվում է նրա դիրքը, այնուհետև այդ դիրքի նկատմամբ
դիտարկվում են սև ֆիգուրների հնարավոր դիրքերը։ Եթե թագավորը գտնվում է
հարվածի տակ, ապա նրա համար գեներացվում է մեկ այլ դիրք, հակառակ
դեպքում կարող ենք շարունակել քայլերը։ Նույն գործողությունները կատարվում
են նաև սև արքայի համար։ Ճիշտ random դասավորություն կատարելուց հետո
առանձնացնում ենք սպիտակ փղի և սև ֆիգուրների կոորդինատները։ Վերև նշված
ֆունկցիաների օգնությամբ հայտնաբերում ենք սպիտակ փղի հնարավոր քայլերը
և արտապատկերում ենք էկրանին՝ whiteBishop փոփոխականի միջոցով։
Նկ.16
12
Նկ.17
Նկ.18
13
Նկ.19
Նկ.20
14
Նկ.21
15
Ծրագիրն աշխատեցնելու արդյունքում կունենանք հետևյալ պատկերը՝
Նկ.22
Սպիտակ փիղը գտնվում է (G,5) կոորդինատ ունեցող դաշտում։ Այն կարող է քայլ
կատարել (H,4),(E,7),(E,3),(D,2),(C,1) դաշտեր։ Սպիտակ փիղը կարող է նաև քայլեր
կատարել (F, 6), (H,6) դաշտեր, բայց այդ դաշտերում այն կգտնվի սևերի
ֆիգուրների հարվածի տակ։
Նկ.23
16
Նկ.24
Նկ.25
Նկ.26
17
Գրականություն
Javascript: The Good Parts - Douglas Crockford
https://chessboardjs.com/examples#1004
https://chessboardjs.com/docs#methods
https://dev.to/zeyu2001/build-a-simple-chess-ai-in-javascript-18eg
18