1

Тема: Шашки на js

Доброго дня шановні.
Отримав завдання на створення гри "Шашки".
Перечитав багато статтів, але толкового мало, є багато недокументованого коду. А от як той код самому написати так і не зрозумів.
Із статтів я зрозумів, що потрібно створити шахову дошку і хочаб реалізувати пересування фігурок.
Підкажіть будь-ласка з чого почати?

Подякували: ostap34PHP1

2

Re: Шашки на js

почніть зі створення шахової дошки

Подякували: leofun01, 221VOLT, varkon, ostap34PHP4

3

Re: Шашки на js

FakiNyan написав:

почніть зі створення шахової дошки

ок

Подякували: ostap34PHP1

4 Востаннє редагувалося 221VOLT (02.02.2017 13:24:11)

Re: Шашки на js

FakiNyan написав:

почніть зі створення шахової дошки

:D а далі --з шашок та їх moving ))

Подякували: ostap34PHP1

5 Востаннє редагувалося poperechnyi1 (02.02.2017 13:38:36)

Re: Шашки на js

Ось створив дошку, що далі.
Як зробити пересування фігурок?
Можливо  у вас будуть якісь ропозиції.
Підкажіть алгоритм, або що почитати.

6

Re: Шашки на js

221VOLT написав:
FakiNyan написав:

почніть зі створення шахової дошки

:D а далі --з шашок та їх moving ))

ок зараз буду реалізовувати їх пересування

7

Re: Шашки на js

https://github.com/poperechnyi1/checkers
Дошка готова.

Подякували: mike, ostap34PHP2

8 Востаннє редагувалося 0x9111A (02.02.2017 14:46:45)

Re: Шашки на js

Закиньте то на якийсь сервіс де то можна пощупати (https://jsfiddle.net/)

Подякували: Yola, 221VOLT, Wsewlad3

9

Re: Шашки на js

poperechnyi1 написав:

Доброго дня шановні.
Отримав завдання на створення гри "Шашки".
Перечитав багато статтів, але толкового мало, є багато недокументованого коду. А от як той код самому написати так і не зрозумів.
Із статтів я зрозумів, що потрібно створити шахову дошку і хочаб реалізувати пересування фігурок.
Підкажіть будь-ласка з чого почати?

а це не годиться як код для аналізу?
https://www.npmjs.com/package/draughts

10

Re: Шашки на js

0x9111A написав:

Закиньте то на якийсь сервіс де то можна пощупати (https://jsfiddle.net/)

я б закинув, але не можу зрозуміти як туди люди малюки до проекту закидують.
Якщо знаєте то підкажіть?

11

Re: Шашки на js

ping написав:
poperechnyi1 написав:

Доброго дня шановні.
Отримав завдання на створення гри "Шашки".
Перечитав багато статтів, але толкового мало, є багато недокументованого коду. А от як той код самому написати так і не зрозумів.
Із статтів я зрозумів, що потрібно створити шахову дошку і хочаб реалізувати пересування фігурок.
Підкажіть будь-ласка з чого почати?

а це не годиться як код для аналізу?
https://www.npmjs.com/package/draughts

дякую, просто на інгліші не дивидся.
Зараз гляну.

12

Re: Шашки на js

poperechnyi1 написав:

https://github.com/poperechnyi1/checkers
Дошка готова.

Гарно є, але я б на вашому місці рендеринг цієї таблиці переклав на js. Фактично дані в рядках і стовпцях дублюються. Це все можна звести до двох вкладених циклів. Один із яких вставляє рядки, а інший стовпці.

Також щоб зменшився код можна взагалі прибрати класи black  та gray. Для цього є css пропертя nth-child
http://www.w3schools.com/cssref/sel_nth-child.asp

13

Re: Шашки на js

mike написав:
poperechnyi1 написав:

https://github.com/poperechnyi1/checkers
Дошка готова.

Гарно є, але я б на вашому місці рендеринг цієї таблиці переклав на js. Фактично дані в рядках і стовпцях дублюються. Це все можна звести до двох вкладених циклів. Один із яких вставляє рядки, а інший стовпці.

Також щоб зменшився код можна взагалі прибрати класи black  та gray. Для цього є css пропертя nth-child
http://www.w3schools.com/cssref/sel_nth-child.asp

дякую, спробую врахувати.

14 Востаннє редагувалося poperechnyi1 (03.02.2017 11:20:09)

Re: Шашки на js

Так завдання трохи змінилось.
ПОтрібно реалізувати шахову дошку, без використання кграфічного інтерфейсу/

function InitBoard(row, colomn)
    {
        var row_board = row;
        var colomn_board = colomn;
        var massCellBoard=[];
        for(var i =0; i<row_board; i++)
        {
            massCellBoard[i]=[];
            for(var j =0; j<colomn_board; j++)
            {

                if(i%2==0 && j%2==0){
                    massCellBoard[i][j] = 1;
                }
                else
                {
                    massCellBoard[i][j]=0;
                }
            }

        }
       return massCellBoard;
        
    }
    console.log(InitBoard(8,8));

Як реалізувати так, щоб воно через одну клітинку ставило нулі і одиниці??

15

Re: Шашки на js

function InitBoard(row, colomn)
    {
        var row_board = row;
        var colomn_board = colomn;
        var massCellBoard=[];
        for(var i =0; i<row_board; i++)
        {
            massCellBoard[i]=[i];
            for(var j =0; j<colomn_board; j++)
            {
                massCellBoard[i][j] = 0;
                if(i%2==0){
                    if(j%2==0){
                        massCellBoard[i][j] = 1;
                    }
                }
                else
                {
                    if(j%2!==0){
                        massCellBoard[i][j] = 1;
                    }
                }
            }

        }
       return massCellBoard;

    }
    console.log(InitBoard(8,8));

Ось виправив. Тепер 0 і 1 стоять в шаховому порядку.

16

Re: Шашки на js

function InitBoard(row, colomn)
    {
        var row_board = row;
        var colomn_board = colomn;
        var massCellBoard=[];
        for(var i =0; i<row_board; i++)
        {
            massCellBoard[i]=[i];
            for(var j =0; j<colomn_board; j++)
            {
                massCellBoard[i][j] = 0;
                if(i%2==0){
                    if(j%2==0){
                        massCellBoard[i][j] = 1;
                    }
                }
                else
                {
                    if(j%2!==0){
                        massCellBoard[i][j] = 1;
                    }
                }
            }

        }
       return massCellBoard;

    }
    var board = InitBoard(8,8);
    console.log(board);

    
    function user1(allboard) {
        var user1Starthorizontal = 3;
        var user1StartVertical = 8;
        for(var i =0; i<user1Starthorizontal; i++)
        {
            for(var j =0; j<user1StartVertical; j++)
            {
                if(i%2==0){
                    if(j%2==0){
                        allboard[i][j] = 2;
                    }
                }
                else
                {
                    if(j%2!==0){
                        allboard[i][j] = 2;
                    }
                }
            }
        }
        return allboard;
    }
    user1(board);

    function user2(allboard){
        var user2Starthorizontal = 8;
        var user2StartVertical = 8;
        for(var i =5; i<user2Starthorizontal; i++)
        {
            for(var j =0; j<user2StartVertical; j++)
            {
                if(i%2==0){
                    if(j%2==0){
                        allboard[i][j] = 3;
                    }
                }
                else
                {
                    if(j%2!==0){
                        allboard[i][j] = 3;
                    }
                }
            }
        }
        return allboard;
    }
    user2(board);

Так зробив початкову ростановку дошки та першого і другого гравців))

17

Re: Шашки на js

застрелитися? а може краще JSFIDDLE?

18 Востаннє редагувалося poperechnyi1 (03.02.2017 12:17:55)

Re: Шашки на js

FakiNyan написав:

застрелитися? а може краще JSFIDDLE?

https://jsfiddle.net/poperechnyi1/xdzu8xfq/
Зараз буду пробувати правила гри реалізувати.

19

Re: Шашки на js

poperechnyi1 написав:
FakiNyan написав:

застрелитися? а може краще JSFIDDLE?

https://jsfiddle.net/poperechnyi1/xdzu8xfq/
Зараз буду пробувати правила гри реалізувати.

а HTML де? а цсс?

20

Re: Шашки на js

FakiNyan написав:
poperechnyi1 написав:
FakiNyan написав:

застрелитися? а може краще JSFIDDLE?

https://jsfiddle.net/poperechnyi1/xdzu8xfq/
Зараз буду пробувати правила гри реалізувати.

а HTML де? а цсс?

поставили завдання реалізувати без цього.
Просто на консолі. От думаю як це буде.

Подякували: ostap34PHP1