Skip to content
Snippets Groups Projects
Select Git revision
  • cd8a2246ad97be59f1d15fba776c6210647efc31
  • main default protected
  • variant
3 results

Cloud.java

Blame
  • Forked from LABOUREL Arnaud / Firefighter template
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    RoadFactory.java 1.20 KiB
    package model;
    
    import util.Position;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Random;
    
    public class RoadFactory implements ElementFactory{
        Random random = new Random();
    
        public Element getNewElement(BoardData boardData, Position position){
            int[][] dir={{0,1},{0,-1},{1,0},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};
            int[] currentDirection1,currentDirection2;
            do{
                currentDirection1 = dir[random.nextInt(8)];
                currentDirection2 = dir[random.nextInt(8)];
            }while(currentDirection1==currentDirection2);
    
            for (int i = position.row(),j= position.column();
                 i < boardData.getRowCount() && i >= 0 && j < boardData.getColumnCount() && j >= 0 ;
                 i+=currentDirection1[0],j+=currentDirection1[1]) {
                boardData.addElement(new Road(new Position(i,j)));
            }
            for (int i = position.row(),j= position.column();
                 i < boardData.getRowCount() && i >= 0 && j < boardData.getColumnCount() && j >= 0 ;
                 i+=currentDirection2[0],j+=currentDirection2[1]) {
                boardData.addElement(new Road(new Position(i,j)));
            }
            return new Road(position);
        }
    }