/*----------------------------------------------------------------------*/ /* Board */ /*----------------------------------------------------------------------*/ /* Jim Morey -- morey@math.ubc.ca -- February 15, 1997 */ /*----------------------------------------------------------------------*/ import java.io.*; import java.awt.*; import java.lang.*; import java.awt.Color; import java.net.*; import Omatrix; import Vertex; public class Board{ final static double Acon=0.292893218,Bcon=0.478072579,R3=1.732050808; final static int THRESHOLD=10000000; double STONE_RAD=0.04; private Vertex verts[][][]; public int size,W,H,dim[],ncolour=25; public double Scale,Zeye=8; public Omatrix orient; Color colours[][]; Board(int size_,int wid,int hei) { size=size_; STONE_RAD/=Math.sqrt(size); dim = new int[3]; dim[0]=2*size+1; dim[1]=size+1; dim[2]=size; orient= new Omatrix(); W = wid / 2; H = hei / 2; int i,j,k; verts = new Vertex[dim[0]][dim[1]][dim[2]]; for (k=0;k d2){ if (d3 > d1){ if (d2 > d1){ p1=2; p2=1; p3=0; } else{ p1=2; p2=0; p3=1; } } else { p1=0; p2=2; p3=1; } } else{ if (d2 > d1){ if (d3 > d1){ p1=1; p2=2; p3=0; } else{ p1=1; p2=0; p3=2; } } else { p1=0; p2=1; p3=2; } } for (int k=0;k=ncolour) thing =ncolour-1; return colours[i][thing]; } /* - - - - - - - - - - - - - - - */ public void setColours(){ colours = new Color[3][ncolour]; for (int i=0;i verts[i][j][k].coord[c]) bound[c][0] = verts[i][j][k].coord[c]; if (bound[c][1]< verts[i][j][k].coord[c]) bound[c][1] = verts[i][j][k].coord[c]; } double max=0; for (i=0;i<3;i++){ max+= (bound[i][1]-bound[i][0])*(bound[i][1]-bound[i][0]); bound[i][0] = (bound[i][0]+bound[i][1])/2; } max = Math.sqrt(max)/2.4; for (k=0;kH) Scale= (double)H/2; else Scale= (double)W/2; } /* - - - - - - - - - - - - - - - */ boolean inArray(int i,int j, int k){ return ((i>=0 && i=0 && j=0 && k