xxxxxxxxxx
109
function setup() {
angleMode(DEGREES);
createCanvas(400, 400, WEBGL);
me = createCamera();
me.move(-140, 120, 0);
me.pan(-38);
me.tilt(-33);
b = new board();
}
function draw() {
orbitControl();
background(0);
pointLight(220, 200, 200, 200, 200, 200);
pointLight(220, 200, 200, 200, 100, 200);
directionalLight(170, 170, 160, 1, 1, -1);
ambientLight(110);
b.show();
b.makeMove();
}
class cell {
constructor() {
this.state = [1, 0, 0]; // [empty, yellow, red]
}
State() {
return this.state;
}
Set(state) {
this.state = state;
}
}
class board {
constructor() {
this.state = [];
for (var i = 0; i < 5; i++) {
var layer = [];
for (var j = 0; j <= i; j++) {
var row = [];
for (var k = 0; k <= j; k++) {
var c = new cell();
row.push(c);
}
layer.push(row);
}
this.state.push(layer);
}
}
show() {
ambientMaterial(80);
push();
for (var j = 1; j < 7; j++) {
push();
for (var i = 0; i < j; i++) {
box(30, 30, 30);
translate(30, 30, 0);
}
pop();
translate(0, -30, 30);
}
pop();
push();
translate(0, 0, -30);
for (var j = 1; j < 8; j++) {
push();
for (var i = 0; i < j; i++) {
box(30, 30, 30);
translate(30, 30, 0);
}
pop();
translate(0, -30, 30);
}
pop();
translate(0,0,30);
for (var i = 0; i < 5; i++) {
push();
for (var j = 0; j <= i; j++) {
push();
for (var k = 0; k <= j; k++) {
var s = this.state[i][j][k].State();
if(s[0] == 0) {
if(s[1] == 1) {
ambientMaterial(255, 255, 0);
}
else {
ambientMaterial(255, 0, 0);
}
box(30,30,30);
}
translate(-30,-30,0);
}
pop();
translate(30,0,0);
}
pop();
translate(0,0,30);
}
}
makeMove() {
if(mouseIsPressed){
}
}
}