Can now sorta handle the bar
This commit is contained in:
parent
3e8f5987aa
commit
205dd2a699
161
func.js
161
func.js
|
@ -2,10 +2,11 @@ var prev_board = []
|
|||
|
||||
|
||||
$(function () {
|
||||
var init_board = [0, 2, 0, 0, 0, 0, -5, 0, -3, 0, 0, 0, 5, -5, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, -2, 0];
|
||||
var red = "#E83D04"
|
||||
var white = "#E8E077"
|
||||
var brown = "#4C2E00"
|
||||
var init_board = [0, 2, 0, 0, 0, 0, -5, 0, -3, 0, 1, 0, 4, -5, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, -2, 0];
|
||||
// var init_board = [0,2,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
const red = "#E83D04"
|
||||
const white = "#E8E077"
|
||||
const brown = "#4C2E00"
|
||||
var prev_board = []
|
||||
var color = white;
|
||||
|
||||
|
@ -15,40 +16,40 @@ $(function () {
|
|||
|
||||
for (var i = 0; i < 26; i++) {
|
||||
|
||||
if (i < 13 && 0 < i) {
|
||||
var pos = 'bottom';
|
||||
} else if (i > 12 && i < 25) {
|
||||
var pos = 'top';
|
||||
} else {
|
||||
var pos = 'bar';
|
||||
}
|
||||
if (i < 13 && 0 < i) {
|
||||
var pos = 'bottom';
|
||||
} else if (i > 12 && i < 25) {
|
||||
var pos = 'top';
|
||||
} else {
|
||||
var pos = 'bar';
|
||||
}
|
||||
|
||||
|
||||
if (color == white) {
|
||||
color = red;
|
||||
} else {
|
||||
color = white;
|
||||
}
|
||||
if (color == white) {
|
||||
color = red;
|
||||
} else {
|
||||
color = white;
|
||||
}
|
||||
|
||||
if (i == 0 || i == 25) {
|
||||
color = brown;
|
||||
if (i == 0 || i == 25) {
|
||||
color = brown;
|
||||
}
|
||||
|
||||
var div = $("<div style='background-color:"+color+"'/>").addClass("pin").addClass("pin-"+pos).attr('id', 'pin-'+i);
|
||||
|
||||
var checkers_div = $("<div />").addClass("checkers").attr('id', 'checkers-'+i);
|
||||
var checkers_list = $("<ul />").addClass("checkers_list").attr('id', 'checkers_list-'+i).attr('pinId', i);
|
||||
|
||||
|
||||
checkers_div.append(checkers_list);
|
||||
div.append(checkers_div);
|
||||
$( "#pins" ).append(div);
|
||||
}
|
||||
|
||||
var div = $("<div style='background-color:"+color+"'/>").addClass("pin").addClass("pin-"+pos).attr('id', 'pin-'+i);
|
||||
|
||||
var checkers_div = $("<div />").addClass("checkers").attr('id', 'checkers-'+i);
|
||||
var checkers_list = $("<ul />").addClass("checkers_list").attr('id', 'checkers_list-'+i);
|
||||
|
||||
|
||||
checkers_div.append(checkers_list);
|
||||
div.append(checkers_div);
|
||||
$( "#pins" ).append(div);
|
||||
}
|
||||
|
||||
var div = $("<div style='background-color:black'/>").addClass("pin").addClass("pin-26").attr('id', 'pin-26');
|
||||
|
||||
var checkers_div = $("<div />").addClass("checkers").attr('id', 'checkers-26');
|
||||
var checkers_list = $("<ul />").addClass("checkers_list").attr('id', 'checkers_list-26');
|
||||
var checkers_list = $("<ul />").addClass("checkers_list").attr('id', 'checkers_list-26').attr('pinId', 26);
|
||||
|
||||
checkers_div.append(checkers_list);
|
||||
div.append(checkers_div);
|
||||
|
@ -60,33 +61,72 @@ $(function () {
|
|||
prev_board = convertToBoard();
|
||||
|
||||
$( ".checkers_list" ).sortable({
|
||||
connectWith: ".checkers_list",
|
||||
receive: function (event, ui) {
|
||||
connectWith: ".checkers_list",
|
||||
receive: function (event, ui) {
|
||||
|
||||
// Handle putting people on the bar correclty and getting off it.
|
||||
// Something like look at the index you drop the checker at
|
||||
// Handle putting people on the bar correclty and getting off it.
|
||||
// Something like look at the index you drop the checker at
|
||||
|
||||
|
||||
board = convertToBoard();
|
||||
|
||||
prev_board = handleMove(prev_board, board);
|
||||
|
||||
convertToPins(prev_board);
|
||||
|
||||
var toIdx = event.target.attributes.pinId.value;
|
||||
var fromIdx = ui.sender.attr("pinId");
|
||||
|
||||
console.log(fromIdx);
|
||||
console.log(toIdx);
|
||||
|
||||
if (toIdx < 26) {
|
||||
var cloned_board = prev_board.slice();
|
||||
var sign = Math.sign(cloned_board[fromIdx]);
|
||||
|
||||
// if bar stuff has to be handled
|
||||
if (cloned_board[toIdx] * sign == -1) {
|
||||
// Lift checker
|
||||
cloned_board[fromIdx] += -(sign);
|
||||
|
||||
// Check where the opponents bar is
|
||||
if (sign == -1) {
|
||||
cloned_board[0] += -(sign);
|
||||
} else {
|
||||
cloned_board[25] += -(sign);
|
||||
}
|
||||
|
||||
// flip the piece at target index
|
||||
cloned_board[toIdx] *= -1
|
||||
// Load the board into the pins
|
||||
convertToPins(cloned_board);
|
||||
}
|
||||
}
|
||||
|
||||
// console.log("lol");
|
||||
// console.log(prev_board[fromIdx]);
|
||||
// console.log(prev_board[toIdx]);
|
||||
|
||||
board = convertToBoard();
|
||||
console.log("board!!!!");
|
||||
console.log(board);
|
||||
prev_board = handleMove(prev_board, board);
|
||||
|
||||
convertToPins(prev_board);
|
||||
|
||||
if (board != convertToBoard()) {
|
||||
prev_board = getBotMove(prev_board);
|
||||
convertToPins(prev_board);
|
||||
}
|
||||
// if (board != convertToBoard()) {
|
||||
// prev_board = getBotMove(prev_board);
|
||||
// convertToPins(prev_board);
|
||||
// }
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
function handleMove(prev_board, board) {
|
||||
var new_board = postRequest(prev_board, board);
|
||||
return new_board;
|
||||
test = [];
|
||||
for (var i = 0; i<26; i++) {
|
||||
test.push(parseInt(new_board[i]));
|
||||
}
|
||||
return test;
|
||||
};
|
||||
|
||||
|
||||
|
@ -94,22 +134,27 @@ function convertToBoard() {
|
|||
var board = []
|
||||
|
||||
for (var i = 0; i < 26; i++) {
|
||||
var amount = $( "#checkers_list-"+i ).children('li').length;
|
||||
if (amount != 0) {
|
||||
var sign = ($("#checkers_list-"+i+"> li").attr('class').split(' ')[0]);
|
||||
board.push(sign*amount);
|
||||
} else {
|
||||
board.push(0);
|
||||
}
|
||||
var amount = $( "#checkers_list-"+i ).children('li').length;
|
||||
if (amount != 0) {
|
||||
var sign = ($("#checkers_list-"+i+"> li").attr('class').split(' ')[0]);
|
||||
if (i == 21) {
|
||||
console.log(amount)
|
||||
console.log(sign)
|
||||
}
|
||||
board.push(sign*amount);
|
||||
} else {
|
||||
board.push(0);
|
||||
}
|
||||
|
||||
}
|
||||
// console.log(board);
|
||||
}
|
||||
console.log("The built board");
|
||||
console.log(board);
|
||||
return board
|
||||
}
|
||||
|
||||
function emptyLists() {
|
||||
for (var i=0; i < 26; i++) {
|
||||
$( '#checkers_list-'+i ).empty();
|
||||
for (var i=0; i < 27; i++) {
|
||||
$( '#checkers_list-'+i ).empty();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user