tic-tac-toe
by Vladymyr Shevchuk
JavaScript
const storeOld = [
[new Map([[0, 0]]), new Map([[1, 1]]), new Map([[2, 2]])],
[new Map([[3, 3]]), new Map([[4, 4]]), new Map([[5, 6]])],
[new Map([[6, 6]]), new Map([[7, 7]]), new Map([[8, 8]])]
];
const store = [
[{0: 0}, {1: 1}, {2: 2}],
[{3: 3}, {4: 4}, {5: 5}],
[{6: 6}, {7: 7}, {8: 8}],
[{0: 0}, {3: 3}, {6: 6}],
[{1: 1}, {4: 4}, {7: 7}],
[{2: 2}, {5: 5}, {8: 8}],
[{0: 0}, {4: 4}, {8: 8}],
[{2: 3}, {4: 4}, {6: 6}]
];
function changeStore (store, value, char) {
return store.map(arr => {
return arr.map(item => {
if (item[value] === value) item[value] = char;
return item;
})
})
}
console.log('store', store);
const step1 = changeStore(store, 3, 'X');
const step2 = changeStore(store, 4, 'X');
//const step3 = changeStore(store, 5, 'X');
//console.log('step3', step3);
function checkWin (store, char) {
const result = [];
store.forEach(arr => {
const foo = arr.every(item => {
const [value] = Object.values(item);
return value === char;
});
console.log('foo', foo);
if (foo) {
result.push.apply(result, arr.map(item => Object.keys(item)));
};
});
return [].concat(...result) ;
}
const result = checkWin(step2, 'X');
console.log(result);