diff --git a/ArcadeReader.java b/ArcadeReader.java index 4c22783..b7e0753 100644 --- a/ArcadeReader.java +++ b/ArcadeReader.java @@ -59,6 +59,6 @@ public class ArcadeReader { * */ public static void retrieveData(Path img) { - new DDRReader().interpretBoxes(img); + new PopnReader().interpretBoxes(img); } } diff --git a/readers/PopnReader.java b/readers/PopnReader.java index 4707f04..6dc712f 100644 --- a/readers/PopnReader.java +++ b/readers/PopnReader.java @@ -19,6 +19,7 @@ import readers.fonts.Glyph; public class PopnReader extends Reader{ List extraRegions = new ArrayList<>(); static int lastJump=0; + boolean failed=false; public PopnReader(){ addRegion(new Box(941,609,275,54),NUMBER); //score[0] addRegion(new Box(1060,684,157,40),NUMBER); //cool[1] @@ -153,6 +154,15 @@ public class PopnReader extends Reader{ subRegion.setRGB(0,0,readRegions.get(i).w,readRegions.get(i).h,arr,0,readRegions.get(i).w); ImageIO.write(subRegion,"png",new File("sub.png")); cutImg.setRGB(0,currentHeight,readRegions.get(i).w,readRegions.get(i).h,arr,0,readRegions.get(i).w); + + if (i==9) { + Color col = new Color(subRegion.getRGB(365,5),true); + ColorRange range = new ColorRange(230,255,70,90,80,105); + if (!range.colorInRange(col)) { + failed=true; + } + } + String val = interpretImage(subRegion,i); sig_data[counter++]=val; currentHeight+=readRegions.get(i).h+REGION_PADDING; @@ -230,6 +240,20 @@ public class PopnReader extends Reader{ case 7:{ title=convertToString(splitter); }break; + case 9:{ + other="{failed:"+failed+"}"; + if (score>=98000) {rank=0;/*S*/} else + if (score>=95000) {rank=1;/*AAA*/} else + if (score>=90000) {rank=2;/*AA*/} else + if (score>=82000) {rank=3;/*A*/} else + if (score>=72000) {rank=4;/*B*/} else + if (score>=62000) {rank=5;/*C*/} else + if (score>=50000) {rank=6;/*D*/} else + {rank=7;/*E*/} + if (failed) { + rank=Math.max(rank,5);/*F*/ + } + }break; } } System.out.println(this); diff --git a/readers/Reader.java b/readers/Reader.java index f19a333..2d015cf 100644 --- a/readers/Reader.java +++ b/readers/Reader.java @@ -83,7 +83,9 @@ public abstract class Reader{ System.out.println(" belongs to region "+j+"."); finalData[j]=finalData[j]+"\n"+en_data[i+8] .substring(1,en_data[i+8].length()-1); //The beginning and endings have a ', so we remove it. - accuracy[j]=Double.parseDouble(en_data[i+9]); + if (Double.parseDouble(en_data[i+9])>accuracy[j]) { + accuracy[j]=Double.parseDouble(en_data[i+9]); + } break; } spacing+=readRegions.get(j).h+REGION_PADDING; diff --git a/result.png b/result.png index 8a290f5..14affb0 100644 Binary files a/result.png and b/result.png differ diff --git a/sigPlace.java b/sigPlace.java index 71b7803..fa5470b 100644 --- a/sigPlace.java +++ b/sigPlace.java @@ -116,7 +116,7 @@ public class sigPlace { // TODO Auto-generated catch block e.printStackTrace(); }*/ - ArcadeReader.retrieveData(Paths.get("ddr10.png")); + ArcadeReader.retrieveData(Paths.get("popn5.png")); /* Path secretFile = Paths.get(".clientsecret"); List data; try { diff --git a/sub.png b/sub.png index bcf1cd0..2994a77 100644 Binary files a/sub.png and b/sub.png differ