-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsketch.js
More file actions
122 lines (101 loc) · 2.33 KB
/
sketch.js
File metadata and controls
122 lines (101 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
var cells = []
var cant = 16
var s;
var minas = 40
var qeue = []
var cellsClicked = 0
var minesLeft = minas
var count = 0
var auto = true
function setup() {
createCanvas(900, 900)
ai = new robot()
params = getURLParams()
if (params.minas) {
minas = (parseInt(params.minas))
}
if (params.size) {
cant = parseInt(params.size)
}
s = floor(window.height / cant)
for (var j = 0; j < cant; j++) { // columnas
for (var i = 0; i < cant; i++) { // filas
cells.push(new cell(j, i, s))
}
}
for (var i = 0; i < minas; i++) {
var r = random(cells)
if (r.mode != "Mine") {
r.changeMode("Mine")
} else {
i--
}
}
for (var i = 0; i < cells.length; i++) {
cells[i].check(cells)
}
// if (auto) cells[0].click()
}
function draw() {
minesLeft = minas
count = 0
background(150)
if (qeue.length == 0 && auto) {
ai.firstStep(cells)
ai.secondStep(cells)
if (ai.firstStep(cells) == undefined && ai.secondStep(cells) == undefined && cellsClicked > sq(cant) / 3){
ai.tank(cells)
}
}
cellsClicked = 0
for (var i = 0; i < qeue.length; i++) {
qeue[0].click()
qeue.splice(0, 1)
}
for (var i = 0; i < cells.length; i++) {
cells[i].display()
if (cells[i].mode == "Clicked") {
cellsClicked++
} else if (cells[i].mode == "Flaged") {
minesLeft--
} else if (cells[i].mode == "Mine") {
count++
}
}
// console.log(minesLeft)
if (cellsClicked == cells.length - minas || count == 0) {
noLoop()
console.log("YOU WON")
}
}
function mousePressed() {
var record = Infinity
var index = -1
for (var i = 0; i < cells.length; i++) {
var d = dist(mouseX, mouseY, cells[i].pos.x, cells[i].pos.y)
if (d < record) {
record = d
index = i
}
}
if (mouseButton == LEFT) {
if (index > -1 && cells[index].mode != "Clicked") {
cells[index].click()
}
} else {
if (index > -1 && cells[index].mode != "Clicked") {
if (cells[index].mode == "Flaged") {
cells[index].changeMode(cells[index].previousMode)
} else {
cells[index].previousMode = cells[index].mode
cells[index].changeMode("Flaged")
}
}
}
}
function index(j, i) {
if (i < 0 || j < 0 || i > cant - 1 || j > cant - 1) {
return -1;
}
return i + j * cant;
}