したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

コテと名無しの2025初夏から夏 雑談もチラ裏も 3

480オセロ(2):2025/06/08(日) 07:04:18 ID:wLrf/Ggs
(2)――――――――――――――――――――――――――――――――
function handleClick(e) {
const x = parseInt(e.currentTarget.dataset.x);
const y = parseInt(e.currentTarget.dataset.y);
if (board[y][x] !== '') return;
const flips = getFlips(x, y, currentPlayer);
if (flips.length === 0) return;
setPiece(x, y, currentPlayer);
for (const [fx, fy] of flips) {
setPiece(fx, fy, currentPlayer);
}
currentPlayer = currentPlayer === 'black' ? 'white' : 'black';
turnText.textContent = currentPlayer === 'black' ? '黒の番です' : '白の番です';
}

function getFlips(x, y, color) {
const dirs = [[1,0],[0,1],[-1,0],[0,-1],[1,1],[1,-1],[-1,1],[-1,-1]];
const opponent = color === 'black' ? 'white' : 'black';
const flips = [];

for (const [dx, dy] of dirs) {
let nx = x + dx, ny = y + dy;
const temp = [];
while (nx >= 0 && nx < SIZE && ny >= 0 && ny < SIZE && board[ny][nx] === opponent) {
temp.push([nx, ny]);
nx += dx; ny += dy;
}
if (nx >= 0 && nx < SIZE && ny >= 0 && ny < SIZE && board[ny][nx] === color) {
flips.push(...temp);
}
}
return flips;
}
createBoard();
</script>
</body>
</html>
(2)――――――――――――――――――――――――――――――――




掲示板管理者へ連絡 無料レンタル掲示板