diff --git a/.gradle/7.4/executionHistory/executionHistory.bin b/.gradle/7.4/executionHistory/executionHistory.bin index 482e3bdabfbae03cd5487a119ad5f3965e386c49..8fe78ca1a5dd4e5f7bbf6c847e351629e7542837 100644 Binary files a/.gradle/7.4/executionHistory/executionHistory.bin and b/.gradle/7.4/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.4/executionHistory/executionHistory.lock b/.gradle/7.4/executionHistory/executionHistory.lock index 9941b2c52553d73e13143e16fb70a977ea5e0ef9..1340577b55c3869daec00a9ac7b66ce4f3969529 100644 Binary files a/.gradle/7.4/executionHistory/executionHistory.lock and b/.gradle/7.4/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.4/fileHashes/fileHashes.bin b/.gradle/7.4/fileHashes/fileHashes.bin index 4967a97b225f66ba74f8ce3a2c0c13d4676fff19..ef2c76f6244c8300dd39f9b78287fa119b4867a7 100644 Binary files a/.gradle/7.4/fileHashes/fileHashes.bin and b/.gradle/7.4/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.4/fileHashes/fileHashes.lock b/.gradle/7.4/fileHashes/fileHashes.lock index 12eb8cbe55628dc15efc14f86e6ba1b86813d97b..9dde747e5ba0cbf26f13cc1d0db23f41d1abf531 100644 Binary files a/.gradle/7.4/fileHashes/fileHashes.lock and b/.gradle/7.4/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.4/fileHashes/resourceHashesCache.bin b/.gradle/7.4/fileHashes/resourceHashesCache.bin index ab592c7a31bfa7d10f331af39895804b94763548..6b50c75922b9ada313fad6a4db8b4c636c3e5373 100644 Binary files a/.gradle/7.4/fileHashes/resourceHashesCache.bin and b/.gradle/7.4/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index f9bfce77ea4384b451ec4b6f1a5479072d930f33..b207f9406dc55a038e753c0ea3e3c8365eff33af 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index d94dcb441eb81719468d22e20d87091ecbebd734..a85e42110354fa8e5219eee63229148156d012b9 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/build/classes/java/main/Activation/Activation.class b/build/classes/java/main/Activation/Activation.class new file mode 100644 index 0000000000000000000000000000000000000000..c7f213be0b523ab2f5b45930433cf9db57ab5d28 Binary files /dev/null and b/build/classes/java/main/Activation/Activation.class differ diff --git a/build/classes/java/main/App$1.class b/build/classes/java/main/App$1.class index 136eec5fd5de762f9958c0f9e0c25c95369e559e..532fdf1d6c45efaefb8833aff200682238d03a02 100644 Binary files a/build/classes/java/main/App$1.class and b/build/classes/java/main/App$1.class differ diff --git a/build/classes/java/main/App.class b/build/classes/java/main/App.class index 6d4b4a3cf2baacad8fae05e86dc06dcb8e8aa6ed..c4f9e1a8b09d49574687d0d038c5e9c5062f15b5 100644 Binary files a/build/classes/java/main/App.class and b/build/classes/java/main/App.class differ diff --git a/build/classes/java/main/Fighters/AntiFire.class b/build/classes/java/main/Fighters/AntiFire.class new file mode 100644 index 0000000000000000000000000000000000000000..f53ca4a7eaced15fbdb8f61ccb51fde563a9d0a0 Binary files /dev/null and b/build/classes/java/main/Fighters/AntiFire.class differ diff --git a/build/classes/java/main/Fighters/Clouds.class b/build/classes/java/main/Fighters/Clouds.class new file mode 100644 index 0000000000000000000000000000000000000000..04fbc2404b53a199d7c4fc58936240901f909bb0 Binary files /dev/null and b/build/classes/java/main/Fighters/Clouds.class differ diff --git a/build/classes/java/main/Fighters/FireFighters.class b/build/classes/java/main/Fighters/FireFighters.class new file mode 100644 index 0000000000000000000000000000000000000000..c944b2b3d708386cd19b154b0380028d8e179044 Binary files /dev/null and b/build/classes/java/main/Fighters/FireFighters.class differ diff --git a/build/classes/java/main/Fighters/MotorizedFireFighters.class b/build/classes/java/main/Fighters/MotorizedFireFighters.class new file mode 100644 index 0000000000000000000000000000000000000000..232fd081ec112261f8f28bb0d674f82c5ea8952e Binary files /dev/null and b/build/classes/java/main/Fighters/MotorizedFireFighters.class differ diff --git a/build/classes/java/main/Fire/Fire.class b/build/classes/java/main/Fire/Fire.class new file mode 100644 index 0000000000000000000000000000000000000000..76b51a2e4075a447e5f8ddf8c112852473950669 Binary files /dev/null and b/build/classes/java/main/Fire/Fire.class differ diff --git a/build/classes/java/main/Grid.class b/build/classes/java/main/Grid.class deleted file mode 100644 index 2979e0e7f08c7d0bff33daa48fabe02028e1045b..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/Grid.class and /dev/null differ diff --git a/build/classes/java/main/Grid/Grid.class b/build/classes/java/main/Grid/Grid.class new file mode 100644 index 0000000000000000000000000000000000000000..96b9598c143a90c2e0e1f015cefdc77b1df0e521 Binary files /dev/null and b/build/classes/java/main/Grid/Grid.class differ diff --git a/build/classes/java/main/Model$Position.class b/build/classes/java/main/Model$Position.class deleted file mode 100644 index 51c52b923ab5b501b3803cc99bb5101b0b07402d..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/Model$Position.class and /dev/null differ diff --git a/build/classes/java/main/Model.class b/build/classes/java/main/Model.class deleted file mode 100644 index 5d858bfcb70dbf28f83d9ed1c56ce1f4d1db1948..0000000000000000000000000000000000000000 Binary files a/build/classes/java/main/Model.class and /dev/null differ diff --git a/build/classes/java/main/Model/Model.class b/build/classes/java/main/Model/Model.class new file mode 100644 index 0000000000000000000000000000000000000000..cb1d5740f8d1f3bb9c5085b7958d3a4bd15e9f7e Binary files /dev/null and b/build/classes/java/main/Model/Model.class differ diff --git a/build/classes/java/main/Position/Position.class b/build/classes/java/main/Position/Position.class new file mode 100644 index 0000000000000000000000000000000000000000..33bf07ad87f3b9a313773bf30224819c611ade2b Binary files /dev/null and b/build/classes/java/main/Position/Position.class differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 99ccfdfd3ea2fd7ca14837d733baf60e85e1d94c..602a1e264d73293219aa1caa066dd595b27a20ae 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/Activation/Activation.java b/src/main/java/Activation/Activation.java new file mode 100644 index 0000000000000000000000000000000000000000..35c91025d40fd936ae4872f81241b58fe43dfec7 --- /dev/null +++ b/src/main/java/Activation/Activation.java @@ -0,0 +1,6 @@ +package Activation; + +public interface Activation { + public void activation(); + +} diff --git a/src/main/java/App.java b/src/main/java/App.java index 10dda1d5b5dac2118958e64a64772f18e7258f18..f2ec687179b2ef1ad8afb6df00b767741006617a 100644 --- a/src/main/java/App.java +++ b/src/main/java/App.java @@ -1,3 +1,5 @@ +import Activation.Activation; +import Grid.Grid; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; @@ -21,6 +23,7 @@ public class App extends Application { Button restart = new Button("Restart"); VBox buttons = new VBox(); HBox total = new HBox(); + Activation activation = null; Grid grid = new Grid(1000,1000,20,20); root.getChildren().add(total); @@ -37,7 +40,7 @@ public class App extends Application { while(true){ try { sleep(50); - grid.model.activation(); + activation.activation(); grid.repaint(); } catch (InterruptedException e) { e.printStackTrace(); diff --git a/src/main/java/Fighters/AntiFire.java b/src/main/java/Fighters/AntiFire.java index b4a6d1cb0a2ed4f21140d489af4338e0f751f88c..148d82168d8a35df1de53454f43cf750d080480b 100644 --- a/src/main/java/Fighters/AntiFire.java +++ b/src/main/java/Fighters/AntiFire.java @@ -1,30 +1,25 @@ package Fighters; -import javax.swing.text.Position; +import Model.Model; +import Position.Position; import java.util.*; - -public abstract class AntiFire { +import Grid.Grid; +public abstract class AntiFire { Grid grid; int colCount, rowCount; - List<Position> firefighters = new ArrayList<>(); Set<Position> fires = new HashSet<>(); - public Model.Position randomPosition() { - return new Model.Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); - } public abstract Position moveTowardFire(Position position); public abstract List<Position> next(Position position); public abstract Position activateFight(Position position); - - - - public void extinguish(Position position) { + public void extinguish(Position position) { fires.remove(position); - grid.paint(position.row, position.col); + + grid.paint(position.row(), position.col()); } - } + } diff --git a/src/main/java/Fighters/Clouds.java b/src/main/java/Fighters/Clouds.java index 1ceaa9dfdde5154172b2c7a63681517515a9cec7..aebf985966471ada1cde05b35cb772ba88e17c48 100644 --- a/src/main/java/Fighters/Clouds.java +++ b/src/main/java/Fighters/Clouds.java @@ -4,10 +4,17 @@ package Fighters; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; + +import Activation.Activation; import Position.Position; -public abstract class Clouds extends AntiFire { +public abstract class Clouds extends AntiFire implements Activation { + List<Position> clouds = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + List<Position> cloudsNewPositions; @Override public Position activateFight(Position position) { Position randomPosition = next(position).get((int) (Math.random()*next(position).size())); @@ -25,11 +32,24 @@ public abstract class Clouds extends AntiFire { @Override public List<Position> next(Position position) { List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-1, position.col()); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); return list; } + @Override + public void activation() { + cloudsNewPositions = new ArrayList<>(); + + for(Position cc : clouds){ + Position newPosition = activateFight(cc); + + grid.paint(cc.row(),cc.col()); + grid.paintCloud(newPosition.row(), newPosition.col()); + cloudsNewPositions.add(newPosition); + } + clouds= cloudsNewPositions; + } } diff --git a/src/main/java/Fighters/FireFighters.java b/src/main/java/Fighters/FireFighters.java index 5ac517608e82375bad92e5506808badafedbc4c6..32eaa51694509b5efc697097bc50b42643946411 100644 --- a/src/main/java/Fighters/FireFighters.java +++ b/src/main/java/Fighters/FireFighters.java @@ -1,20 +1,26 @@ package Fighters; +import Activation.Activation; import Fighters.AntiFire; import Position.Position; + +import javax.swing.*; import java.util.*; -public class FireFighters extends AntiFire { +public class FireFighters extends AntiFire implements Activation { int colCount, rowCount; + List<Position> firefighters = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + + List<Position> ffNewPositions; - Position position; @Override public Position activateFight(Position position) { Position randomPosition = moveTowardFire(position); - //next(position).get((int) (Math.random()*next(position).size())); + List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); extinguish(randomPosition); for (Position fire : nextFires) @@ -29,7 +35,7 @@ public class FireFighters extends AntiFire { if(position.row()>0) list.add(new Position(position.row()-1, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); - if(position.row()<rowCount-1) list.add(new Position(position.row+1, position.col())); + if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); return list; } @@ -55,4 +61,17 @@ public class FireFighters extends AntiFire { } return position; } + + @Override + public void activation() { + ffNewPositions = new ArrayList<>(); + for(Position ff : firefighters){ + Position newPosition = activateFight(ff); + + grid.paint(ff.row(),ff.col()); + grid.paintFF(newPosition.row(), newPosition.col()); + ffNewPositions.add(newPosition); + } + firefighters = ffNewPositions; + } } diff --git a/src/main/java/Fighters/MotorizedFireFighters.java b/src/main/java/Fighters/MotorizedFireFighters.java index fe9b6a52257f52238c19c2fcd6d9b9d17628d49f..a385f72516eff2f6f8bcceb963e8694d80d80a0b 100644 --- a/src/main/java/Fighters/MotorizedFireFighters.java +++ b/src/main/java/Fighters/MotorizedFireFighters.java @@ -1,10 +1,15 @@ package Fighters; +import Activation.Activation; import Position.Position; import java.util.*; -public class MotorizedFireFighters extends AntiFire { +public class MotorizedFireFighters extends AntiFire implements Activation { + List<Position> motorizedfirefighters = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + + List<Position> mffNewPositions; @Override public Position activateFight(Position position) { Position randomPosition = moveTowardFire(position); @@ -43,10 +48,23 @@ public class MotorizedFireFighters extends AntiFire { @Override public List<Position> next(Position position) { List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-2, position.col()); + if(position.row()>0) list.add(new Position(position.row()-2, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-2)); if(position.row()<rowCount-1) list.add(new Position(position.row()+2, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+2)); return list; } + + @Override + public void activation() { + mffNewPositions= new ArrayList<>(); + for(Position mff : motorizedfirefighters){ + Position newPosition = activateFight(mff); + + grid.paint(mff.row(),mff.col()); + grid.paintMFF(newPosition.row(), newPosition.col()); + mffNewPositions.add(newPosition); + } + motorizedfirefighters=mffNewPositions; + } } diff --git a/src/main/java/Fire.java b/src/main/java/Fire/Fire.java similarity index 50% rename from src/main/java/Fire.java rename to src/main/java/Fire/Fire.java index 19aa564e6af338acd1d2b9c250b98014c45f05d5..1e3dfd4d918d9e363c7c4da76a839cfa35c272a9 100644 --- a/src/main/java/Fire.java +++ b/src/main/java/Fire/Fire.java @@ -1,18 +1,38 @@ +package Fire; +import Activation.Activation; +import Grid.Grid; import Position.Position; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; -public class Fire { - int colCount,rowCount; - +public class Fire implements Activation { + int colCount,rowCount,step; + Grid grid; + Set<Position> fires = new HashSet<>(); private List<Position> activateFire(Position position) { return next(position); } + public void activation(){ + + if(step%2==0){ + List<Position> newFires = new ArrayList<>(); + for(Position fire : fires){ + newFires.addAll(activateFire(fire)); + } + for(Position newFire : newFires) + grid.paintFire(newFire.row(), newFire.col()); + + fires.addAll(newFires);} + step++; + + } private List<Position> next(Position position){ List<Position> list = new ArrayList<>(); - if(position.row()>0) list.add(new Position(position.row()-1, position.col()); + if(position.row()>0) list.add(new Position(position.row()-1, position.col())); if(position.col()>0) list.add(new Position(position.row(), position.col()-1)); if(position.row()<rowCount-1) list.add(new Position(position.row()+1, position.col())); if(position.col()<colCount-1) list.add(new Position(position.row(), position.col()+1)); diff --git a/src/main/java/Grid.java b/src/main/java/Grid/Grid.java similarity index 70% rename from src/main/java/Grid.java rename to src/main/java/Grid/Grid.java index 4ce3285c486ee31f4b17eb0326a726740d501081..1dc162969834fb9cb0bb85dc4401ffde2703eef7 100644 --- a/src/main/java/Grid.java +++ b/src/main/java/Grid/Grid.java @@ -1,11 +1,19 @@ +package Grid; + +import Activation.Activation; +import Model.Model; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; -public class Grid extends Canvas{ - int width, height, colCount, rowCount; - Model model; +public class Grid extends Canvas { + int width; + int height; + public int colCount; + public int rowCount; + public Model model; + Activation activation=null; public Grid(int width, int height, int colCount, int rowCount) { @@ -27,14 +35,13 @@ public class Grid extends Canvas{ repaint(); } private void mousePressed(MouseEvent mouseEvent) { - model.activation(); + activation.activation(); repaint(); /*double x = mouseEvent.getX(); double y = mouseEvent.getY(); - model.click((int)x*rowCount/height,(int)y*colCount/width);*/ - } + model.click((int)x*rowCount/height,(int)y*colCount/width);*/} - void repaint(){ + public void repaint(){ for(int col=0; col<colCount; col++) getGraphicsContext2D().strokeLine(0, col*width/colCount,height, col*width/colCount); for(int row=0; row<rowCount;row++) @@ -42,7 +49,7 @@ public class Grid extends Canvas{ } - void paint(int row, int col){ + public void paint(int row, int col){ getGraphicsContext2D().setFill(Color.WHITE); getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); } @@ -56,5 +63,13 @@ public class Grid extends Canvas{ getGraphicsContext2D().setFill(Color.RED); getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); } + public void paintMFF(int row, int col) { + getGraphicsContext2D().setFill(Color.BLUE); + getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); + } + public void paintCloud(int row , int col){ + getGraphicsContext2D().setFill(Color.GREY); + getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount); + } } \ No newline at end of file diff --git a/src/main/java/Model.java b/src/main/java/Model.java deleted file mode 100644 index 7e6653f332c7d248448a91cc6a925bb51472dee8..0000000000000000000000000000000000000000 --- a/src/main/java/Model.java +++ /dev/null @@ -1,118 +0,0 @@ -import javax.swing.text.Position; -import java.util.*; - - -public class Model { - - Position position; - Grid grid; - int colCount, rowCount; - List<Position> firefighters = new ArrayList<>(); - Set<Position> fires = new HashSet<>(); - List<Position> motorizedfirefighters = new ArrayList<>(); - List<Position> clouds = new ArrayList<>(); - List<Position> ffNewPositions; - int step = 0; - - public Model(Grid grid) { - this.grid = grid; - colCount = grid.colCount; - rowCount = grid.rowCount; - } - - - public void initialisation(int fireNumber, int fireFighterNumber,int cloudNumber, int motorizedFireFighterNumber){ - for(int index=0; index<fireNumber;index++) - fires.add(randomPosition()); - for(int index=0; index<fireFighterNumber;index++) - firefighters.add(randomPosition()); - - for(int index=0; index<cloudNumber;index++) - clouds.add(randomPosition()); - for(int index=0; index<motorizedFireFighterNumber;index++) - motorizedfirefighters.add(randomPosition()); - - } - - - public Position randomPosition() { - return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); - } - - - public void activation(){ - ffNewPositions = new ArrayList<>(); - for(Position ff : firefighters){ - Position newPosition = activateFirefighter(ff); - - grid.paint(ff.row,ff.col); - grid.paintFF(newPosition.row, newPosition.col); - ffNewPositions.add(newPosition); - } - firefighters = ffNewPositions; - if(step%2==0){ - List<Position> newFires = new ArrayList<>(); - for(Position fire : fires){ - newFires.addAll(activateFire(fire)); - } - for(Position newFire : newFires) - grid.paintFire(newFire.row, newFire.col); - - fires.addAll(newFires);} - step++; - - } - - public List<Position> activateFire(Position position) { - return next(position); - } - - - - public Position activateFirefighter(Position position) { - Position randomPosition = aStepTowardFire(position); - //next(position).get((int) (Math.random()*next(position).size())); - List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList(); - extinguish(randomPosition); - for (Position fire : nextFires) - extinguish(fire); - return randomPosition; - } - - public void extinguish(Position position) { - fires.remove(position); - grid.paint(position.row, position.col); - } - - public List<Position> next(Position position){ - List<Position> list = new ArrayList<>(); - if(position.row>0) list.add(new Position(position.row-1, position.col)); - if(position.col>0) list.add(new Position(position.row, position.col-1)); - if(position.row<rowCount-1) list.add(new Position(position.row+1, position.col)); - if(position.col<colCount-1) list.add(new Position(position.row, position.col+1)); - return list; - } - - public Position aStepTowardFire(Position position){ - Queue<Position> toVisit = new LinkedList<>(); - Set<Position> seen = new HashSet<>(); - HashMap<Position,Position> firstMove = new HashMap<>(); - toVisit.addAll(next(position)); - for(Position initialMove : toVisit) - firstMove.put(initialMove,initialMove); - while(!toVisit.isEmpty()){ - Position current = toVisit.poll(); - if(fires.contains(current)) - return firstMove.get(current); - for(Position adjacent : next(current)){ - if(seen.contains(adjacent)) continue; - toVisit.add(adjacent); - seen.add(adjacent); - firstMove.put(adjacent, firstMove.get(current)); - } - } - return position; - } - public record Position(int row, int col){} - -} diff --git a/src/main/java/Model/Model.java b/src/main/java/Model/Model.java new file mode 100644 index 0000000000000000000000000000000000000000..70769c04807c7dc0a4bf7d99a7f4ac840c7d186d --- /dev/null +++ b/src/main/java/Model/Model.java @@ -0,0 +1,45 @@ +package Model; +import Activation.Activation; +import Grid.Grid; +import Fighters.*; +import java.util.*; +import Fire.Fire; +import Position.Position; + +public class Model { + Grid grid; + int colCount, rowCount; + List<Position> firefighters = new ArrayList<>(); + Set<Position> fires = new HashSet<>(); + List<Position> motorizedfirefighters = new ArrayList<>(); + List<Position> clouds = new ArrayList<>(); + + + + + public Model(Grid grid) { + this.grid = grid; + colCount = grid.colCount; + rowCount = grid.rowCount; + } + + public void initialisation(int fireNumber, int fireFighterNumber,int cloudNumber, int motorizedFireFighterNumber){ + for(int index=0; index<fireNumber;index++) + fires.add(randomPosition()); + for(int index=0; index<fireFighterNumber;index++) + firefighters.add(randomPosition()); + for(int index=0; index<cloudNumber;index++) + clouds.add(randomPosition()); + for(int index=0; index<motorizedFireFighterNumber;index++) + motorizedfirefighters.add(randomPosition()); + + } + + + public Position randomPosition() { + return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount)); + } + + + +}