Site Search:

Program to prove there is no overlap between the stars

Back>


code:


import java.util.*;
import java.util.stream.*;

public class MakeSense {
    static String stars = "480px 167px #FFF , 163px 26px #FFF , 470px 193px #FFF , 245px 150px #FFF , 52px 227px #FFF , 334px 11px #FFF , 263px 62px #FFF , 27px 111px #FFF , 196px 227px #FFF , 9px 61px #FFF , 120px 288px #FFF , 179px 72px #FFF , 306px 120px #FFF , 338px 87px #FFF , 94px 48px #FFF , 392px 163px #FFF , 196px 216px #FFF , 288px 35px #FFF , 363px 128px #FFF , 416px 165px #FFF , 222px 133px #FFF , 102px 222px #FFF , 345px 236px #FFF , 478px 292px #FFF , 208px 287px #FFF , 473px 91px #FFF , 467px 212px #FFF , 176px 30px #FFF , 440px 228px #FFF , 46px 266px #FFF , 276px 184px #FFF , 277px 164px #FFF , 161px 252px #FFF , 164px 257px #FFF , 329px 250px #FFF , 69px 265px #FFF , 230px 253px #FFF , 310px 182px #FFF , 274px 186px #FFF , 295px 75px #FFF , 12px 216px #FFF , 406px 141px #FFF , 285px 234px #FFF , 372px 85px #FFF , 28px 73px #FFF , 265px 166px #FFF , 193px 197px #FFF , 373px 77px #FFF , 423px 104px #FFF , 247px 201px #FFF , 384px 44px #FFF , 423px 270px #FFF , 466px 212px #FFF , 210px 9px #FFF , 496px 60px #FFF , 149px 233px #FFF , 487px 104px #FFF , 432px 291px #FFF , 50px 50px #FFF , 280px 33px #FFF , 326px 17px #FFF , 1px 183px #FFF , 309px 231px #FFF , 137px 79px #FFF , 306px 125px #FFF , 149px 105px #FFF , 423px 206px #FFF , 287px 209px #FFF , 8px 178px #FFF , 315px 177px #FFF";
    static String stars1 = "59px 266px #FFF , 386px 1px #FFF , 139px 192px #FFF , 495px 100px #FFF , 106px 277px #FFF , 351px 47px #FFF , 204px 152px #FFF , 74px 71px #FFF , 210px 261px #FFF , 43px 204px #FFF , 228px 174px #FFF , 347px 73px #FFF , 266px 252px #FFF , 249px 63px #FFF , 258px 154px #FFF , 41px 55px #FFF , 185px 274px #FFF , 230px 259px #FFF , 384px 38px #FFF , 213px 10px #FFF";
    static String stars2 = "42px 220px #FFF , 41px 126px #FFF , 398px 289px #FFF , 18px 259px #FFF , 373px 265px #FFF , 113px 6px #FFF , 274px 65px #FFF , 48px 139px #FFF , 172px 298px #FFF , 379px 162px #FFF";
    
    static Stream<String> pixelMapper(String in) {
        String x = in.split(" ")[0];
        String y = in.split(" ")[1];
        Integer x0 = Integer.parseInt(x.substring(0, x.indexOf("px")));
        Integer y0 = Integer.parseInt(y.substring(0, y.indexOf("px")));
        
        return Stream.of(in, x0 + 1 + "px " + y0 + "px #FFF-right", x0 + "px " + (y0 + 1) + "px #FFF-down",
                x0 + 1 + "px " + (y0 + 1) + "px #FFF-far" );
    }
    
    static Stream<String> pixelMapper2(String in) {
        String x = in.split(" ")[0];
        String y = in.split(" ")[1];
        Integer x0 = Integer.parseInt(x.substring(0, x.indexOf("px")));
        Integer y0 = Integer.parseInt(y.substring(0, y.indexOf("px")));
        
        return Stream.of( 
                x0 + 0 + "px " + (y0 + 0) + "px #FFF",
                x0 + 0 + "px " + (y0 + 1) + "px #FFF",
                x0 + 0 + "px " + (y0 + 2) + "px #FFF",
                x0 + 1 + "px " + (y0 + 0) + "px #FFF"
                x0 + 1 + "px " + (y0 + 1) + "px #FFF",
                x0 + 1 + "px " + (y0 + 2) + "px #FFF",
                x0 + 2 + "px " + (y0 + 0) + "px #FFF"
                x0 + 2 + "px " + (y0 + 1) + "px #FFF",
                x0 + 2 + "px " + (y0 + 2) + "px #FFF"
                );
    }
    public static void main(String... args) {
        
        Set<String> starc = Arrays.asList(stars.split(",")).stream().map(String::trim)
                .collect(Collectors.toSet());
        System.out.println(starc.size());
        
        Set<String> star1c = Arrays.asList(stars1.split(",")).stream().map(String::trim)
                .map(MakeSense::pixelMapper).flatMap(s -> s)
                .collect(Collectors.toSet());
        System.out.println(star1c.size());
        
        Set<String> star2c = Arrays.asList(stars2.split(",")).stream().map(String::trim)
                .map(MakeSense::pixelMapper2).flatMap(s -> s)
                .collect(Collectors.toSet());
        System.out.println(star2c.size());
        
        Set<String> tmp = new HashSet<>(starc);
        tmp.retainAll(star1c);
        System.out.println(tmp.size());
        tmp = new HashSet<>(starc);
        tmp.retainAll(star2c);
        System.out.println(tmp.size());
        
        tmp = new HashSet<>(star1c);
        tmp.retainAll(star2c);
        System.out.println(tmp.size());
        tmp = new HashSet<>(star1c);
        tmp.retainAll(starc);
        System.out.println(tmp.size());
        
        tmp = new HashSet<>(star2c);
        tmp.retainAll(starc);
        System.out.println(tmp.size());
        tmp = new HashSet<>(star2c);
        tmp.retainAll(star1c);
        System.out.println(tmp.size());
    }

}