Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Xuan] Duke Increments #353

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
14 changes: 14 additions & 0 deletions src/main/java/Deadline.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
public class Deadline extends Task {

protected String by;

public Deadline(String description, String by) {
super(description);
this.by = by;
}

@Override
public String toString() {
return "[D]" + super.toString() + " (" + by + ")";
}
}
72 changes: 70 additions & 2 deletions src/main/java/Duke.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,78 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
import static java.lang.Integer.parseInt;

public class Duke {
public static void main(String[] args) {
public static void main(String[] args) throws DukeException {
String logo = " ____ _ \n"
+ "| _ \\ _ _| | _____ \n"
+ "| | | | | | | |/ / _ \\\n"
+ "| |_| | |_| | < __/\n"
+ "|____/ \\__,_|_|\\_\\___|\n";
System.out.println("Hello from\n" + logo);

String line = " -----------------------------------------------------------------\n";
String tab = " ";
String greet = line
+ tab + "Hello! I'm Duke\n"
+ tab + "What can I do for you?\n"
+ line;
System.out.println(greet);

ArrayList<Task> list = new ArrayList<Task>();
Scanner input = new Scanner(System.in);

while (!input.hasNext("bye")) {
String next = input.nextLine();
if (next.contains("done")) {
String[] sub = next.split(" ");
list.get(parseInt(sub[1])).markAsDone();
System.out.println(line + tab + "Nice! I've marked this task as done: \n" +
tab + list.get(parseInt(sub[1])) + "\n" + line);
} else if (next.contains("list")) {
System.out.print(line + tab + "Here are the tasks in your list: \n");
for (int i = 0; i < list.size(); i++) {
System.out.println(tab + list.get(i));
}
System.out.print(line);
} else if (next.contains("todo")) {
Task toDo = new ToDo(next.replace("todo", ""));
list.add(toDo);
System.out.println(line + tab + "Got it. I've added this task:");
System.out.println(tab + toDo);
System.out.println(tab + "Now you have " + list.size() + " tasks in the list.\n" + line);
} else if (next.contains("deadline")) {
String deadline = next.split("/")[1];
String description = next.split("/")[0].replace("deadline ", "");
Task dlTask = new Deadline(description, deadline);
list.add(dlTask);
System.out.println(line + tab + "Got it. I've added this task:");
System.out.println(tab + dlTask);
System.out.println(tab + "Now you have " + list.size() + " tasks in the list.\n" + line);
} else if (next.contains("event")) {
String time = next.split("/")[1];
String description = next.split("/")[0].replace("event ", "");
Task eventTask = new Event(description, time);
list.add(eventTask);
System.out.println(line + tab + "Got it. I've added this task:");
System.out.println(tab + eventTask);
System.out.println(tab + "Now you have " + list.size() + " tasks in the list.\n" + line);
} else if (next.contains("delete")){
int index = Integer.parseInt(next.replace("delete" , "").trim());
Task deleted = list.remove( index - 1);
System.out.println(line + tab + "Noted. I've removed this task: ");
System.out.println(tab + deleted);
System.out.println(tab + "Now you have " + list.size() + " tasks in the list.\n" + line);
} else {
// Task t = new Task(next);
// System.out.println(line + " added: " + t.getDescription() + "\n" + line);
// list.add(t);
throw new DukeException(" ____________________________________________________________\n" +
" ☹ OOPS!!! I'm sorry, but I don't know what that means :-(\n" +
" ____________________________________________________________\n");
}
}
System.out.println(line + " Bye. Hope to see you again soon!\n" + line);
}
}
}
5 changes: 5 additions & 0 deletions src/main/java/DukeException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
public class DukeException extends Exception {
public DukeException (String exception) {
super(exception);
}
}
14 changes: 14 additions & 0 deletions src/main/java/Event.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
public class Event extends Task {

protected String time;

public Event(String description, String time) {
super(description);
this.time = time;
}

@Override
public String toString() {
return "[E]" + super.toString() + " (" + time + ")";
}
}
31 changes: 31 additions & 0 deletions src/main/java/Task.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
public class Task {
private String description;
private boolean isDone;

public Task(String description) {
this.description = description;
this.isDone = false;
}

public String getStatusIcon() {
if (isDone) {
return "\u2713";
} else {
return "\u2718";
}
}

public String getDescription() {
return description;
}

public String markAsDone() {
isDone = true;
return getStatusIcon();
}

@Override
public String toString() {
return "[" + getStatusIcon() + "] " + description;
}
}
11 changes: 11 additions & 0 deletions src/main/java/ToDo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
public class ToDo extends Task {

public ToDo(String description) {
super(description);
}

@Override
public String toString() {
return "[T]" + super.toString();
}
}