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

[lckjosh] iP #74

Open
wants to merge 37 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
9af57b0
add greeting feature and exit
lckjosh Aug 30, 2023
f35e5e1
rename bot to BotBuddy
lckjosh Aug 30, 2023
c4e3f6e
add echo feature
lckjosh Sep 5, 2023
d219a1f
add ability to add items and list them
lckjosh Sep 5, 2023
2d8c682
create Task class
lckjosh Sep 5, 2023
663cf7c
add ability to mark and unmark tasks as done
lckjosh Sep 5, 2023
87a3330
follow coding standard
lckjosh Sep 5, 2023
e4200c5
categorise tasks into Todo, Event, and Deadline
lckjosh Sep 12, 2023
2a749bc
create methods for each command and call the methods in switch statement
lckjosh Sep 12, 2023
8060406
use do-while loop
lckjosh Sep 12, 2023
bd0006b
add input and output testing
lckjosh Sep 12, 2023
1d647e3
handle unrecognised commands
lckjosh Sep 13, 2023
9e488c2
create BotBuddyException exception
lckjosh Sep 13, 2023
e2e415d
add error handling
lckjosh Sep 13, 2023
704093c
Merge branch 'branch-Level-5'
lckjosh Sep 13, 2023
00bb9a7
put classes in BotBuddy package
lckjosh Sep 13, 2023
a18d4c0
Merge branch 'branch-A-Packages'
lckjosh Sep 13, 2023
3223c2a
rename Duke.java to BotBuddy.java
lckjosh Sep 19, 2023
5637b71
use ArrayList<Task> to store Tasks instead of an array
lckjosh Sep 19, 2023
e1dee36
add ability to delete tasks
lckjosh Sep 19, 2023
713b1a3
Merge branch 'branch-Level-6'
lckjosh Sep 19, 2023
8254280
add ability to save and read from file
lckjosh Sep 19, 2023
995547b
auto create task file and directory if not found
lckjosh Sep 19, 2023
8e41dc0
Merge branch 'branch-Level-7'
lckjosh Sep 19, 2023
722041b
remove duplicate check if directory is created
lckjosh Sep 19, 2023
a9e8f7d
update gitignore
lckjosh Sep 19, 2023
a2c02d8
refactor code to make it more OOP
lckjosh Oct 2, 2023
f95d5a1
add ability to find tasks
lckjosh Oct 4, 2023
3957ae9
Merge pull request #1 from lckjosh/branch-Level-9
lckjosh Oct 4, 2023
2868ee6
updated list of supported commands
lckjosh Oct 4, 2023
1ec406b
update README
lckjosh Oct 4, 2023
ff1c2ca
fix READMEs
lckjosh Oct 4, 2023
51145c6
add javadocs
lckjosh Oct 6, 2023
690e241
edit javadoc
lckjosh Oct 6, 2023
59e9b5e
Merge pull request #2 from lckjosh/A-JavaDoc
lckjosh Oct 6, 2023
54dd0f9
edit javadocs
lckjosh Oct 6, 2023
63a2454
Merge pull request #3 from lckjosh/branch-A-JavaDoc
lckjosh Oct 6, 2023
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
Prev Previous commit
Next Next commit
use ArrayList<Task> to store Tasks instead of an array
lckjosh committed Sep 19, 2023
commit 5637b7124ca66e1c911f00cf5c5857cb40dc1caf
53 changes: 29 additions & 24 deletions src/main/java/BotBuddy/BotBuddy.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package BotBuddy;

import java.util.ArrayList;
import java.util.Scanner;

public class BotBuddy {

private static ArrayList<Task> tasks = new ArrayList<>();

public static void main(String[] args) {
printUnderscores();
System.out.println("Hello from BotBuddy!");
System.out.println("What can I do for you?");
printUnderscores();
Task[] tasks = new Task[100];
String input;
String[] inputArr;
String command = "";
@@ -21,31 +24,33 @@ public static void main(String[] args) {
command = inputArr[0];
if (inputArr.length == 2) {
parameters = inputArr[1];
} else {
parameters = "";
}

switch (command) {
case "todo":
addTodo(tasks, parameters);
addTodo(parameters);
break;

case "event":
addEvent(tasks, parameters);
addEvent(parameters);
break;

case "deadline":
addDeadline(tasks, parameters);
addDeadline(parameters);
break;

case "list":
listTasks(tasks);
listTasks();
break;

case "mark":
markTask(tasks, parameters);
markTask(parameters);
break;

case "unmark":
unmarkTask(tasks, parameters);
unmarkTask(parameters);
break;

case "bye":
@@ -62,7 +67,7 @@ public static void printUnderscores() {
System.out.println("____________________________________________________________");
}

public static void addTodo(Task[] tasks, String parameters) {
public static void addTodo(String parameters) {
try {
validateInput("todo", parameters);
} catch (BotBuddyException e) {
@@ -73,14 +78,14 @@ public static void addTodo(Task[] tasks, String parameters) {
}
// add todo
int noOfTasks = Task.getNoOfTasks();
tasks[noOfTasks] = new Todo(parameters);
tasks.add(new Todo(parameters));
printUnderscores();
System.out.println("Got it, I've added this task:");
System.out.println(tasks[noOfTasks]);
System.out.println(tasks.get(noOfTasks));
printUnderscores();
}

public static void addEvent(Task[] tasks, String parameters) {
public static void addEvent(String parameters) {
try {
validateInput("event", parameters);
} catch (BotBuddyException e) {
@@ -96,14 +101,14 @@ public static void addEvent(Task[] tasks, String parameters) {
eventDetails = eventDetails[1].split("/to");
String eventFrom = eventDetails[0].trim();
String eventTo = eventDetails[1].trim();
tasks[noOfTasks] = new Event(eventName, eventFrom, eventTo);
tasks.add(new Event(eventName, eventFrom, eventTo));
printUnderscores();
System.out.println("Got it, I've added this task:");
System.out.println(tasks[noOfTasks]);
System.out.println(tasks.get(noOfTasks));
printUnderscores();
}

public static void addDeadline(Task[] tasks, String parameters) {
public static void addDeadline(String parameters) {
try {
validateInput("deadline", parameters);
} catch (BotBuddyException e) {
@@ -117,14 +122,14 @@ public static void addDeadline(Task[] tasks, String parameters) {
String[] deadlineDetails = parameters.split("/by");
String deadlineName = deadlineDetails[0].trim();
String deadlineBy = deadlineDetails[1].trim();
tasks[noOfTasks] = new Deadline(deadlineName, deadlineBy);
tasks.add(new Deadline(deadlineName, deadlineBy));
printUnderscores();
System.out.println("Got it, I've added this task:");
System.out.println(tasks[noOfTasks]);
System.out.println(tasks.get(noOfTasks));
printUnderscores();
}

public static void listTasks(Task[] tasks) {
public static void listTasks() {
int noOfTasks = Task.getNoOfTasks();
if (noOfTasks == 0) {
printUnderscores();
@@ -135,12 +140,12 @@ public static void listTasks(Task[] tasks) {
// print out tasks
printUnderscores();
for (int i = 0; i < noOfTasks; i++) {
System.out.println(i + 1 + ". " + tasks[i]);
System.out.println(i + 1 + ". " + tasks.get(i));
}
printUnderscores();
}

public static void markTask(Task[] tasks, String parameters) {
public static void markTask(String parameters) {
try {
validateInput("mark", parameters);
} catch (BotBuddyException e) {
@@ -150,14 +155,14 @@ public static void markTask(Task[] tasks, String parameters) {
return;
}
int taskToMark = Integer.parseInt(parameters) - 1;
tasks[taskToMark].markAsDone();
tasks.get(taskToMark).markAsDone();
printUnderscores();
System.out.println("I've marked this task as done:");
System.out.println(tasks[taskToMark]);
System.out.println(tasks.get(taskToMark));
printUnderscores();
}

public static void unmarkTask(Task[] tasks, String parameters) {
public static void unmarkTask(String parameters) {
try {
validateInput("unmark", parameters);
} catch (BotBuddyException e) {
@@ -167,10 +172,10 @@ public static void unmarkTask(Task[] tasks, String parameters) {
return;
}
int taskToUnmark = Integer.parseInt(parameters) - 1;
tasks[taskToUnmark].markAsUndone();
tasks.get(taskToUnmark).markAsUndone();
printUnderscores();
System.out.println("I've unmarked this task:");
System.out.println(tasks[taskToUnmark]);
System.out.println(tasks.get(taskToUnmark));
printUnderscores();
}