Я новичок в угловых и мой JavaScript является основным. Я пытаюсь написать программу, решающую головоломки Судоку. Сетка 9x9 будет иметь 81 пункт или квадрат. Я подумал, что смогу быстрее проверять нарушения правил судоку (без повторов числа в одной строке, столбце или 3х3 по секторам), если бы я организовал точки в три одинаковых списка по 81, но организовал три разных способа. Опять же, по столбцу, строке и сектору.
Итак: я хотел бы получить массив, который содержит три массива, который содержит девять массивов, который содержит девять точек.
Я знаю, что Array<Array<Point>>
имеет длину 9. Я объявил его как таковой, и когда я дважды проверяю журнал консоли, кажется, что он имеет длину 9. Итак, я подумал, что есть 9 нулей Array<Point>
внутри. Я подумал, что могу просто набрать очки на любой из этих 9 массивов, но мне не повезло. Мне постоянно говорят, что grid[0][x]
не определено. Есть идеи? Спасибо.
gridByX:Array<Array<Point>> = new Array<Array<Point>>(9);
gridByY:Array<Array<Point>> = new Array<Array<Point>>(9);
gridByS:Array<Array<Point>> = new Array<Array<Point>>(9);
grid:Array<Array<Array<Point>>> = [this.gridByX, this.gridByY, this.gridByS];
constructor() {}
ngOnInit() {
this.populateGrid();
}
populateGrid(){
let counter = 0;
for (let x = 0; x < 9; x++){
for (let y = 0; y < 9; y++){
let point = new Point(counter, x, y);
this.grid[0][x].push(point);
this.grid[1][y].push(point);
this.grid[2][point.sector].push(point);
}
}
}