var drawOffsetX, drawOffsetY;
var hasWon = false, hasLost = false;
createCanvas(windowWidth-20, windowHeight-20);
select('body').attribute('oncontextmenu', "event.preventDefault();");
difficulty = createSelect();
difficulty.position(100,100);
difficulty.option("Simple");
difficulty.option("Advanced");
difficulty.option("Hard");
difficulty.changed(setDifficulty);
function setDifficulty() {
var diff = difficulty.value();
if (diff == "Advanced") {
drawOffsetX = (width - (cols+0.5)*HexDistanceX)/2;
drawOffsetY = (height - (rows)*HexDistanceY)/2;
function generateField() {
for (var j = 0; j < rows; j++) {
for (var i = tellMinX(j); i <= tellMaxX(j); i++) {
field[tellPosInArray(i, j)] = new HexCoord(i,j);
for (var n = 0; n < amountMines; n++) {
var i = floor(random(field.length));
for (var i = 0; i < field.length; i++) {
field[i].computeNeighboringMines();
for(var i = 0; i < field.length; i++) {
textWithColor("Winner", width/2, height/2, color(0,255,0,100), color(0,100));
textWithColor("Exploded!", width/2, height/2, color(255,0,0,100), color(255,100));
function mousePressed() {
for (var i = 0; i < field.length; i++) {
if (field[i].mouseOver()) {
if (mouseButton == LEFT) {
if (mouseButton == RIGHT && field[i].covered) {
field[i].marked = !field[i].marked;
if (mouseButton == CENTER) {
var neighbors = field[i].getAdjacent();
for (var n = 0; n < neighbors.length; n++) {
if (!neighbors[n].marked) {