diff --git a/Meteo_Engine.jar b/Meteo_Engine.jar index ee98b0e..8d657ed 100644 Binary files a/Meteo_Engine.jar and b/Meteo_Engine.jar differ diff --git a/src/sig/Block.java b/src/sig/Block.java index 1fc2a7e..4a0b470 100644 --- a/src/sig/Block.java +++ b/src/sig/Block.java @@ -16,7 +16,7 @@ public class Block{ public Block(int x,int y) { this.x=x; this.y=y; - state = STARTINGSTATES[(int)(Math.random()*1)]; + state = STARTINGSTATES[(int)(Meteo.r.nextInt(1))]; } @Override public String toString() { diff --git a/src/sig/BlockClump.java b/src/sig/BlockClump.java index ed7216b..6a4b780 100644 --- a/src/sig/BlockClump.java +++ b/src/sig/BlockClump.java @@ -43,8 +43,9 @@ public class BlockClump { public void addBlock(Block...blocks) { //Adds the block to the strucutre. Update collision column ranges to reflect the new bounds. for (Block b : blocks) - {updateBlockCollisionRangeWithBlock(b); + { this.blocks.add(b); + updateBlockCollisionRangeWithBlock(b); } } public void removeBlock(Block...blocks) { diff --git a/src/sig/Board.java b/src/sig/Board.java index 560563e..2d68892 100644 --- a/src/sig/Board.java +++ b/src/sig/Board.java @@ -38,9 +38,9 @@ public class Board { this.combo_power_bonus = combo_power_bonus; this.blockData = new ArrayList(); - List initialBlocks = new ArrayList(); + /*List initialBlocks = new ArrayList(); for (int x=0;x initialBlocks2 = new ArrayList(); for (int x=0;x blockList = blocks.getSortedBlocksOnRow(y); - markedBlocks.addAll(FindMatches(blockList,width,true)); + System.out.println(" "+blockList); + markedBlocks.addAll(FindMatches(blockList)); } for (int x=0;x blockList = blocks.getSortedBlocksOnCol(x); - markedBlocks.addAll(FindMatches(blockList,blocks.maxBlockHeight,false)); + markedBlocks.addAll(FindMatches(blockList)); } if (markedBlocks.size()>0) { List newClumpBlocks = new ArrayList(); @@ -146,22 +147,23 @@ public class Board { } return false; } - private List FindMatches(List blockList, int maxSearch, boolean searchingRows) { - BlockState col = BlockState.IGNITED; - int matches=0; + private List FindMatches(List blockList) { List markedBlocks = new ArrayList(); List tempMarkedBlocks = new ArrayList(); - for (int i=0;i0) { Block currentBlock = blockList.get(0); - if (searchingRows&¤tBlock.x==i||(!searchingRows&¤tBlock.y==i)) { + if (Math.abs(currentBlock.x-prevX)==1||Math.abs(currentBlock.y-prevY)==1) { if (col!=BlockState.IGNITED&¤tBlock.state==col) { matches++; tempMarkedBlocks.add(blockList.remove(0)); } else { if (matches>=3) { markedBlocks.addAll(tempMarkedBlocks); - System.out.println(" Added to Marked blocks: "+tempMarkedBlocks); } matches=1; col=currentBlock.state; @@ -169,14 +171,19 @@ public class Board { tempMarkedBlocks.add(blockList.remove(0)); } } else { - col = BlockState.IGNITED; - matches=0; + if (matches>=3) { + markedBlocks.addAll(tempMarkedBlocks); + } + matches=1; + col=currentBlock.state; tempMarkedBlocks.clear(); + tempMarkedBlocks.add(blockList.remove(0)); } + prevX=currentBlock.x; + prevY=currentBlock.y; } if (matches>=3) { markedBlocks.addAll(tempMarkedBlocks); - System.out.println(" Added to Marked blocks: "+tempMarkedBlocks); } return markedBlocks; } diff --git a/src/sig/Meteo.java b/src/sig/Meteo.java index 8fe2767..33eb8f0 100644 --- a/src/sig/Meteo.java +++ b/src/sig/Meteo.java @@ -2,6 +2,7 @@ package sig; import java.util.ArrayList; import java.util.List; +import java.util.Random; import javax.swing.JFrame; @@ -13,6 +14,7 @@ public class Meteo { public static double GAMELOOPTIME=0; public static JFrame f; public static Board b; + public static Random r; public final static long TIMEPERTICK = 16666667l; public static DebugMode DEBUG_DRAWING = DebugMode.MODE2; @@ -23,6 +25,7 @@ public class Meteo { } public static void main(String[] args) { + r = new Random(437210983125739812l); double[] val = {0,0,}; b = new Board(SCREEN_WIDTH/2,SCREEN_HEIGHT/2,24,24,8,14,-0.065,1,4,-2,val);