Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'eclipse'

version = '1.0.0'
Expand All @@ -14,4 +15,24 @@ dependencies {
compile('ch.qos.logback:logback-classic:1.2.3')
testCompile('junit:junit:4.12')
testCompile('org.assertj:assertj-core:3.9.0')
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
buildscript {
ext.kotlin_version = '1.2.71'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
8 changes: 4 additions & 4 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions mvnw

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions mvnw.cmd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions src/main/java/connrdinates/MainController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package connrdinates;

import connrdinates.domain.*;
import connrdinates.util.MainControllerUtil;
import connrdinates.view.InputView;
import connrdinates.view.ResultView;
import org.slf4j.Logger;


import java.util.List;

import static org.slf4j.LoggerFactory.getLogger;

public class MainController {

private static final Logger log = getLogger(MainController.class);

public static void main(String[] args) {
List<Point> point = MainControllerUtil.alignmentNumber(InputView.pointInput());

// Figure figure = new Rectangle(point);
Figure a = new Line(point);

ResultView.graphWidthLine(point);
ResultView.height();
// ResultView.area(figure);
ResultView.area(a);
}
}
6 changes: 6 additions & 0 deletions src/main/java/connrdinates/domain/Area.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package connrdinates.domain;

@FunctionalInterface
public interface Area {
public double area();
}
15 changes: 15 additions & 0 deletions src/main/java/connrdinates/domain/Figure.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package connrdinates.domain;

import java.util.List;

public abstract class Figure implements Area{
List<Point> points;

public Figure(List<Point> points){
this.points = points;
}

abstract public boolean valid();

abstract public String name();
}
25 changes: 25 additions & 0 deletions src/main/java/connrdinates/domain/FigureFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package connrdinates.domain;

import org.slf4j.Logger;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.slf4j.LoggerFactory.getLogger;

public class FigureFactory {
private static final Logger log = getLogger(FigureFactory.class);

public static Figure criteFigure(List<Point> point){
return figureList(point).get(point.size());
}

public static Map<Integer, Figure> figureList(List<Point> points){
Map<Integer, Figure> figureList = new HashMap<>();
figureList.put(2, new Line(points));
figureList.put(3, new Triangle(points));
figureList.put(4, new Rectangle(points));
return figureList;
}
}
43 changes: 43 additions & 0 deletions src/main/java/connrdinates/domain/Line.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package connrdinates.domain;

import org.slf4j.Logger;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import static org.slf4j.LoggerFactory.getLogger;

public class Line extends Figure{

private static final int SIZE = 2;
private static final String NAME = "Line";
private static final Logger log = getLogger(Line.class);

public Line(List<Point> points) {
super(points);

if(!valid()){
throw new IllegalArgumentException("중복된 좌표가 있습니다. 다시 입력하세요.");
}
}

@Override
public boolean valid() {
Set<Point> pointSize = new HashSet<>();
for (Point point : points) {
pointSize.add(point);
}
return pointSize.size() == SIZE;
}

@Override
public String name(){
return NAME;
}

@Override
public double area() {
return points.get(0).getMath(points.get(1));
}
}
51 changes: 51 additions & 0 deletions src/main/java/connrdinates/domain/Point.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package connrdinates.domain;

public class Point implements Comparable<Point> {

private int x;
private int y;

public Point(int x, int y){
this.x = x;
this.y = y;
}

public int getX() {
return x;
}

public int getY() {
return y;
}


public boolean checkX(int i){
return x == i;
}

public boolean checkY(int i){
return y == i;
}


public double getMath(Point Point){
return Math.sqrt(Math.pow(Math.abs(Point.getX()-x),2)+Math.pow(Math.abs(Point.getY()-y),2));
}

@Override
public int compareTo(Point Point) {
if(this.y > Point.y) return -1;
if(this.y < Point.y) return 1;
if(this.x > Point.x) return 1;
if(this.x < Point.x) return -1;
return 0;
}

@Override
public String toString() {
return "Point{" +
"x=" + x +
", y=" + y +
'}' + System.lineSeparator();
}
}
46 changes: 46 additions & 0 deletions src/main/java/connrdinates/domain/Rectangle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package connrdinates.domain;

import org.slf4j.Logger;

import java.util.List;

import static org.slf4j.LoggerFactory.getLogger;

public class Rectangle extends Figure {
private static final int SIZE = 4;
private static final String NAME = "Rectangle";
private static final Logger log = getLogger(Rectangle.class);

public Rectangle(List<Point> points) {
super(points);

if(!valid()){
throw new IllegalArgumentException("사각형의 형태가 아닙니다. 다시 입력하세요.");
}

}

public boolean sizeCheck(){
return points.size() == SIZE;
}

@Override
public boolean valid(){
if(points.get(0).getMath(points.get(3))/2 == points.get(1).getMath(points.get(2))/2 && sizeCheck()){
return true;
}
return false;
}

@Override
public String name(){
return NAME;
}

@Override
public double area(){
double x = points.get(0).getMath(points.get(1));
double y = points.get(0).getMath(points.get(2));
return x*y;
}
}
Loading