let fieldId ;
let field ;
let down ;
let down2 ;
let up ;
let up2 ;
let left ;
let right ;
let topRight ;
let topLeft ;
let bottomRight ;
let bottomLeft ;
let rowMin ;
let rowMax ;
let somethingIsSelected = false ;
for ( let i = 0 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
document . getElementById ( "field" + fieldId ) . selected = 0 ; //Sorgt dafür dass alle Felder die selected variable haben und diese 0 ist
document . getElementById ( "field" + fieldId ) . piece = 0 ; //Sorgt dafür dass alle Felder die piece variable haben und diese 0 ist
document . getElementById ( "field" + fieldId ) . fieldNum = i ; //Gibt jedem Feld eine Feldnummer, brauche ich für's movement
}
for ( let i = 56 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
document . getElementById ( "field" + fieldId ) . piece = 1 ; //Setzt die piece Variable von Feld 0 bis 8 auf 1 -> Diese Felder haben einen Spielstein von Spieler 1
}
for ( let i = 0 ; i < 8 ; i ++ ) {
fieldId = i . toString ( ) ;
document . getElementById ( "field" + fieldId ) . piece = 2 ; //Setzt die piece Variable von Feld 0 bis 8 auf 1 -> Diese Felder haben einen Spielstein von Spieler 1
}
/* ---------- DEBUG, NICHT PERMANENT ---------- */
document . getElementById ( "field41" ) . piece = 1 ;
document . getElementById ( "field34" ) . piece = 2 ;
/* ---------- DEBUG, NICHT PERMANENT ---------- */
drawPieces ( ) ;
resetValidMoves ( ) ;
function drawPieces ( ) {
for ( let i = 0 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
field = document . getElementById ( "field" + fieldId ) ;
if ( field . piece === 0 ) {
field . innerText = "" ;
} else if ( field . piece === 1 ) {
field . innerText = "X" ;
} else if ( field . piece === 2 ) {
field . innerText = "O" ;
}
}
}
function selectField ( field ) {
console . log ( field . id ) ;
for ( let i = 0 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
if ( document . getElementById ( "field" + fieldId ) . selected === 1 ) {
somethingIsSelected = true ;
}
}
if ( ! somethingIsSelected && field . piece !== 0 ) {
field . style . backgroundColor = "rgb(16,43,202, 0.3)" ;
field . selected = 1 ;
if ( field . piece === 1 ) {
validMovesPlayer1 ( field ) ;
} else if ( field . piece === 2 ) {
validMovesPlayer2 ( field ) ;
}
} else if ( field . selected === 1 ) {
for ( let i = 0 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
document . getElementById ( "field" + fieldId ) . style . backgroundColor = "rgb(255,255,255, 1)" ;
document . getElementById ( "field" + fieldId ) . validMove = 0 ;
}
field . selected = 0 ;
somethingIsSelected = false ;
}
}
function validMovesPlayer1 ( field ) {
if ( field . fieldNum < 8 && field . fieldNum >= 0 ) {
rowMin = 0 ;
rowMax = 7 ;
} else if ( field . fieldNum < 16 && field . fieldNum >= 8 ) {
rowMin = 8 ;
rowMax = 15 ;
} else if ( field . fieldNum < 24 && field . fieldNum >= 16 ) {
rowMin = 16 ;
rowMax = 23 ;
} else if ( field . fieldNum < 32 && field . fieldNum >= 24 ) {
rowMin = 24 ;
rowMax = 31 ;
} else if ( field . fieldNum < 40 && field . fieldNum >= 32 ) {
rowMin = 32 ;
rowMax = 39 ;
} else if ( field . fieldNum < 48 && field . fieldNum >= 40 ) {
rowMin = 40 ;
rowMax = 47 ;
} else if ( field . fieldNum < 56 && field . fieldNum >= 48 ) {
rowMin = 48 ;
rowMax = 55 ;
} else if ( field . fieldNum < 64 && field . fieldNum >= 56 ) {
rowMin = 56 ;
rowMax = 63 ;
}
if ( ( field . fieldNum + 8 ) < 64 ) {
down = document . getElementById ( "field" + ( field . fieldNum + 8 ) . toString ( ) ) ;
if ( down . piece === 0 ) {
down . validMove = 1 ;
}
}
if ( ( field . fieldNum - 8 ) >= 0 ) {
up = document . getElementById ( "field" + ( field . fieldNum - 8 ) . toString ( ) ) ;
if ( up . piece === 0 ) {
up . validMove = 1 ;
}
}
if ( ( field . fieldNum - 16 ) >= 0 ) {
up2 = document . getElementById ( "field" + ( field . fieldNum - 16 ) . toString ( ) ) ;
if ( up . validMove === 1 && up2 . piece === 0 ) {
up2 . validMove = 1 ;
}
}
if ( ( field . fieldNum - 1 ) >= rowMin ) {
left = document . getElementById ( "field" + ( field . fieldNum - 1 ) . toString ( ) ) ;
if ( left . piece === 0 ) {
left . validMove = 1 ;
} else if ( left . piece === 2 ) {
left . validMove = 2 ;
}
}
if ( ( field . fieldNum + 1 ) <= rowMax ) {
right = document . getElementById ( "field" + ( field . fieldNum + 1 ) . toString ( ) ) ;
if ( right . piece === 0 ) {
right . validMove = 1 ;
} else if ( right . piece === 2 ) {
right . validMove = 2 ;
}
}
if ( ( field . fieldNum - 9 ) >= ( rowMin - 8 ) ) {
topLeft = document . getElementById ( "field" + ( field . fieldNum - 9 ) . toString ( ) ) ;
if ( topLeft . piece === 2 ) {
topLeft . validMove = 2 ;
}
}
if ( ( field . fieldNum - 7 ) <= ( rowMax - 8 ) ) {
topRight = document . getElementById ( "field" + ( field . fieldNum - 7 ) . toString ( ) ) ;
if ( topRight . piece === 2 ) {
topRight . validMove = 2 ;
}
}
for ( let i = 0 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
if ( document . getElementById ( "field" + fieldId ) . validMove === 1 ) {
document . getElementById ( "field" + fieldId ) . style . backgroundColor = "rgb(33,157,35, 0.3)" ;
} else if ( document . getElementById ( "field" + fieldId ) . validMove === 2 ) {
document . getElementById ( "field" + fieldId ) . style . backgroundColor = "rgb(227,8,8, 0.3)" ;
}
}
}
function validMovesPlayer2 ( field ) {
if ( field . fieldNum < 8 && field . fieldNum >= 0 ) {
rowMin = 0 ;
rowMax = 7 ;
} else if ( field . fieldNum < 16 && field . fieldNum >= 8 ) {
rowMin = 8 ;
rowMax = 15 ;
} else if ( field . fieldNum < 24 && field . fieldNum >= 16 ) {
rowMin = 16 ;
rowMax = 23 ;
} else if ( field . fieldNum < 32 && field . fieldNum >= 24 ) {
rowMin = 24 ;
rowMax = 31 ;
} else if ( field . fieldNum < 40 && field . fieldNum >= 32 ) {
rowMin = 32 ;
rowMax = 39 ;
} else if ( field . fieldNum < 48 && field . fieldNum >= 40 ) {
rowMin = 40 ;
rowMax = 47 ;
} else if ( field . fieldNum < 56 && field . fieldNum >= 48 ) {
rowMin = 48 ;
rowMax = 55 ;
} else if ( field . fieldNum < 64 && field . fieldNum >= 56 ) {
rowMin = 56 ;
rowMax = 63 ;
}
if ( ( field . fieldNum + 8 ) < 64 ) {
down = document . getElementById ( "field" + ( field . fieldNum + 8 ) . toString ( ) ) ;
if ( down . piece === 0 ) {
down . validMove = 1 ;
}
}
if ( ( field . fieldNum + 16 ) < 64 ) {
down2 = document . getElementById ( "field" + ( field . fieldNum + 16 ) . toString ( ) ) ;
if ( down . validMove === 1 && down2 . piece === 0 ) {
down2 . validMove = 1 ;
}
}
if ( ( field . fieldNum - 8 ) >= 0 ) {
up = document . getElementById ( "field" + ( field . fieldNum - 8 ) . toString ( ) ) ;
if ( up . piece === 0 ) {
up . validMove = 1 ;
}
}
if ( ( field . fieldNum - 1 ) >= rowMin ) {
left = document . getElementById ( "field" + ( field . fieldNum - 1 ) . toString ( ) ) ;
if ( left . piece === 0 ) {
left . validMove = 1 ;
} else if ( left . piece === 1 ) {
left . validMove = 2 ;
}
}
if ( ( field . fieldNum + 1 ) <= rowMax ) {
right = document . getElementById ( "field" + ( field . fieldNum + 1 ) . toString ( ) ) ;
if ( right . piece === 0 ) {
right . validMove = 1 ;
} else if ( right . piece === 1 ) {
right . validMove = 2 ;
}
}
if ( ( field . fieldNum + 7 ) >= ( rowMin + 8 ) ) {
bottomLeft = document . getElementById ( "field" + ( field . fieldNum + 7 ) . toString ( ) ) ;
if ( bottomLeft . piece === 1 ) {
bottomLeft . validMove = 2 ;
}
}
if ( ( field . fieldNum + 9 ) <= ( rowMax + 8 ) ) {
bottomRight = document . getElementById ( "field" + ( field . fieldNum + 9 ) . toString ( ) ) ;
if ( bottomRight . piece === 1 ) {
bottomRight . validMove = 2 ;
}
}
for ( let i = 0 ; i < 64 ; i ++ ) {
fieldId = i . toString ( ) ;
if ( document . getElementById ( "field" + fieldId ) . validMove === 1 ) {
document . getElementById ( "field" + fieldId ) . style . backgroundColor = "rgb(33,157,35, 0.3)" ;
} else if ( document . getElementById ( "field" + fieldId ) . validMove === 2 ) {
document . getElementById ( "field" + fieldId ) . style . backgroundColor = "rgb(227,8,8, 0.3)" ;
}
}
}
function resetValidMoves ( ) {
for ( let i = 0 ; i < 64 ; i ++ ) {
let fieldId = i . toString ( ) ;
document . getElementById ( "field" + fieldId ) . validMove = 0 ;
}
}