From e5b61e16455568ddd2776fdead9ee951a1ad8498 Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Fri, 30 Aug 2024 16:23:04 +0800 Subject: [PATCH 1/7] added commands class --- src/main/java/Commands.java | 2 ++ src/main/java/Duke.java | 10 ---------- src/main/java/MrStripes.java | 10 ++++++++++ 3 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 src/main/java/Commands.java delete mode 100644 src/main/java/Duke.java create mode 100644 src/main/java/MrStripes.java diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java new file mode 100644 index 000000000..1a7a9ec48 --- /dev/null +++ b/src/main/java/Commands.java @@ -0,0 +1,2 @@ +package main.java;public class Commands { +} diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java deleted file mode 100644 index 5d313334c..000000000 --- a/src/main/java/Duke.java +++ /dev/null @@ -1,10 +0,0 @@ -public class Duke { - public static void main(String[] args) { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - } -} diff --git a/src/main/java/MrStripes.java b/src/main/java/MrStripes.java new file mode 100644 index 000000000..8dc00a080 --- /dev/null +++ b/src/main/java/MrStripes.java @@ -0,0 +1,10 @@ +package main.java; + +public class GenericChatbot { + public static void main(String[] args) { + String Greeting = " hello"; + String Goodbye = "goodbye!"; + System.out.println(Greeting); + System.out.println(Goodbye); + } +} From a99766a4c6bdd26d52fa4e50b4c26c5c98c1c038 Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Fri, 30 Aug 2024 16:23:24 +0800 Subject: [PATCH 2/7] added commands class --- src/main/java/Commands.java | 25 ++++++++++++++++++++++++- src/main/java/MrStripes.java | 11 ++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java index 1a7a9ec48..95f430435 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/Commands.java @@ -1,2 +1,25 @@ -package main.java;public class Commands { +package main.java; + +public class Commands { + + private static int MAX_LENGTH = 100; + public String[] lines = new String[MAX_LENGTH]; + public int length = 0; + + public Commands(String[] lines, int length) { + this.lines = lines; + this.length = length; + } + + public Commands() { + } + + public void add(String nextLine) { + this.lines[length] = nextLine; + length++; + + } + public void echo() { + System.out.println(lines[length]); + } } diff --git a/src/main/java/MrStripes.java b/src/main/java/MrStripes.java index 8dc00a080..fbaa20411 100644 --- a/src/main/java/MrStripes.java +++ b/src/main/java/MrStripes.java @@ -1,9 +1,18 @@ package main.java; +import java.util.Scanner; +import Commands.; -public class GenericChatbot { +public class MrStripes { public static void main(String[] args) { String Greeting = " hello"; String Goodbye = "goodbye!"; + Scanner scanner = new Scanner(System.in); + Commands commands = new Commands(); + while (true) { + commands.add(scanner.nextLine()); + commands.echo(); + } + System.out.println(Greeting); System.out.println(Goodbye); } From f17a40fd4b91c4d3d8ccb7e2044a159ddf09316c Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Wed, 4 Sep 2024 09:33:35 +0800 Subject: [PATCH 3/7] added an exit condition. made echo actually work --- src/main/java/Commands.java | 12 +++++++++++- src/main/java/MrStripes.java | 8 +++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java index 95f430435..5bdf9689f 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/Commands.java @@ -6,6 +6,8 @@ public class Commands { public String[] lines = new String[MAX_LENGTH]; public int length = 0; + private boolean isExited = false; + public Commands(String[] lines, int length) { this.lines = lines; this.length = length; @@ -15,11 +17,19 @@ public Commands() { } public void add(String nextLine) { + if (nextLine .equals("exit")){ + this.isExited = true; + + } this.lines[length] = nextLine; length++; } public void echo() { - System.out.println(lines[length]); + System.out.println(lines[length-1]); + } + + public boolean isAcceptingCommands () { + return !isExited; } } diff --git a/src/main/java/MrStripes.java b/src/main/java/MrStripes.java index fbaa20411..1af4503b1 100644 --- a/src/main/java/MrStripes.java +++ b/src/main/java/MrStripes.java @@ -1,19 +1,21 @@ package main.java; + import java.util.Scanner; -import Commands.; public class MrStripes { public static void main(String[] args) { String Greeting = " hello"; String Goodbye = "goodbye!"; + + System.out.println(Greeting); + Scanner scanner = new Scanner(System.in); Commands commands = new Commands(); - while (true) { + while (commands.isAcceptingCommands()) { commands.add(scanner.nextLine()); commands.echo(); } - System.out.println(Greeting); System.out.println(Goodbye); } } From 18ea09879dfc7f13e93a0c1bdf1c01991ad500c2 Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Wed, 4 Sep 2024 09:55:25 +0800 Subject: [PATCH 4/7] added Texts class to contain string constants used by text --- production/ip/Commands.class | Bin 0 -> 1185 bytes production/ip/MrStripes.class | Bin 0 -> 965 bytes production/ip/Texts.class | Bin 0 -> 356 bytes src/main/java/Commands.java | 6 +++--- src/main/java/MrStripes.java | 8 +++----- src/main/java/Texts.java | 6 ++++++ 6 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 production/ip/Commands.class create mode 100644 production/ip/MrStripes.class create mode 100644 production/ip/Texts.class create mode 100644 src/main/java/Texts.java diff --git a/production/ip/Commands.class b/production/ip/Commands.class new file mode 100644 index 0000000000000000000000000000000000000000..f44b642808f7fed41a24da938e1556b1f3863832 GIT binary patch literal 1185 zcmZ`(=}r?-6#i~I?X+deQYbsf;?hN_;%?P|1eK(qv7}M_p+h@?!RbtGrv@KIU%)^9 z(EuhU`T#zZ@w+oqHZ@J|z30q5-*V1PfBpXc6Tm$b69^%!LeUUGRG@c9f2S8L-QFrZ z+1xRzu0ZszX`AkSfp8{UQ4te}EjjhNZr55W5+_Q^Zqu~4;!vS!NTORHVwtwl66k+f zIzslZ73IBN4Sh(F#4_wHcUwTL$n=1QGzQ6Jww8BI*QoKsMhwFOiorO6I7T&$VVsr5 z+qQ0zBAq!#;fpV3H{zJY85L6+rZIC;?E98$)M?9U(`DK(Hl4y#dT=Sx(Ch5ZS)5aG zUc&`s=)&`G@{WMokQJ7FNxKzBo# ze>7-C)+$R*%@F7*v5{--`liub*EcO@QYELVTNS-&$~Z_W?zYKZBubqT6=_hfks)Rq zyRHP0m4D5GvdXSreY2`JI!H!!+o5H%wOFkh4VQ!MV0uqsgDhpI-K-i9O(}=A{6{e- z!P#w4)Bg{l_k?SQ!yYgLfpUHiL$o1BKAij^T zTzDTna_P_IWjN08i-$4Cb&{Mw7dfNkP>CML5HyT4nkHv~U#EOjT*ehf#P`$)?%e9h(xy)}KyzuD8s=|=HpV=vK_BkW-Yl--8p*D+E)3Dl;|+Gl@9_fF zN@c09nCMU{wfO_g9{H0055NRxHF?ZS>d?zg+zQYhaF=LFLiK-ys(gYH{_OEe)shq( YgB*h2kYoTNwM7u>T9Ea(8H8}>4+jg%(*OVf literal 0 HcmV?d00001 diff --git a/production/ip/MrStripes.class b/production/ip/MrStripes.class new file mode 100644 index 0000000000000000000000000000000000000000..ab394e615ea6d168f8052d5f0048bf39b4a81300 GIT binary patch literal 965 zcmZuw>rN9v7(LSh+b+wk<)&3B^+F3s#k&+yL`_UuH7RL={+ezlWpTUPY_~=p#TU@u z@}o^8@d11nAHmC+QV0gxbhh8+obSw;*`I&D{{Zk9FHA%bH85ad5JLjvd-9{qyV9%Y z-&FUM9SRJsJDwA62t>2FN*po74VV^&Vg1)$-fxAf!7jf|&{VNUzha*X<*XA6s84|=RgIFrY3Sda%Ydodn(E7c=bZAVqjKa zq6ck`pY}vW1)4 ziKwjAbey+vOP|hwvUmL$Zqtpr@7JpP%D`QLcqz~}G*yc&TYinyV|v2tcB86-ZCQ1h zNfdosx)m8XI_@V2!d-`;;o=EHffNm?jhfEBKdUZRVO<7wf|BQyDXewmJL^a2(}zLw znBBKez$_lS#QaD(l=g>`Z1$CzWxpNR>ZPN#kDka|(Fcrq+~Kv=p9pxNFvRs9qdcF2 z&%wnm#J67gK38345)Zgq{r?Z~h*2DCC@`bJUl8RNSUZ4`80%o-5HmXmxX{Jr;vv#I zU1Unj9bEm4#PU)H3mq&mT>1LY{l7FAHl7LTJF2g3C!dq*G!B(uwF}xe{FX06vs> zG6=euGxPoDGXMGd{`drNg+m`3=(w-~*l-vIEB?&Gl2=8TW-F0v2Io>%QeQK4PS55p zJO+CvUi6xw8$U$R?0ynY8HUMU=Tz6SDlQm$V^ys+uk@UkjquQ;X~#=ZmWsiR)AaV{ zG4e1VD3n@cuY$oEs|8*CL{?(bJY}Mu@vJ0en5dkWb6(4qe??0#B^hxOd!Q zaVOgr->9S37*62Qrl50#E_^U-8VZQF{&Al&v>_ad+f)%62JG{9us72(q}Zn0VLKE9 P^R}^zJtBsElR5YST_r;e literal 0 HcmV?d00001 diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java index 5bdf9689f..e8d58204b 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/Commands.java @@ -1,8 +1,8 @@ -package main.java; + public class Commands { - private static int MAX_LENGTH = 100; + private static final int MAX_LENGTH = 100; public String[] lines = new String[MAX_LENGTH]; public int length = 0; @@ -12,8 +12,8 @@ public Commands(String[] lines, int length) { this.lines = lines; this.length = length; } - public Commands() { + } public void add(String nextLine) { diff --git a/src/main/java/MrStripes.java b/src/main/java/MrStripes.java index 1af4503b1..8ba9e5c35 100644 --- a/src/main/java/MrStripes.java +++ b/src/main/java/MrStripes.java @@ -1,13 +1,11 @@ -package main.java; + import java.util.Scanner; public class MrStripes { public static void main(String[] args) { - String Greeting = " hello"; - String Goodbye = "goodbye!"; - System.out.println(Greeting); + System.out.println(Texts.GREETINGS); Scanner scanner = new Scanner(System.in); Commands commands = new Commands(); @@ -16,6 +14,6 @@ public static void main(String[] args) { commands.echo(); } - System.out.println(Goodbye); + System.out.println(Texts.GOODBYE); } } diff --git a/src/main/java/Texts.java b/src/main/java/Texts.java new file mode 100644 index 000000000..acf3bae84 --- /dev/null +++ b/src/main/java/Texts.java @@ -0,0 +1,6 @@ + +public class Texts { + public static final String GREETINGS = " hello"; + public static final String GOODBYE = "goodbye"; + +} From c9f4e1cc9f5d615aaf432ae85b01cac0989e4fcf Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Wed, 4 Sep 2024 10:26:20 +0800 Subject: [PATCH 5/7] added list function --- src/main/java/Commands.java | 27 +++++++++++++++++++-------- src/main/java/MrStripes.java | 3 +-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java index e8d58204b..6d14d6fb5 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/Commands.java @@ -3,7 +3,8 @@ public class Commands { private static final int MAX_LENGTH = 100; - public String[] lines = new String[MAX_LENGTH]; + private String[] lines = new String[MAX_LENGTH]; + public int length = 0; private boolean isExited = false; @@ -16,17 +17,27 @@ public Commands() { } - public void add(String nextLine) { - if (nextLine .equals("exit")){ + public void accept(String nextLine) { + if (nextLine.equals("exit")){ this.isExited = true; - + } else if (nextLine.equals("list")) { + this.list(); + } else { + this.lines[length] = nextLine; + this.echo(); + length++; } - this.lines[length] = nextLine; - length++; } - public void echo() { - System.out.println(lines[length-1]); + + private void list() { + for (int i = 0; i < length; i++) { + System.out.println( i +": "+ lines[i]); + } + } + + private void echo() { + System.out.println("added: " + lines[length]); } public boolean isAcceptingCommands () { diff --git a/src/main/java/MrStripes.java b/src/main/java/MrStripes.java index 8ba9e5c35..66e7fe21d 100644 --- a/src/main/java/MrStripes.java +++ b/src/main/java/MrStripes.java @@ -10,8 +10,7 @@ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Commands commands = new Commands(); while (commands.isAcceptingCommands()) { - commands.add(scanner.nextLine()); - commands.echo(); + commands.accept(scanner.nextLine()); } System.out.println(Texts.GOODBYE); From 10b1dd81c6d83a5ae9afc8dc881e801faace6116 Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Wed, 4 Sep 2024 11:27:24 +0800 Subject: [PATCH 6/7] added mark unmark feature. --- src/main/java/Commands.java | 40 +++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java index 6d14d6fb5..4210ca2fb 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/Commands.java @@ -3,44 +3,58 @@ public class Commands { private static final int MAX_LENGTH = 100; - private String[] lines = new String[MAX_LENGTH]; + private Task[] tasks = new Task[MAX_LENGTH]; public int length = 0; private boolean isExited = false; - public Commands(String[] lines, int length) { - this.lines = lines; - this.length = length; - } public Commands() { } public void accept(String nextLine) { - if (nextLine.equals("exit")){ - this.isExited = true; - } else if (nextLine.equals("list")) { - this.list(); - } else { - this.lines[length] = nextLine; + + int index = (nextLine.indexOf(' ')); + String commandKeyword = (index == -1)? nextLine : nextLine.substring(0, index).trim(); + + final String commandText = (index == -1)? nextLine : nextLine.substring(index).trim(); + switch (commandKeyword) { + case "exit" -> this.isExited = true; + case "list" -> this.list(); + case "add" -> { + this.tasks[length] = new Task(nextLine.substring(index)); this.echo(); length++; } + case "mark" -> { + this.tasks[Integer.parseInt(commandText)].setDone(true); + echo(Integer.parseInt(commandText)); + } + case "unmark" -> { + this.tasks[Integer.parseInt(commandText)].setDone(false); + echo(Integer.parseInt(commandText)); + } + } } + private void list() { for (int i = 0; i < length; i++) { - System.out.println( i +": "+ lines[i]); + System.out.println( i +": "+ tasks[i]); } } private void echo() { - System.out.println("added: " + lines[length]); + System.out.println("added: " + tasks[length]); + } + private void echo( int index) { + System.out.println(tasks[index]); } public boolean isAcceptingCommands () { return !isExited; } + } From 73edcfc683c357066a4acef7657001c05b918d93 Mon Sep 17 00:00:00 2001 From: "LAPTOP-52GQO9KI\\zhito" Date: Wed, 4 Sep 2024 11:30:39 +0800 Subject: [PATCH 7/7] added task.java to git --- src/main/java/Task.java | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/Task.java diff --git a/src/main/java/Task.java b/src/main/java/Task.java new file mode 100644 index 000000000..4c453574e --- /dev/null +++ b/src/main/java/Task.java @@ -0,0 +1,36 @@ +public class Task { + private String line; + private boolean isDone; + + public String getLine() { + return line; + } + + public void setLine(String line) { + this.line = line; + } + + public boolean isDone() { + return isDone; + } + + public void setDone(boolean done) { + isDone = done; + } + + public Task(String line, boolean isDone) { + this.line = line; + this.isDone = isDone; + } + + public Task(String line) { + this.line = line; + this.isDone = false; + } + + @Override + public String toString() { + return "[" + (isDone? "X" : " ") + "]" + + line; + } +}