Информация об изменениях

Сообщение Re[4]: Ищется тема для несложного веб-приложения от 27.02.2020 8:37

Изменено 27.02.2020 9:12 Lazytech

Re[4]: Ищется тема для несложного веб-приложения
Здравствуйте, wildwind, Вы писали:

W>Оу, а как же "не представляю себе, кому понадобится очередной to-do-list"?


Это уже не просто to-do-list, а почти scheduler.

P.S. Немного поясню, что я имел в виду.

Почти весь код to-do-list'а, сделанного кем-то на Svelte:
https://github.com/738/todolist-svelte/blob/master/src/App.svelte

executable file | 45 lines (42 sloc) | 814 Bytes


На JavaScript приходится аж 23 строки кода! Ну, еще есть вкрапления JavaScript в десяток строк HTML.

Для сравнения, ниже привожу одну (не самую большую) функцию из моего простенького морского боя.
  JavaScript
    function isSunk(rowIndex, colIndex, someBoard, boardId) {
        let curCell;
        let hitCells = [{row: rowIndex, col: colIndex}];
        let sidesClear = 0;
        sideSteps.forEach(step => {
            for (let r = rowIndex + step.r, c = colIndex + step.c; ; r += step.r, c += step.c) {
                // console.log("r, c =", r, c);
                if (isValidCell(r, c)) {
                    curCell = someBoard[r][c];
                    if (curCell === EMPTY || curCell === WATER) {
                        sidesClear++;
                        break; // This direction has been checked
                    } else if (curCell === SHIP) {
                        return false; // some cells of this ship have not been hit yet
                    } else if (curCell === HIT) {
                        hitCells.push({row: r, col: c});
                    }
                } else {
                    sidesClear++;
                    break; // This direction has been checked
                }
            }         
        })
        // console.log("hitCells =", hitCells);
        if (sidesClear < 4) return false;
        hitCells.forEach(cell => {
            someBoard[cell.row][cell.col] = SUNK;
        });
        markAroundShip(hitCells, someBoard);
        // console.log("SHIP IS SUNK! rowIndex, colIndex =", rowIndex, colIndex);
        return true;
    }

За вычетом строк, содержащих только комментарии, 29 строк кода.
Re[4]: Ищется тема для несложного веб-приложения
Здравствуйте, wildwind, Вы писали:

W>Оу, а как же "не представляю себе, кому понадобится очередной to-do-list"?


Это уже не просто to-do-list, а почти scheduler.

P.S. Немного поясню, почему первоначально отказался от идеи создания to-do-list'а.

Почти весь код to-do-list'а, сделанного кем-то на Svelte:
https://github.com/738/todolist-svelte/blob/master/src/App.svelte

executable file | 45 lines (42 sloc) | 814 Bytes


На JavaScript приходится аж 23 строки кода! Ну, еще есть вкрапления JavaScript в десяток строк HTML.

Для сравнения, ниже привожу одну (не самую большую) функцию из моего простенького морского боя.
  JavaScript
    function isSunk(rowIndex, colIndex, someBoard, boardId) {
        let curCell;
        let hitCells = [{row: rowIndex, col: colIndex}];
        let sidesClear = 0;
        sideSteps.forEach(step => {
            for (let r = rowIndex + step.r, c = colIndex + step.c; ; r += step.r, c += step.c) {
                // console.log("r, c =", r, c);
                if (isValidCell(r, c)) {
                    curCell = someBoard[r][c];
                    if (curCell === EMPTY || curCell === WATER) {
                        sidesClear++;
                        break; // This direction has been checked
                    } else if (curCell === SHIP) {
                        return false; // some cells of this ship have not been hit yet
                    } else if (curCell === HIT) {
                        hitCells.push({row: r, col: c});
                    }
                } else {
                    sidesClear++;
                    break; // This direction has been checked
                }
            }         
        })
        // console.log("hitCells =", hitCells);
        if (sidesClear < 4) return false;
        hitCells.forEach(cell => {
            someBoard[cell.row][cell.col] = SUNK;
        });
        markAroundShip(hitCells, someBoard);
        // console.log("SHIP IS SUNK! rowIndex, colIndex =", rowIndex, colIndex);
        return true;
    }

За вычетом строк, содержащих только комментарии, 29 строк кода.