From 43e2eea54ddd4079704f227a7d7a79cc1fd599b2 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 7 Oct 2022 15:57:50 +0300 Subject: [PATCH 1/4] created mpv with working expression tasks --- lab-01/.idea/.gitignore | 8 ++ lab-01/.idea/misc.xml | 6 ++ lab-01/.idea/modules.xml | 8 ++ lab-01/.idea/vcs.xml | 6 ++ lab-01/HelloWorld.iml | 11 ++ .../HelloWorld/ExpressionTask.class | Bin 0 -> 858 bytes .../HelloWorld/ExpressionTaskGenerator.class | Bin 0 -> 2533 bytes lab-01/out/production/HelloWorld/Main.class | Bin 0 -> 2656 bytes lab-01/out/production/HelloWorld/Quiz.class | Bin 0 -> 2403 bytes .../production/HelloWorld/Randomizer.class | Bin 0 -> 497 bytes lab-01/out/production/HelloWorld/Result.class | Bin 0 -> 968 bytes lab-01/out/production/HelloWorld/Task.class | Bin 0 -> 180 bytes .../production/HelloWorld/TaskGenerator.class | Bin 0 -> 137 bytes lab-01/src/ExpressionTask.java | 20 ++++ lab-01/src/ExpressionTaskGenerator.java | 78 ++++++++++++++ lab-01/src/Main.java | 30 ++++++ lab-01/src/Quiz.java | 99 ++++++++++++++++++ lab-01/src/Randomizer.java | 6 ++ lab-01/src/Result.java | 5 + lab-01/src/Task.java | 15 +++ lab-01/src/TaskGenerator.java | 3 + 21 files changed, 295 insertions(+) create mode 100644 lab-01/.idea/.gitignore create mode 100644 lab-01/.idea/misc.xml create mode 100644 lab-01/.idea/modules.xml create mode 100644 lab-01/.idea/vcs.xml create mode 100644 lab-01/HelloWorld.iml create mode 100644 lab-01/out/production/HelloWorld/ExpressionTask.class create mode 100644 lab-01/out/production/HelloWorld/ExpressionTaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/Main.class create mode 100644 lab-01/out/production/HelloWorld/Quiz.class create mode 100644 lab-01/out/production/HelloWorld/Randomizer.class create mode 100644 lab-01/out/production/HelloWorld/Result.class create mode 100644 lab-01/out/production/HelloWorld/Task.class create mode 100644 lab-01/out/production/HelloWorld/TaskGenerator.class create mode 100644 lab-01/src/ExpressionTask.java create mode 100644 lab-01/src/ExpressionTaskGenerator.java create mode 100644 lab-01/src/Main.java create mode 100644 lab-01/src/Quiz.java create mode 100644 lab-01/src/Randomizer.java create mode 100644 lab-01/src/Result.java create mode 100644 lab-01/src/Task.java create mode 100644 lab-01/src/TaskGenerator.java diff --git a/lab-01/.idea/.gitignore b/lab-01/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/lab-01/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/lab-01/.idea/misc.xml b/lab-01/.idea/misc.xml new file mode 100644 index 0000000..d15472f --- /dev/null +++ b/lab-01/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lab-01/.idea/modules.xml b/lab-01/.idea/modules.xml new file mode 100644 index 0000000..e3c7927 --- /dev/null +++ b/lab-01/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/lab-01/.idea/vcs.xml b/lab-01/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/lab-01/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lab-01/HelloWorld.iml b/lab-01/HelloWorld.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/lab-01/HelloWorld.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/ExpressionTask.class b/lab-01/out/production/HelloWorld/ExpressionTask.class new file mode 100644 index 0000000000000000000000000000000000000000..33a9c6f40dbb53c229a6b9c97fefe57855e1a146 GIT binary patch literal 858 zcmZWn+iuf95IvjN+1falCZ*+4pj;a}rQtoOF9>)bG*T0V%S*LMSHZ386nkCzEBr;N zs6agM0elo<)^dWb2a0Bw6KC3 z95)@@!fnFu$T$h8nL_Uk!$LO;NzDrGIJm2?nD2Ia+pjs+7>ul!xmvmYnOb?q9TMQh zbWbu=yM8FQlf#jW24WOYrrw>7MKBbRuj4#vs82q%QtQqSuft$nPLCvK)1fg zJ{m1Tmw%%675og#r)OBzRK-+hCDo%Jc$u_RQ_AHGcB!!et&HJmiegoAH&ZR`e;9_S ACjbBd literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/ExpressionTaskGenerator.class b/lab-01/out/production/HelloWorld/ExpressionTaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..cbef3ae5625ffda1de120f0ed0b4c6327e79380c GIT binary patch literal 2533 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 literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/Quiz.class b/lab-01/out/production/HelloWorld/Quiz.class new file mode 100644 index 0000000000000000000000000000000000000000..10fefc9c8812d79c6eae451f51bf6e00550565f2 GIT binary patch literal 2403 zcmZuzTUQfj6x|aNh9qAk7{yDmTI~gbO0BfjVik*mkr0qX5Vgi3OmQ^K&}4#_*4Ey% zwQqg&tuOl0wQOAym+e~p0sTi^tF7H{J=-%nebp?v8k&z-w&fnx(A3#A5k(84I${cOC=KB=HS3m!RH;^} zn6_JVjq0_cU7MRWD;l(nXm3zx71j2VL!FXaH0>16cPo}X+t-yHH>+ZSV~`xScdHtRBLx|33x<6h}VY45j z<@98v;tbO?<``WsJ`~E37F&Zf)~Iw%NNoKI$MF%XZB++Jqv{oN#v{^saeqSLBnJ80 zsgY+Zp2k>;6;CZVrI3-vwAkhiSIQ`*9ahLI2S<_>#PR@)eBfG9??cPRS@w7!^x?2g0y>#j45_$ZjCBqRSJ>ZyCA) z8GI`Ei$G9b>KbdBca74u5o10;-NH6!mZsmM;?fvIsabLTMWkv~SuIP*%@uE$n3wOO zk^g-L*z+sz{TMcQ*c*|c=PlUe`BT3AvOms6fPIWs;w>&9-Ouq> z2rE#{ftiHd?yD_B#PJ2b^zOMq0utD2i7(IYF*>hTH{0O8gsA% z&joTo!rqpyW8VWrc^tU+*n5lQp7WTOeo6d>^^>{B*|dQM;B5`1Aq5gd{2G!u3922W zd6*zS{(;`9CwT7}j${da>;dLh@#F~xC?0x_(;Di?b=OfCN$;&=GRK>Jb)2uGxbF$3 zAClLkR6;0~c=X~KWuH7G;VDasEJ=YC2vQZgp14&R1V5+K{Feb3BHd5% zD}$Xljr|yAU$Z!j5oVdAWE2IAVUk<#67t-kXIZ`p=6{akFonA~kNaGv!oD<9J%~Yk zL(YYW(2s9n(ihVYY81yE{;B+q#koUiJ0kxeuA}!~4C}b7<3jRpB!!*d^EQMZ{s&`h B;o<-Q literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/Randomizer.class b/lab-01/out/production/HelloWorld/Randomizer.class new file mode 100644 index 0000000000000000000000000000000000000000..8736711a9f5515de18357025a0b7a143effa9641 GIT binary patch literal 497 zcmYLG%TB^T6g^W4<6-TDQHCa3Y4xx$C=8 zn;~U3yLn`h(~#FufX=Y7reE`DNaT?F{a})iElJ+cVW7m2^~FnM1#_Q4HLa$lq0ErK zOW5wK2noIj`hvmexW2fFCp{59@SaCVxf3|t>+;Z*`3h8{p*v&HJ8OwEn&(RRBIMCZ zfFW(#cGG4kc)?tRPrV@a`wUDX@pQUIQq!4BxJ5JF2XW|#OIIFktkqBDRnfpEJ(yey zNF5onTa>lPGxF(^Pq2@qyiHb?L3@X+{!c&!yOiayhkZh1^CR(8@|7htV~Jv5R~Lpk u7}pl&*m--WiUO%7{|ZP^ubL>sXWljf7L3HyAgv^k+5D6Gy7~%(0uws`|5-9s!$`ZF| zH2dt2GM;-W4l~=Nx92&}d3nyczkYxF380J@DkO$*)1FLSKLQ5XfPyfC)OgLH)#i>O z_h<$p+@rj0HtL5QSutR6Bv!3g8qMZGrTxBIe{`mOmX6FO<%7Xnm!=8^}v81@a-37WK+S z2E8?!j{Ej2hj+I!-+zuzeZN406Lf3j{dImv06OVLh?DLC5Kr=*6GI_9jcwv*$l9cn zKl%*Oueg2z^D|itS^9>BkNTzc?gac@NCMSOmOaPX1sLZ`|L`9ZV$4~1f}HTv4vEDp z77(HrP_sL!Go-!<_j0+*a20vpI-UwnA+Ga<294w)6AC24Kft=78A7eDJcHWmDl?kX zRTUbZQSG_vW)PhFPO;{_&>8NZA|#AWSs1D?9w@@l&#`riC~tK>8B@edh?0^d{qv@z Mpv~vlC7y)6KUKo5cK`qY literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/Task.class b/lab-01/out/production/HelloWorld/Task.class new file mode 100644 index 0000000000000000000000000000000000000000..fe585e5b476fe209ff1e0f83f5a522f892433951 GIT binary patch literal 180 zcmX^0Z`VEs1_nC@ZgvJHMh2FU#Nupr1{OvJfvm)`ME#t^ymWp4q^#8B5=I90^wg4& z)CwR=L_^aDAs<{)l$n=q&B(w}mY9>7l30?;$RMMEsX)^wD7CmWrv#{yD>%QjC^^+F tGY6=a6J)6#$UHVi21W*EpnDh?n1F6zWng0fxrLp911JJi2oh)D0swDhDoOwV literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/TaskGenerator.class b/lab-01/out/production/HelloWorld/TaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..6027fb47298753fc7a695c7206ce79318192f0f5 GIT binary patch literal 137 zcmX^0Z`VEs1_nC@PId++Mh4!H#NurC)V$Q9#FG3Xb_Nzk27#=^vPAuy#JqHU|D>$c zb|A^bzySa)P9OaM literal 0 HcmV?d00001 diff --git a/lab-01/src/ExpressionTask.java b/lab-01/src/ExpressionTask.java new file mode 100644 index 0000000..f7bd635 --- /dev/null +++ b/lab-01/src/ExpressionTask.java @@ -0,0 +1,20 @@ +import java.util.Objects; + +public class ExpressionTask implements Task { + public ExpressionTask(String statement, String answer) { + statement_ = statement; + answer_ = answer; + } + public String getText(){ + return statement_; + } + public Result validate(String answer){ + if (Objects.equals(answer, answer_)) { + return Result.OK; + } else { + return Result.WRONG; + } + } + String statement_; + String answer_; +} diff --git a/lab-01/src/ExpressionTaskGenerator.java b/lab-01/src/ExpressionTaskGenerator.java new file mode 100644 index 0000000..f8839f6 --- /dev/null +++ b/lab-01/src/ExpressionTaskGenerator.java @@ -0,0 +1,78 @@ +public class ExpressionTaskGenerator implements TaskGenerator { + ExpressionTaskGenerator( + int minNumber, + int maxNumber, + boolean generateSum, + boolean generateDifference, + boolean generateMultiplication, + boolean generateDivision + ) { + minNumber_ = minNumber; + maxNumber_ = maxNumber; + generateSum_ = generateSum; + generateDifference_ = generateDifference; + generateMultiplication_ = generateMultiplication; + generateDivision_ = generateDivision; + } + + private String ParseTask(int first, int second, char operator) { + String ans = Integer.toString(first); + ans += operator; + ans += Integer.toString(second); + return ans; + } + + public ExpressionTask generate() { + int first = Randomizer.GenerateNumber(minNumber_, maxNumber_); + int second = Randomizer.GenerateNumber(minNumber_, maxNumber_); + char[] enable_operators = new char[4]; + enable_operators[0] = '0'; + enable_operators[1] = '0'; + enable_operators[2] = '0'; + enable_operators[3] = '0'; + if (generateSum_) { + enable_operators[0] = '+'; + } + if (generateDifference_) { + enable_operators[1] = '-'; + } + if (generateMultiplication_) { + enable_operators[2] = '*'; + } + if (generateDivision_) { + enable_operators[3] = '/'; + } + char operator = '0'; + while (operator == '0') { + int index = Randomizer.GenerateNumber(0, 4); + operator = enable_operators[index]; + } + return new ExpressionTask(ParseTask(first, second, operator), CalculateAnswer(first, second, operator)); + } + + String CalculateAnswer(int first, int second, char operator) { + if (operator == '+') { + return Integer.toString(first + second); + } + if (operator == '-') { + return Integer.toString(first - second); + } + if (operator == '*') { + return Integer.toString(first * second); + } + if (operator == '/') { + if (second == 0) { + second = 1; + } + return Integer.toString(first / second); + } + return "bad input"; // bad + } + + int minNumber_; + int maxNumber_; + boolean generateSum_ = false; + boolean generateDifference_ = false; + boolean generateMultiplication_ = false; + boolean generateDivision_ = false; +} diff --git a/lab-01/src/Main.java b/lab-01/src/Main.java new file mode 100644 index 0000000..19785fc --- /dev/null +++ b/lab-01/src/Main.java @@ -0,0 +1,30 @@ +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Scanner; + + +public class Main { + static Map getQuizMap() { + Map generators = new HashMap<>(); + generators.put("Expression mode (5 tasks)", new Quiz(new ExpressionTaskGenerator(0, 10, true, true, true, true), 5)); + generators.put("Expression mode (10 tasks)", new Quiz(new ExpressionTaskGenerator(0, 10, true, true, true, true), 10)); + generators.put("Expression mode (15 tasks)", new Quiz(new ExpressionTaskGenerator(0, 10, true, true, true, true), 15)); + return generators; + } + public static void main(String[] args) { + System.out.println("Choose task mode:"); + Map generators = getQuizMap(); + for (Map.Entry it : generators.entrySet()) + { + System.out.println(it.getKey()); + } + Scanner in = new Scanner(System.in); + String mode = in.nextLine(); + System.out.println("Choose tasks count:"); + String count = in.nextLine(); + generators.get(mode + " mode " + "(" + count + " tasks)").StartQuiz(); + + in.close(); + } +} \ No newline at end of file diff --git a/lab-01/src/Quiz.java b/lab-01/src/Quiz.java new file mode 100644 index 0000000..d1080e2 --- /dev/null +++ b/lab-01/src/Quiz.java @@ -0,0 +1,99 @@ +import java.util.Scanner; + +public class Quiz { + /** + * @param generator генератор заданий + * @param taskCount количество заданий в тесте + */ + Quiz(TaskGenerator generator, int taskCount) { + generator_ = generator; + task_count = taskCount; + } + + /** + * @return задание, повторный вызов вернет слелующее + * @see Task + */ + Task nextTask() { + current_task_ = generator_.generate(); + current_task_number++; + return current_task_; + } + + /** + * Предоставить ответ ученика. Если результат {@link Result#INCORRECT_INPUT}, то счетчик неправильных + * ответов не увеличивается, а {@link #nextTask()} в следующий раз вернет тот же самый объект {@link Task}. + */ + Result provideAnswer(String answer) { + return current_task_.validate(answer); + } + + /** + * @return завершен ли тест + */ + boolean isFinished() { + return current_task_number >= task_count; + } + + /** + * @return количество правильных ответов + */ + int getCorrectAnswerNumber() { + return correct_answers_count_; + } + + /** + * @return количество неправильных ответов + */ + int getWrongAnswerNumber() { + return wrong_answers_count_; + } + + /** + * @return количество раз, когда был предоставлен неправильный ввод + */ + int getIncorrectInputNumber() { + return incorrect_input_count_; + } + + /** + * @return оценка, которая является отношением количества правильных ответов к количеству всех вопросов. + * Оценка выставляется только в конце! + */ + double getMark() { + if (getWrongAnswerNumber() == 0) { + return getCorrectAnswerNumber(); + } + return (double) getCorrectAnswerNumber() / getWrongAnswerNumber(); // // // // // // + } + + public void StartQuiz() { + Scanner in = new Scanner(System.in); + while (!isFinished()) { + current_task_ = generator_.generate(); + System.out.print(nextTask().getText()); + String users_answer = in.nextLine(); + Result result = provideAnswer(users_answer); + System.out.println(result.toString()); // + if (result == Result.OK) { + correct_answers_count_++; + continue; + } + if (result == Result.WRONG) { + wrong_answers_count_++; + } + if (result == Result.INCORRECT_INPUT) { + incorrect_input_count_++; + } + } + System.out.print(getMark()); + in.close(); + } + int current_task_number = 0; + int task_count; + int correct_answers_count_ = 0; + int wrong_answers_count_ = 0; + int incorrect_input_count_ = 0; + TaskGenerator generator_; + Task current_task_; +} diff --git a/lab-01/src/Randomizer.java b/lab-01/src/Randomizer.java new file mode 100644 index 0000000..aadaf36 --- /dev/null +++ b/lab-01/src/Randomizer.java @@ -0,0 +1,6 @@ +public class Randomizer { + public static int GenerateNumber(int lower_bound, int upper_bound) { + double psi = Math.random() / Math.nextDown(1.0); + return (int) (lower_bound * (1.0 - psi) + upper_bound * psi); + } +} diff --git a/lab-01/src/Result.java b/lab-01/src/Result.java new file mode 100644 index 0000000..4c4c0b7 --- /dev/null +++ b/lab-01/src/Result.java @@ -0,0 +1,5 @@ +public enum Result { + OK, + WRONG, + INCORRECT_INPUT +} diff --git a/lab-01/src/Task.java b/lab-01/src/Task.java new file mode 100644 index 0000000..19d8ae7 --- /dev/null +++ b/lab-01/src/Task.java @@ -0,0 +1,15 @@ +public interface Task { + /* + @return текст задания + */ + String getText(); + + /* + * Проверяет ответ на задание и возвращает результат + * + * @param answer ответ на задание + * @return результат ответа + * @see Result + */ + Result validate(String answer); +} diff --git a/lab-01/src/TaskGenerator.java b/lab-01/src/TaskGenerator.java new file mode 100644 index 0000000..032ddcb --- /dev/null +++ b/lab-01/src/TaskGenerator.java @@ -0,0 +1,3 @@ +public interface TaskGenerator { + Task generate(); +} From af664b733c648d15204695ea3b0f2574fcfe7a52 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 7 Oct 2022 16:44:49 +0300 Subject: [PATCH 2/4] added package structure --- lab-01/.idea/uiDesigner.xml | 124 ++++++++++++++++++ .../HelloWorld/ExpressionTask.class | Bin 858 -> 0 bytes .../HelloWorld/ExpressionTaskGenerator.class | Bin 2533 -> 0 bytes lab-01/out/production/HelloWorld/Main.class | Bin 2656 -> 0 bytes lab-01/out/production/HelloWorld/Quiz.class | Bin 2403 -> 0 bytes .../production/HelloWorld/Randomizer.class | Bin 497 -> 0 bytes lab-01/out/production/HelloWorld/Result.class | Bin 968 -> 0 bytes lab-01/out/production/HelloWorld/Task.class | Bin 180 -> 0 bytes .../production/HelloWorld/TaskGenerator.class | Bin 137 -> 0 bytes .../HelloWorld/by/Savenok/quizer/Main.class | Bin 0 -> 2832 bytes .../HelloWorld/by/Savenok/quizer/Quiz.class | Bin 0 -> 2667 bytes .../by/Savenok/quizer/Randomizer.class | Bin 0 -> 533 bytes .../HelloWorld/by/Savenok/quizer/Result.class | Bin 0 -> 1076 bytes .../ExpressionTaskGenerator.class | Bin 0 -> 2725 bytes .../task_generators/TaskGenerator.class | Bin 0 -> 195 bytes .../Savenok/quizer/tasks/ExpressionTask.class | Bin 0 -> 984 bytes .../by/Savenok/quizer/tasks/Task.class | Bin 0 -> 222 bytes lab-01/src/TaskGenerator.java | 3 - lab-01/src/{ => by/Savenok/quizer}/Main.java | 5 + lab-01/src/{ => by/Savenok/quizer}/Quiz.java | 5 + .../{ => by/Savenok/quizer}/Randomizer.java | 2 + .../src/{ => by/Savenok/quizer}/Result.java | 2 + .../ExpressionTaskGenerator.java | 7 +- .../quizer/task_generators/TaskGenerator.java | 7 + .../Savenok/quizer/tasks}/ExpressionTask.java | 4 + .../{ => by/Savenok/quizer/tasks}/Task.java | 4 + 26 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 lab-01/.idea/uiDesigner.xml delete mode 100644 lab-01/out/production/HelloWorld/ExpressionTask.class delete mode 100644 lab-01/out/production/HelloWorld/ExpressionTaskGenerator.class delete mode 100644 lab-01/out/production/HelloWorld/Main.class delete mode 100644 lab-01/out/production/HelloWorld/Quiz.class delete mode 100644 lab-01/out/production/HelloWorld/Randomizer.class delete mode 100644 lab-01/out/production/HelloWorld/Result.class delete mode 100644 lab-01/out/production/HelloWorld/Task.class delete mode 100644 lab-01/out/production/HelloWorld/TaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/Quiz.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/Randomizer.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/Result.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/ExpressionTask.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/Task.class delete mode 100644 lab-01/src/TaskGenerator.java rename lab-01/src/{ => by/Savenok/quizer}/Main.java (88%) rename lab-01/src/{ => by/Savenok/quizer}/Quiz.java (96%) rename lab-01/src/{ => by/Savenok/quizer}/Randomizer.java (89%) rename lab-01/src/{ => by/Savenok/quizer}/Result.java (68%) rename lab-01/src/{ => by/Savenok/quizer/task_generators}/ExpressionTaskGenerator.java (93%) create mode 100644 lab-01/src/by/Savenok/quizer/task_generators/TaskGenerator.java rename lab-01/src/{ => by/Savenok/quizer/tasks}/ExpressionTask.java (87%) rename lab-01/src/{ => by/Savenok/quizer/tasks}/Task.java (85%) diff --git a/lab-01/.idea/uiDesigner.xml b/lab-01/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/lab-01/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/ExpressionTask.class b/lab-01/out/production/HelloWorld/ExpressionTask.class deleted file mode 100644 index 33a9c6f40dbb53c229a6b9c97fefe57855e1a146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmZWn+iuf95IvjN+1falCZ*+4pj;a}rQtoOF9>)bG*T0V%S*LMSHZ386nkCzEBr;N zs6agM0elo<)^dWb2a0Bw6KC3 z95)@@!fnFu$T$h8nL_Uk!$LO;NzDrGIJm2?nD2Ia+pjs+7>ul!xmvmYnOb?q9TMQh zbWbu=yM8FQlf#jW24WOYrrw>7MKBbRuj4#vs82q%QtQqSuft$nPLCvK)1fg zJ{m1Tmw%%675og#r)OBzRK-+hCDo%Jc$u_RQ_AHGcB!!et&HJmiegoAH&ZR`e;9_S ACjbBd diff --git a/lab-01/out/production/HelloWorld/ExpressionTaskGenerator.class b/lab-01/out/production/HelloWorld/ExpressionTaskGenerator.class deleted file mode 100644 index cbef3ae5625ffda1de120f0ed0b4c6327e79380c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2533 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 diff --git a/lab-01/out/production/HelloWorld/Quiz.class b/lab-01/out/production/HelloWorld/Quiz.class deleted file mode 100644 index 10fefc9c8812d79c6eae451f51bf6e00550565f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2403 zcmZuzTUQfj6x|aNh9qAk7{yDmTI~gbO0BfjVik*mkr0qX5Vgi3OmQ^K&}4#_*4Ey% zwQqg&tuOl0wQOAym+e~p0sTi^tF7H{J=-%nebp?v8k&z-w&fnx(A3#A5k(84I${cOC=KB=HS3m!RH;^} zn6_JVjq0_cU7MRWD;l(nXm3zx71j2VL!FXaH0>16cPo}X+t-yHH>+ZSV~`xScdHtRBLx|33x<6h}VY45j z<@98v;tbO?<``WsJ`~E37F&Zf)~Iw%NNoKI$MF%XZB++Jqv{oN#v{^saeqSLBnJ80 zsgY+Zp2k>;6;CZVrI3-vwAkhiSIQ`*9ahLI2S<_>#PR@)eBfG9??cPRS@w7!^x?2g0y>#j45_$ZjCBqRSJ>ZyCA) z8GI`Ei$G9b>KbdBca74u5o10;-NH6!mZsmM;?fvIsabLTMWkv~SuIP*%@uE$n3wOO zk^g-L*z+sz{TMcQ*c*|c=PlUe`BT3AvOms6fPIWs;w>&9-Ouq> z2rE#{ftiHd?yD_B#PJ2b^zOMq0utD2i7(IYF*>hTH{0O8gsA% z&joTo!rqpyW8VWrc^tU+*n5lQp7WTOeo6d>^^>{B*|dQM;B5`1Aq5gd{2G!u3922W zd6*zS{(;`9CwT7}j${da>;dLh@#F~xC?0x_(;Di?b=OfCN$;&=GRK>Jb)2uGxbF$3 zAClLkR6;0~c=X~KWuH7G;VDasEJ=YC2vQZgp14&R1V5+K{Feb3BHd5% zD}$Xljr|yAU$Z!j5oVdAWE2IAVUk<#67t-kXIZ`p=6{akFonA~kNaGv!oD<9J%~Yk zL(YYW(2s9n(ihVYY81yE{;B+q#koUiJ0kxeuA}!~4C}b7<3jRpB!!*d^EQMZ{s&`h B;o<-Q diff --git a/lab-01/out/production/HelloWorld/Randomizer.class b/lab-01/out/production/HelloWorld/Randomizer.class deleted file mode 100644 index 8736711a9f5515de18357025a0b7a143effa9641..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmYLG%TB^T6g^W4<6-TDQHCa3Y4xx$C=8 zn;~U3yLn`h(~#FufX=Y7reE`DNaT?F{a})iElJ+cVW7m2^~FnM1#_Q4HLa$lq0ErK zOW5wK2noIj`hvmexW2fFCp{59@SaCVxf3|t>+;Z*`3h8{p*v&HJ8OwEn&(RRBIMCZ zfFW(#cGG4kc)?tRPrV@a`wUDX@pQUIQq!4BxJ5JF2XW|#OIIFktkqBDRnfpEJ(yey zNF5onTa>lPGxF(^Pq2@qyiHb?L3@X+{!c&!yOiayhkZh1^CR(8@|7htV~Jv5R~Lpk u7}pl&*m--WiUO%7{|ZP^ubL>sXWljf7L3HyAgv^k+5D6Gy7~%(0uws`|5-9s!$`ZF| zH2dt2GM;-W4l~=Nx92&}d3nyczkYxF380J@DkO$*)1FLSKLQ5XfPyfC)OgLH)#i>O z_h<$p+@rj0HtL5QSutR6Bv!3g8qMZGrTxBIe{`mOmX6FO<%7Xnm!=8^}v81@a-37WK+S z2E8?!j{Ej2hj+I!-+zuzeZN406Lf3j{dImv06OVLh?DLC5Kr=*6GI_9jcwv*$l9cn zKl%*Oueg2z^D|itS^9>BkNTzc?gac@NCMSOmOaPX1sLZ`|L`9ZV$4~1f}HTv4vEDp z77(HrP_sL!Go-!<_j0+*a20vpI-UwnA+Ga<294w)6AC24Kft=78A7eDJcHWmDl?kX zRTUbZQSG_vW)PhFPO;{_&>8NZA|#AWSs1D?9w@@l&#`riC~tK>8B@edh?0^d{qv@z Mpv~vlC7y)6KUKo5cK`qY diff --git a/lab-01/out/production/HelloWorld/Task.class b/lab-01/out/production/HelloWorld/Task.class deleted file mode 100644 index fe585e5b476fe209ff1e0f83f5a522f892433951..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmX^0Z`VEs1_nC@ZgvJHMh2FU#Nupr1{OvJfvm)`ME#t^ymWp4q^#8B5=I90^wg4& z)CwR=L_^aDAs<{)l$n=q&B(w}mY9>7l30?;$RMMEsX)^wD7CmWrv#{yD>%QjC^^+F tGY6=a6J)6#$UHVi21W*EpnDh?n1F6zWng0fxrLp911JJi2oh)D0swDhDoOwV diff --git a/lab-01/out/production/HelloWorld/TaskGenerator.class b/lab-01/out/production/HelloWorld/TaskGenerator.class deleted file mode 100644 index 6027fb47298753fc7a695c7206ce79318192f0f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmX^0Z`VEs1_nC@PId++Mh4!H#NurC)V$Q9#FG3Xb_Nzk27#=^vPAuy#JqHU|D>$c zb|A^bzySa)P9OaM diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..8517dd14cd9eda06c01e78bdfb0b472d9a1be930 GIT binary patch literal 2832 zcmbVOYjYD-7=BKYc9XEsHb6_cwP1nt0s$0-28vLDR+<(}DVD0ZP1kfuvKw|cmEiq; zzw33IVQcGtXKl>y6A{al9iUI6vC|$bjxO#yJS~9_{m8A_UamhAJH|^TGR!D|%fR!9ywk${Y7W9@M zjbac(3WimT;Gn=}4_c$EfKrr!@+M=~gJ)#J%qAuC2^>~%M8#1&*s|y;&7gNQtGlxN z9-CcppChlaC`wBDkEwVVj|hZy)3wWKop>4zDWc&Cj4DW~IEhmYb@Cj-hFfVMrqZy; zq%UWH(|A?IThz|K_Fy$;w{zKb=xPYV6w_$ z71zKy31tH&a8bpS4A4#uthSh^BsOJb zwEUcA8}i*3hTLU?fVQ<5EV8?kUVB$3myB9#D%srZ#m1=RVl}cqKC1n4vYCt)Ys!6; z9Anr>+Q^!kTe6w>scK99&sd>?w@UT3CKA%@ED74&!k5xI zI{c27F7n8beAgzb-x0D(vdsj})OnJ~%5wjaqmAr?Ope}uEu(3xWM}mAhOBl(mhX_v zfV=UmWx0-PYsHlAE?Y}ZM?2n$;$6I_;CO2zua!v|kSM}y-md!~hXJ>f0(g&$&E%jeUaj64ZGB2eKU zKf*tK1k_16XU6lIV%;d?v8332`eR3ce87{m-VHeHGN4W(j_Z$X^g#4DI~S z^DV)<;Js~V72EDs%8N#`GEA$7(&l=)ReE)K<_>rm&{ zv1vZo84dBbiq7yVHm{*Oh^s@foz3dbXq|p{3w=jT{~Z?#dI@$D1NdDMMh6a{6Bp2h zEMk8r9EOIQuxaD)l4({XF5gPL0$4!=&*K&~gd#>5S4MR2pg*?%F5*Ap(A4l69uio? zae>sx8u*d+4f^=-n844Nn5OB$H9Rg~QuO%t&tKOuGk*t{S8*jZau-iZi`Y|C$(Pa4 z@WI~DJv;+OTnx}jy^H6lF(mCF57kj-3T$Pr-F)i7FnTe{ucK4g!Sie6!ol literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/Quiz.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/Quiz.class new file mode 100644 index 0000000000000000000000000000000000000000..0923773383c8c0705c338d1f41f1672eb6a607df GIT binary patch literal 2667 zcmb7GYf}?v6n-`kmXJ3XL;)?{dx4;&RJib=pb&-9&@z52nK5Qf z+nGvUFIl%uH+hDOhUR?9bxqsLc}8(6XP2hOO;>}KlK4i2HGXj3p-1Rbd;pYe@c2SPk{%jHZUI9i9I{D=l>JQQ>w(;V3?0r>$Z?Wna8%PWZyVAnA`O97jKYJ0+frqK(DDMC zG|ZFN`Df5;uL!Yc*zq%;2OJuG>{ha9Ln~1wp9jmBkVHv8< z58LKLv;=NT5K(-NFZ}16Ol7cs`Uue`f(fgQKa$~N)Ykk&V~t;-0J5WkRZ|&qjy_?8 z)*KN8PU13VlB-z4#ES_|u*(1^S%DK?qQ+@oB{=?S@V=_SUsernel_@D)nE>Ta^@^G zAhb6m7O?9fB3yRgd*WZka?g3fhe1h#h8?GJ``NUU6~G%RN<#_6i1-y`=M<>6hvBsZ zdGH&0&OgPz=QuDx=)(^&y+S8X(MR)%7dWM10qL#<4Jv*l0*l6E(!0nZiUWFoUJV#}BykOWe4UxbOq~ zDC3=K!p>RT$GPX6xtaO;{`drNfNBvbr1QvF$RbB5-HMTLdqUl~Xa22hMTFdbpn~Xt zkalX#BBoHtqiA6o7GZWmKM_%f$)Qkf-A~A#A}pMTB9l^})34f#Y}HnePMlqti9( zPA~BKaWKd_6hs*!wPy_J$|PukV`Dnv9IL#j*Q&eRGo?f4p2S|YT&vf2%8gfh)#v*S z9=oC=fh2>v(tJ|c-?11LUQVvB!N4^YNgXq|P84mg<2wv9nQZ0A9@wU5`-f(&b>y`B z1q~_8shHQ1#sU#t0CxP~m>37P7dW*y3|pD8?6PO~dWA8E)$h9gVPTws7ZCNAblkvA zhG^0C-F}H-cDz)WxtDFmplCGgQVj7JbpCr+$33j_xkVd23TCqZnVdNO0OfM$H4UAp zxV}>jj$2N*VYfW;-zEKgA2%pA!h~Gp+cr}Bq zoniJIjN>DJ;Wx;mk5IUeoQTuS6N)qDA<+w{YwL@rSo|!)<8&A4Dooxw9tcc6sqr-k z8!;i17f40FgB?giNY;ToglZiqL(=K;6fry`?$OlsFgf>)a*bQkDQ=%Y62`JD3{@C+ l6k%v*SUJHoZ*`=MA@XHRlbUI2ag`>Dgl#^;CgCF3`VI8h*DU}5 literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..cb274e7a886c855d8e0f21e19170e6e5e3bca8ff GIT binary patch literal 2725 zcma)8Yf}?f7=8}9EQAFj7!?T`6%nE_cqv{2SOhO=L9HNOXp2j7fR(VD?rspzID8VT+Ip;m+y`1-b-plgmyNy2pj9?{(281+( zbwm&qh(9q_jcm!V7PGhKpU8qI5FIit(;E>8_4Us*p%G0QVmg|k3tXCimYp(IrDZQ? zzp0qtN+;_X?(*ECw4`Hrw&P~6t(6_=x~6SSlXIiS5YVeaa;ma2Cmt z`zN+Ug6mv6k?zrP9KG~=#aNbOwncaEo8A&B*E1~76*$qiQ*&$=YkkUEzre*hIy?M=kfMbYd95WmT`a`l!`GV5Skn ze0bg{rcA3`@s#;1IzGiH^H(bqfplO0#Q%#Yr(sMWTVHs4`F~LKO^o*u|N3VH!ee$( zGQ0`XsvRi1HdrKzEB)5x$+uz)!H9A~bu&p97w#&ghV5D_MM5Ms%aJF z8m&r81wU6)qS!qp&<_lzmt8cc!XJ7TNnvIchVp^uBQ0D|~%g#Fe4fvbpe7;^q{g&Ma0&QFQIbMpH; zC%nINigS-pFM@Hd*LeDib~Nsn({CWsp;yq<(xR5QS~}8Qudpwje1(JQZpBT66+018 z{6v%jzf!va*SVhc?YAO~+i1cawBieN;4b}ZLpS0$iaj{N?@flc=dc%-_+7a{y_!hMv z6djId6dhM|B%W4uhoYnL?7jHFU^qb&>*xq+d}J_^Nkq;MhJX3@@82-+Fx{0*gkR%q zbsv0#ODg=3pS~HU12{||Q%uli)B7YZ%0L)KDoNVfYSzGlWYe<#`oM9Y0jTJV4n1%p{)TJ|57kA}uRe z!+1!Yc0}J{NC*v&nwy*dK}hW5Ek9}1gl{m7sw{@P<0sb<>qj!qAug#mQn3UfP3aIO-BaRz=3X9(OmhN3D~ zg_#Z<*sPS{%}N>Gtd!wurKpfJL|SycIT{~jvCLNE$Z}W3A4$K)$X0bm{mZETjvfe9 e-wEMMiZ|dZe9gU)ygB|P7I})1TEY{Q(D@%_B5ctB literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TaskGenerator.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..c06dfe7238f2efa248373baaa8f1c36f5626d246 GIT binary patch literal 195 zcmX^0Z`VEs1_nC@PId++Mh5+)O8wx(vedl%Z2iL0%&OEP{gTAu?D+K5ywsw^lKi4# z{SYAE9mZv6U}0ns$Vx0r)Xz!GOV{^L%1TWxVPxQdYDi^dP|(oy!EP$VENeyvuHgLA rqU2P!%p9P4AruSrKxVTsGB7eQ1D(mhzzDRDm4OY!Vqgc7Obi?V^;kB= literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/ExpressionTask.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/ExpressionTask.class new file mode 100644 index 0000000000000000000000000000000000000000..b03faef142a02c3837cfda33cb171c61ce93db33 GIT binary patch literal 984 zcmZ{i+iuf95QhKF$%%1}E^R3V%Bjtv#M}q<1_2j@MrxvPxT!YjDs1CAtq-B_CcH(d zs6brs06Y|8);1+of+9_3$2~XfO>d;W|S(ObUEy$7mk0 ziIafaZY!De z>%GqI3k@3#>+=cGM4~xd;f#Bq;fy1-K11s1r>RY=071|j&k$5Hy=0m|KIUNf!G_V~fzoFZz53@np`R^!whIWqSvvaH~ jsbt7m2zg3GS0)xSlw6L|E*VWIGKNQC7Aun53|Xu{g^$?& literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/Task.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/Task.class new file mode 100644 index 0000000000000000000000000000000000000000..cbe4864ab6eada6a71908dac086d527138a9f6a6 GIT binary patch literal 222 zcmZXOKMsO06vn@zQpCl<(F4Fj4`AZxL}DUbpx_HBG!UT>^=J+rz(X0^$${nN<@=NG z_xZlw0FKyjcntgEAu>5p+cn}gswefr$e|fTZZF4@VOz^d3N718oQs-D!@w&tIo<8I zi{kX}XQo$ebzlf4snt~)Vo0KSAWrA27aB%wY&Xohu`lVQv~8~)M&cHH28M+t2Ruu) Pf)7W>5m?0rosRGaKUq45 literal 0 HcmV?d00001 diff --git a/lab-01/src/TaskGenerator.java b/lab-01/src/TaskGenerator.java deleted file mode 100644 index 032ddcb..0000000 --- a/lab-01/src/TaskGenerator.java +++ /dev/null @@ -1,3 +0,0 @@ -public interface TaskGenerator { - Task generate(); -} diff --git a/lab-01/src/Main.java b/lab-01/src/by/Savenok/quizer/Main.java similarity index 88% rename from lab-01/src/Main.java rename to lab-01/src/by/Savenok/quizer/Main.java index 19785fc..a93c022 100644 --- a/lab-01/src/Main.java +++ b/lab-01/src/by/Savenok/quizer/Main.java @@ -1,3 +1,8 @@ +package by.Savenok.quizer; + +import by.Savenok.quizer.task_generators.TaskGenerator; +import by.Savenok.quizer.task_generators.ExpressionTaskGenerator; + import java.util.HashMap; import java.util.Map; import java.util.Objects; diff --git a/lab-01/src/Quiz.java b/lab-01/src/by/Savenok/quizer/Quiz.java similarity index 96% rename from lab-01/src/Quiz.java rename to lab-01/src/by/Savenok/quizer/Quiz.java index d1080e2..926327d 100644 --- a/lab-01/src/Quiz.java +++ b/lab-01/src/by/Savenok/quizer/Quiz.java @@ -1,3 +1,8 @@ +package by.Savenok.quizer; + +import by.Savenok.quizer.task_generators.TaskGenerator; +import by.Savenok.quizer.tasks.Task; + import java.util.Scanner; public class Quiz { diff --git a/lab-01/src/Randomizer.java b/lab-01/src/by/Savenok/quizer/Randomizer.java similarity index 89% rename from lab-01/src/Randomizer.java rename to lab-01/src/by/Savenok/quizer/Randomizer.java index aadaf36..dd3821f 100644 --- a/lab-01/src/Randomizer.java +++ b/lab-01/src/by/Savenok/quizer/Randomizer.java @@ -1,3 +1,5 @@ +package by.Savenok.quizer; + public class Randomizer { public static int GenerateNumber(int lower_bound, int upper_bound) { double psi = Math.random() / Math.nextDown(1.0); diff --git a/lab-01/src/Result.java b/lab-01/src/by/Savenok/quizer/Result.java similarity index 68% rename from lab-01/src/Result.java rename to lab-01/src/by/Savenok/quizer/Result.java index 4c4c0b7..51b0f13 100644 --- a/lab-01/src/Result.java +++ b/lab-01/src/by/Savenok/quizer/Result.java @@ -1,3 +1,5 @@ +package by.Savenok.quizer; + public enum Result { OK, WRONG, diff --git a/lab-01/src/ExpressionTaskGenerator.java b/lab-01/src/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.java similarity index 93% rename from lab-01/src/ExpressionTaskGenerator.java rename to lab-01/src/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.java index f8839f6..7070988 100644 --- a/lab-01/src/ExpressionTaskGenerator.java +++ b/lab-01/src/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.java @@ -1,5 +1,10 @@ +package by.Savenok.quizer.task_generators; + +import by.Savenok.quizer.Randomizer; +import by.Savenok.quizer.tasks.ExpressionTask; + public class ExpressionTaskGenerator implements TaskGenerator { - ExpressionTaskGenerator( + public ExpressionTaskGenerator( int minNumber, int maxNumber, boolean generateSum, diff --git a/lab-01/src/by/Savenok/quizer/task_generators/TaskGenerator.java b/lab-01/src/by/Savenok/quizer/task_generators/TaskGenerator.java new file mode 100644 index 0000000..9e98a89 --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/task_generators/TaskGenerator.java @@ -0,0 +1,7 @@ +package by.Savenok.quizer.task_generators; + +import by.Savenok.quizer.tasks.Task; + +public interface TaskGenerator { + Task generate(); +} diff --git a/lab-01/src/ExpressionTask.java b/lab-01/src/by/Savenok/quizer/tasks/ExpressionTask.java similarity index 87% rename from lab-01/src/ExpressionTask.java rename to lab-01/src/by/Savenok/quizer/tasks/ExpressionTask.java index f7bd635..d28f491 100644 --- a/lab-01/src/ExpressionTask.java +++ b/lab-01/src/by/Savenok/quizer/tasks/ExpressionTask.java @@ -1,3 +1,7 @@ +package by.Savenok.quizer.tasks; + +import by.Savenok.quizer.Result; + import java.util.Objects; public class ExpressionTask implements Task { diff --git a/lab-01/src/Task.java b/lab-01/src/by/Savenok/quizer/tasks/Task.java similarity index 85% rename from lab-01/src/Task.java rename to lab-01/src/by/Savenok/quizer/tasks/Task.java index 19d8ae7..cae96f8 100644 --- a/lab-01/src/Task.java +++ b/lab-01/src/by/Savenok/quizer/tasks/Task.java @@ -1,3 +1,7 @@ +package by.Savenok.quizer.tasks; + +import by.Savenok.quizer.Result; + public interface Task { /* @return текст задания From cc7d2e12c19904113daa2a01cd3ee992416409c4 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 7 Oct 2022 21:55:44 +0300 Subject: [PATCH 3/4] added equation task mode --- .../HelloWorld/by/Savenok/quizer/Main.class | Bin 2832 -> 3392 bytes .../Savenok/quizer/Randomizer$XPosition.class | Bin 0 -> 1202 bytes .../by/Savenok/quizer/Randomizer.class | Bin 533 -> 1348 bytes .../HelloWorld/by/Savenok/quizer/input.txt | 2 + .../ExpressionTaskGenerator.class | Bin 2725 -> 0 bytes .../TextTaskGenerator$DifficultyLevel.class | Bin 0 -> 1471 bytes .../task_generators/TextTaskGenerator.class | Bin 0 -> 2225 bytes .../EquationTaskGenerator.class | Bin 0 -> 3256 bytes .../ExpressionTaskGenerator.class | Bin 0 -> 2610 bytes .../{ExpressionTask.class => TextTask.class} | Bin 984 -> 966 bytes .../quizer/tasks/TextTaskStatementsHard.txt | 8 ++ .../tasks/TextTaskStatementsImpossible.txt | 0 .../tasks/TextTaskStatementsNightmare.txt | 0 .../tasks/maths_tasks/EquationTask.class | Bin 0 -> 1002 bytes .../tasks/maths_tasks/ExpressionTask.class | Bin 0 -> 1008 bytes lab-01/src/by/Savenok/quizer/Main.java | 16 ++- lab-01/src/by/Savenok/quizer/Randomizer.java | 42 +++++++ .../task_generators/TextTaskGenerator.java | 53 ++++++++ .../EquationTaskGenerator.java | 113 ++++++++++++++++++ .../ExpressionTaskGenerator.java | 34 ++---- .../src/by/Savenok/quizer/tasks/TextTask.java | 24 ++++ .../quizer/tasks/TextTaskStatementsHard.txt | 8 ++ .../tasks/TextTaskStatementsImpossible.txt | 0 .../tasks/TextTaskStatementsNightmare.txt | 0 .../tasks/maths_tasks/EquationTask.java | 25 ++++ .../{ => maths_tasks}/ExpressionTask.java | 3 +- 26 files changed, 298 insertions(+), 30 deletions(-) create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/Randomizer$XPosition.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt delete mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator$DifficultyLevel.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/math_task_generators/ExpressionTaskGenerator.class rename lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/{ExpressionTask.class => TextTask.class} (59%) create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/EquationTask.class create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.class create mode 100644 lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java create mode 100644 lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.java rename lab-01/src/by/Savenok/quizer/task_generators/{ => math_task_generators}/ExpressionTaskGenerator.java (68%) create mode 100644 lab-01/src/by/Savenok/quizer/tasks/TextTask.java create mode 100644 lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt create mode 100644 lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt create mode 100644 lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt create mode 100644 lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java rename lab-01/src/by/Savenok/quizer/tasks/{ => maths_tasks}/ExpressionTask.java (86%) diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class index 8517dd14cd9eda06c01e78bdfb0b472d9a1be930..e241a24274206a45b1c2d96a2b75575008b55a23 100644 GIT binary patch delta 1352 zcma)5TT@$A6#n+fNzO^wQ&MVE5~mO_7D$2t(rYLP0))0l6D;*Y zz4fjZw^pn5R;%rsZJi;ej7}eXa>f^*9sh%Gjx%1?NvN0UgPxgvS?l}0wbxpEp9`)# z9>;gT-~I+bH?A)^&asiDi;dQ_X3S0ByuOk7R5UQu4je6LMlzf6rn57;x4FH|YiRky z`4$BaFhof)QdXGG>4cuqbDELOvo_KYgKGwSU0X8Ggd=}|BBem5T=L? zCipL*9exB91UXvq5JMl4g7=Vo{mI$cfO`NFkq(H{-69#2b$2v zVMRN`Q1ky3wM^I%#%2XuIJRP&_<@BRcQCB&o6BbNdbzZ6oe>8*u~R`8r*=Oqnxsfo zFCJ0Q$I*`gk&?P?gB(NHEpA8+Rl|rXh;fYIG4Z3cwQ3Z56pV37v~bHlmKEKy$99w>hrBo- z$880Uc|0S&mcyO}j^nT~*vAYlXN(q-$4&8b9M6C0u!f~ImmGKx?<=@$sy`6J%D3zz z;Z%M1SKo7k)`5(Xqe`xdF4Zr8&QK?M)H-oS<@8c(aLDG`io#U zX(M5gW)lW#aDrxDA>c*4M3!o{pID~&msRYl_*q@gW`ts|qj{6PesM;ouL!5Jx`=fp zxGdP`uko&c$5+r8w>VdEpVRRV{J{#|6u*U*B0{#mp&N9VrJPtD6x!cMX{@K$=fWU1 zAc0z(f*V)hSxtD65#cgk#w$dAm4;bE#dDIZQ#2%;h8<^cmJq6i1?d1Q`HfrXsM)@Z z$XDoz21?k)P{N}Ov0w?0Gh9MFZ6+A*U~+`0ttIR?jcHO``{Sn-Xq5fI#Uc{1;4%)G zl$s1-rV)_?t#0`?j(|cM5~=tyjuG;#*?75JUk9ZMv{AC{wCg|sn-RelbkWZ;gl&jn zJN9A+rpTMcPUHzWL5gm=vH+@a4(BVKGVmH+CxBzF+z0wa5u^wF22~!T)?L675vQna zZ_-XKcgaOqC5RxbqC83cd5hw#f%F?{6>Ly2`YU{dzfE2V7x50QDzVsD_$o90I2+WRx%ZrNzvrC&p6}kh*}ar- zfBfslcfcrLTyoE;t!6pUzx>l0wI)Iz{SJ3)2Drz3864>!RCMk7p7#?GnW;f#|8R}I}neCzVxf~OkNyZg+x#UfhPB=^{Vuy>zikbOhwVavp z>XmBQVUMtDpDucp`OM6LVzpYT`$IgVnc-P;C6o+L^PDEce)B_UqXY%b3(T6|LIdh0 z(`k3xuV`MSXg1je`+(*kC9`CYbeA=UuoaORuUPl?E>=#uOmkQ>_w~>ANTB0Gmyh_^ z;S<05oau>tug;raBLh0LtLoK-@FgV*?s0qEfyr8JZtb$nL|SskZla0yU0G6!xW-EWh|0$?&ntDo&wEWMU}puA&R8bQFRy z*OI46EZpRd7UmDPQ@JJ@O*Z}mVr$z-BFO%sucS?|{py6UgARGoS_X+RPA6sJ|5FK5 zB4pPHrba?ukgH|5r0u2Kge3C;V$b2FC!ga z3rLY(;dMbOzM@uptj$6d?i8|(gt+TS(M6VSws99ZHjrl{`{-eoq)6Q-)AhG!9+i)g z5-m<}QYMi(c#F5i`uD`wK}mI5F5M}aJTHo!rXhK=()}IrthP!C!EX0>m*CXDrJj_& xCyhD?{KW6*1ZaZ7@n)Q}S7gt@h`Q{NP!YZ^2R zF(@;Q_1cRqlfig3Xi60s3@aGYFoG;eYPlY_8FIQ&JFfqR`ovihHG^?rM`d}_zpiT^;ZxH!u)v+w=hBNl^yN` zYYe0PsUl|8Xe1F=sr7skDPboyOkrA#Ak@%dDCmO^fy(`+$s67Q^`EIZ+^%=qP21nI znl44k|IlF!I%S4z&1+e1!}1-GF3Kr$t4*o1S7$>@61;J!jg;veax3Wigp+imK?_iB zxzTK%_7TMd%Y*7!D>101*Y#WWwj;XBT<+?kxK=7tw>!ZzuM;R(VVL;ehB9bX&TT)u zXj_Q>v+k88x||$66R9#TmL4EW`wI-`#nRGAoctL~6Yf5FQ)ISh5-WRK zI>nt6NTG9A4jttT_fDV+T^D0WhjQm=cslabs2u4j;vr#T)X<~QE@PFfcpVJOcw8C( E1+94ra{vGU literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/Randomizer.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/Randomizer.class index a8e4b2a56ba9e1b3a2891617532e4ebb965f4b4a..436148d4314be5775adeae39d85284474f9deb3e 100644 GIT binary patch literal 1348 zcma)6*>V#{6g}PsUxaDNtC7;$B{BLA^;yaVcp8%?Cj{Qsj%X`dUd4VNHaVTH151lT% zAs!3l!sy8p*_LsGDfVx6n`zW)z9I~xt*Ddn;>uWMyq@$NGT*)*>8yWGKuM=0{@0yv%ll076_!eim zD>OmGd@%qIWm?;q#MEvS;nCWnRcL)MuIMFQb7yNMUC&k{TTQORzrt3!soF?}ba%Qo znjyoTtc_*JbSpJ?cFq{&wcl}6v$k<~&MfJJ=A}8~kIx?m4VAN&F|dLo!~@Ja&o^Db zVYnFLIz}Q-Q8z&zrkMG8K7sF0!aU#F4UFOz#^Lit+#|gYY55Z?4#=Hi@-FLm$p1N3 zYpRMcjT!C=Rftq0Ld+5=zC!w*VKxTVaRC>}w9goq7|p;O^)AdEOj!8dw(T8gVu-9= z#t*&TtkH+^SJVtvIY0axtaliC`wnAoDc!BHn04agDngrQ`fsg0~ea;>OL=e*+c)&;S4c delta 175 zcmW-ayAi@b3`F0Zu^Db4;CJR{up=j~!9=t`Ep)+nZV2dtn1G0gX6S%neaUK9dXnDm zHgKQc^98h2ox3DMX5F<4Cv)x|dAOS<1Y3A2rdUx(4Jny)9=_Js3-$U02}|iX`V>#D pG-Aa%vQ1JSd)CD}sU}(EOYI?g!&bF-J2|8Igo1ticTnF_{sC(t5>)^I diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt new file mode 100644 index 0000000..701c652 --- /dev/null +++ b/lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt @@ -0,0 +1,2 @@ +aaaaaaa +bbbbbbbb \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.class deleted file mode 100644 index cb274e7a886c855d8e0f21e19170e6e5e3bca8ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2725 zcma)8Yf}?f7=8}9EQAFj7!?T`6%nE_cqv{2SOhO=L9HNOXp2j7fR(VD?rspzID8VT+Ip;m+y`1-b-plgmyNy2pj9?{(281+( zbwm&qh(9q_jcm!V7PGhKpU8qI5FIit(;E>8_4Us*p%G0QVmg|k3tXCimYp(IrDZQ? zzp0qtN+;_X?(*ECw4`Hrw&P~6t(6_=x~6SSlXIiS5YVeaa;ma2Cmt z`zN+Ug6mv6k?zrP9KG~=#aNbOwncaEo8A&B*E1~76*$qiQ*&$=YkkUEzre*hIy?M=kfMbYd95WmT`a`l!`GV5Skn ze0bg{rcA3`@s#;1IzGiH^H(bqfplO0#Q%#Yr(sMWTVHs4`F~LKO^o*u|N3VH!ee$( zGQ0`XsvRi1HdrKzEB)5x$+uz)!H9A~bu&p97w#&ghV5D_MM5Ms%aJF z8m&r81wU6)qS!qp&<_lzmt8cc!XJ7TNnvIchVp^uBQ0D|~%g#Fe4fvbpe7;^q{g&Ma0&QFQIbMpH; zC%nINigS-pFM@Hd*LeDib~Nsn({CWsp;yq<(xR5QS~}8Qudpwje1(JQZpBT66+018 z{6v%jzf!va*SVhc?YAO~+i1cawBieN;4b}ZLpS0$iaj{N?@flc=dc%-_+7a{y_!hMv z6djId6dhM|B%W4uhoYnL?7jHFU^qb&>*xq+d}J_^Nkq;MhJX3@@82-+Fx{0*gkR%q zbsv0#ODg=3pS~HU12{||Q%uli)B7YZ%0L)KDoNVfYSzGlWYe<#`oM9Y0jTJV4n1%p{)TJ|57kA}uRe z!+1!Yc0}J{NC*v&nwy*dK}hW5Ek9}1gl{m7sw{@P<0sb<>qj!qAug#mQn3UfP3aIO-BaRz=3X9(OmhN3D~ zg_#Z<*sPS{%}N>Gtd!wurKpfJL|SycIT{~jvCLNE$Z}W3A4$K)$X0bm{mZETjvfe9 e-wEMMiZ|dZe9gU)ygB|P7I})1TEY{Q(D@%_B5ctB diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator$DifficultyLevel.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator$DifficultyLevel.class new file mode 100644 index 0000000000000000000000000000000000000000..05f2be88e7b9aeb1c0b8e914cf7516ae0e7c89aa GIT binary patch literal 1471 zcmb_cYflqV5IwiAZPx{AMUVkR2!7xJb= z;;@E@NUUbJUhEh~_IWNX;42z50Y|p8o0aIk4HS{6Mpo|q(b1%~d!^Z2bC{Yo^ zH3d-({kYB$EZbFwGxR5txqY)?>bB`r^qtZ^FMBB!gSeq!NJAVq8G0`WX{UZj;u@x1 z=R1203yF^CHQTJ!QXPQdxt3E&byg4wWd0Eiw{V*wv}8G!x6ClmnW`O`O%}oks?@EK zFd|`S;_rP84=^rTBxTeXGKpk&nnZHWa|YI`Z>c|hIm_YO^}`Z(^Jd8=r1%e=$*w#i zhFGpzHtmAxTB26FV8AgCsc!6YV`*5ucNR4uVptW&^y)70{E1|NhHj~Bw;TJaBT%$| zsVicaQ#8>=weFVrh9&wkaB0hC#N3dSZC>*-)taZ^3B%lftQCWnb!eOAfN{ES-(UN? zGD~wYNH2xJ%8=M%fGjPYw6tYFG%ogv7(v1l7$<&`yiu~^qc+j=1y|1y`$QhY1pS8O z*%a~Pm~8Xs;ghHuV-u$sI0F-W-yi%bLbMhO)0mOxH0s0>6=&h6FQ80J4xeE7vpnuB zcM+~Y7t--ia%Q8dnESR69RWgt!O(ZGqQ42hQ4BPp7{y?dp3CK1gz<=Kw{E@L4xaf& zv9UY;6Wl$9Upk`!=_t~<7nF{Aim_w#2&t{k#AN(5dgyj>5;=}3LRvECFi$)m7Vucw QMLZ=d_LgB0&sK(h18#z7hyVZp literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..80733756c158f74862b48f0e0ddb83000f85d631 GIT binary patch literal 2225 zcmb_eZBr9h6n-vQ+_0>IQBY_tXh9(wqo}O{wY)<#36?}GZCbiXZeVpu(%p^K{vbR3 zrkyG?Wv2b!A65F?-6V?GcE;&sX7Al|&pqck&w1JW`PXm11GtTc209SYp_%B!5rN)^ z)?+K_Sk#?lX9wonT*gr}) z>092T%`I7#uI1NUFPWE5{5)mLEs?1+xtrr*QV$U@stTG^TE z!ZGyd=rwU%!JGddYzk;Avug{=@(B|sm02T|xwo3jrRLI$I{Fz;Kw87Mon)?LRT+8| zrv-*vq33+dmpiiRd#Rmz&GYP{BQN_;d;@(LRK$NE&^MNTO?}RH?dsN4NcR~NA7Mx! z>V>vR)`?K}O^-q7XHA?_0K2lO<&}J9c5N|=5rLt@K(hAMw!dS!0S+DK1Lh)&#Sqg=) z6bg2=-tfafM=_}5qCkJk%Uq*Uk*+MSNvkYf9SMP0>r5dC}Cqbdbys?xEDM}| z(_Q-pqtvn7vPNoBtBX%cvhLfps(~e>Ox#h9d+MwxpM_X@ly|KX6Py-+!EVl)Sj9aO z)a+RjG(v*@i-{>6YXZr4s~zb7gS{UqR#?ENL!yZHU>!^etc?AG?*m5P9x8_>!T35G zcfM9;I6W%u*~U&$x_QMiD=l3sSax6C?0 z(ZvpzhCoNr6%Yi}*XHAm{L!dZVJiq6YagrDpnUk>GDO0uV&rNKwS z_&i4xpl^*MxeGlw!QUB9<~aIs9j7phL3~M#{?Icv@D<;P0blc$K!N+?i0t!PhmNRD zGwAQ<0sA0?Es_kOlWGt4FuD=Du#55Z9^xB&xU_L`7ngT&HFN0|u4ngfb0eX4yO^BR zxcO{Ad!AM6Pw1Z15(C;R%q9L%$}37Yb~kpHs?Uji5DB84!42HPG*<&x*{@5Kspk@T zRI$b>2YELb^&m#b^eFG0r|u{<&r$C@mT>`hF&@Nxov?@aS@{Ov(!wCe=O(k#K^+a> z!3r38&}76w21S&bj7&q@r%C=7AS0tXJqsN(``~|rwupj2s_*ks$la(CEcMQkymCk$ xl3Y1l&>4S)%yVu!f>4eG!tMa3N&^*|Kq8QVRs~yJHJ%;AHg`s_i^856_#4-DDsBJ( literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..add46b9d157a465978279ba6a370988f19ed304d GIT binary patch literal 3256 zcma)8>2nih82`O(vYW=G^a@84uwsEUSOSPx2v-ROB0aFd%AuBRx^0)HyCJ)&#rwWK zInyu7CqC)d>Tq;$#y`OEPjVc8?;dHi8Kj-O*K_}#=Y8J&(+dBV&=9{as`x=re(UP1zOVsQ*DT$O+{S8bI=4vXYOW;`m$l!i`hFh z^F5=Qb#-TPdfu>%s_xoVC%dG(3)BBS9Jy1|UDLL%lKEoDE1(5(MzOXuEg)`4bL|?o zN?Y9_@w_=VXH*TVWK2tXr-m*`-yYJ(YGv1~l+BW7!sF@DkdQo`AvcDN8PSr z2X+d?mrQHCwlrf@rSXDPp45=?N%~4aieWdYD{bh*3o7<#coF>q`!*vnsav!5k_4sy z+7;U|WxxW_3x&zzRe^L9?3zjB;@F4%D$*JTkYNZL87f$=F>h1_Vy<0utEM$CkVqE> zMmJde<6IY${gQ@393)Ol`l6AyEyDAr=`L{PxVq&!0{heX&7w`U2^^Bz4ojKMBKf8= zEqGbV92FR9BC}ab6D4sR!>cNWG#tkXfz;D57ihoeSC-)?j?kwIg@J-pa#F)7u%xw% zhTD*vOnTtivvLe)H4Nh%FHLA@qT*M*fSSI+zk$4p^8!aU`zbGke>WWOayZ$Ml}goc zWKGIT5ohgP&~Oo#1lq3XRmYI00%sV)v%1(U4N~uG8ZJw{Tl0FkR4ePQF>E>S8r3-R z7?XWqym?xiq-ZLJE4&PcVwfbnBU2-j*JEIDw~SB3Fh$pA^w~bss?=O*_?m|6xWRG_ zZ=t}krilL^Iyn_@31pkY+Sq&~XhCvp-jg<>=jDa2Me_EnK@dhwD=3hw`b?Q8U88nM zFHh-JQ|^Pqh`V6&hKx7CUOL-o^Vu6-jvm!pj$DU5M&P*+B6dQ$6z(=!pTM^8@ZbH8 zb--UzHKJ}loZP#(DdS%RT7wlPQtAdp{ z?&3Wa@5|2efk6L;tERPVFB)0j6~EnG&`W%h?h5?S*nk2?U+E?G?6TqXkJ|QPt&-au zdc(=T1h3w$7){u3Ht_ooYOb-b1uA$E%SF>Qaxr{F*jI#z;S(-|Sc%~?xi}@*tO^!i z)qGiZ9D{jjt2ZtcUkU8p6ne9WRD2__`{}H#4L^Lmz)RZ#ftyhHfbfmv2>Bp-Grs`5 znXj`q^A+}HzOfF>a7;IQpm~197Oh*JBiLv*RB)M z!C&$GPv}lWlIz&}1P5p&`ZGG@E)jWxtlaO6raa;if3rr}RxhqzPfvcHsXI7SZqdKZG*ziSYj@F|z4@g*w{M@)wdS?r3zM z%{U0+ArmbFyqtN!EIdH(I$k;1us*ep+&K3te_QzL;IDffXO2aFL;iXunHo$)9$_S0 z6dq$##^vX0w}<U&W4)CRr$uT<{d$!_Mo_Nc_lvpApor2cK!o2N)}WA literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/math_task_generators/ExpressionTaskGenerator.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/math_task_generators/ExpressionTaskGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..49bb017c2faacffd01d2a59f3c2887e71d1261f2 GIT binary patch literal 2610 zcmb7GZBr9h6n-uwS%`~75ET+^w7!HWroK@n28F1Y7StMwRomhcF0hj9rn?)e{m|dh z>4%O#!On;}bf!O`)8EwTb9XloOms$OviID3&OP@z&pqc{{`qhFZva!M#nFXs4G|qt z!~_!0j7=j~HLSJVz2#@J;t9mAnU?8I33O-17JJcyUJY>_`=ATlU4D@(8=KOyH*!BU z%wMFF^9*-mX-!(vF+AIGb2Y*7Ld}UDvd&1)9$`tp)UOrz|&WO9JAtI&i;^ zes$VlQ+d-|U6qcsDsoBb59k0^n;8 z>o|g8fq2cd?lx-6(ou((l=GyHRG>1RhpIS^;xi3t9mjB-E_XRAS)N>zjzEuRmp#X{ z)&zz!rLnnPlVCYNK>APUIEholT{AXh(Y6Tpq3Nwtay`THT!GV>_MOEKc*`hnV**z? z>}mJX!ATrva8|>(j&sNfq}uQHfnlxKHFeDb`)7k&lL09L(M+i{R#HyR>$rf6Os1yE zy?T%h0$S!V|Hg_ME(=^}KS3o*kTb5IG;VHhs>FFCU+TDms{+0E4ab!#fk+__??jBU z&+E9R?E8yGwbG~>o}9MapQRJWB}}QjzuuYX4x}yiV44Rn8!Ktksy964zNq6SZt=>S znI$lh8Jqj`*zy`?1#+D?wwBa;HPg%3eO4C*B1L;eGSoTK3NL2CSgvwqV9u@>)kVWG z)jV8`c zZq;;L)uUWlv8@$eg1wV!qR5tISd4F={U!za%AQf#m^bPn7wM1OnIfD)#mjcXsmR-= zA~dx(F=v}S?3^lff}OE#&-EOmJ}

d&TXK;b|NOmNisVr4sCk-L7C-oA!px1k+0w>#I>jYT?Yxn5KO?kUPeC)P8e60j-BgXE@ zhRrWjclJjG&@7=!i4W)=LJ)jizr81=$E!hvl z$bRKa>C(w}7@dp^M@F~tIh|8Vab=rO{K+fY1o#Jhufy~+Lc~d8PWkvQ1%7t$rLhp= zOXJ%RUmA;eNPKGVcX&ikLN&t>%O8wTA)d*;CYi4>@($T+Epmaf#$O+Q3H}D(;ftxi zaOqJtnHqhAiC~y~i^4A25&!PfjQbcFK8~|Eg*=0r=BQZB1}BE7bxee)k5Ch!K1==s z)KKq2h;^H6D6ECi#F>|fCsR+!)~nIPxIbA5CRu;79!zpCkx2cHXrz!#Rn^kK4F$8? zPl|K={|I~vV+7d8_jC|BQgj|^rpsx*JL9;_*#r~f3NL=L1$tqJ@WKw^g&o2RA@s-e zt|8i|>-%DfX>$G~j3dWU~#r#FhKSvJ?!gIRuJwtiu0W>spDeo10+cCo%|ML|(&adBpT-p15iMimVo U!U`vUV4TJ+jL^8bo5`9H02;R^mH+?% diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt new file mode 100644 index 0000000..e7e0bb7 --- /dev/null +++ b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt @@ -0,0 +1,8 @@ +В Полотняной стране По реке Простыне Плывет пароход То назад, то вперед, А за ним такая гладь — Ни морщинки не видать. +Утюг +Стоит дуб, В нем двенадцать гнезд, В каждом гнезде По четыре яйца, В каждом яйце По семи цыпленков. +Год +Музыкант, певец, рассказчик — А всего труба да ящик. +Граммофон +Из стены торчу, Головой кручу, Мою и пою Целую семью. +Душ \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt new file mode 100644 index 0000000..e69de29 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt new file mode 100644 index 0000000..e69de29 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/EquationTask.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/EquationTask.class new file mode 100644 index 0000000000000000000000000000000000000000..a0803df4f1f6a02d19d184655e7b6d362a258499 GIT binary patch literal 1002 zcmZ`%+foxj5IvLIl4X;Si-3rNcp(?eQohFG#Zn)Pq>7}X@{*c_sjy_Tk=@yN`4j&F zDJd-<`~W}7vS)Y2Sb>+Go}TH`r%(5<-#>l=*u$=l7~&cd29iiIES>NvH*M|=%~t~Te_ArY^VxZ133k+amRZv+@6j+3L1(AO1Qz050ZRo z*%3*PSPH6Qle1l(!3=w7%ttDRX{=yX!%YKgxW%wK-^qdSe47M_wO%r;HLv?Xj8|~m zz#RpXe0|W`f1zQMVSPR!)Fag4Kb}$VGd!b6rOS|bIyn*yxu)faeSh2+Zin}6iWHiY z0k^x{wbVTdCgib2GCaP5Z&?1i(KHy+m$M;3L+xn@Lm@lj0|`+oSLPWqEKIp=9nnx3 z>a*hiZQ%+gp|n&n)0TWNdd1&G?Dh7*0G3iuq$?8{VXXJ$7sUVmQ0K?>D1jtasPL%wHeycu;HOkI>$I@qL r=U6^F$GU=w2RyR@pFA-v5SLN_xg4flax6kIV|Wx~u^hSefQ$JDqp9Eg literal 0 HcmV?d00001 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.class new file mode 100644 index 0000000000000000000000000000000000000000..250d3b26c8eb43c697631ba51febf8b4460e86c5 GIT binary patch literal 1008 zcmZ`%+iuf95Ivil8`nvi3vDR{%C)(a7$M$*`htK5LL)U%xV%K0bd|bsoYr24!k_RL zrJ@4yzz6VAh*{f|RB2ykXJ>cLoH;YU|NQ&~U>lEh#1PkzFpxxwVd;QRxoLA}Xtw$X zVjvk(&n(B1+YIq?rJKeA(i(IFi!d0T^go$xJ{8VnWFGm}XW^QXdn3;rbGh&JLjT3_ zp({Mknm8SLW6(Xxr5FoG_81Dy{}tQPwVYu?)yNvisR9~zypO`|>Bys?p=h9lYYh1y z$(NQL(e#L?IP$qo&SrTAGwh-qsZYh}L+uhdAD-9bA>+=brBB2f!ct*X?@QfmrE<@t^WKS^UnwBGW{Bd8n9p1Mo zQfN*F-0pJMQuipBkoy+N@bnVCVfm|v(_l!SPlqH8)u%BGh3tr9lA=_u%yVQ|m~z|N zqp>p7XXXFb#3fupaj9aaE%{*dh95@!_4dSf2jZorIxJq?p1K-5?$CzBz;K%^)FzUJ zS{Sl%iYMs@!(F<)SL?0bs^7t?wKHhdtuti4QYeOdWD7`;O_SBhE+R`H_bIXwrr`k| z(oKPH(hCc`GI^?e1=XmGNvC>CR=+_zAtwY+1;K0p7$zqpK!zH&qU3kV-boO!=oUJ<;blET+F|?gW|vd literal 0 HcmV?d00001 diff --git a/lab-01/src/by/Savenok/quizer/Main.java b/lab-01/src/by/Savenok/quizer/Main.java index a93c022..2f2bf4b 100644 --- a/lab-01/src/by/Savenok/quizer/Main.java +++ b/lab-01/src/by/Savenok/quizer/Main.java @@ -1,8 +1,14 @@ package by.Savenok.quizer; import by.Savenok.quizer.task_generators.TaskGenerator; -import by.Savenok.quizer.task_generators.ExpressionTaskGenerator; +import by.Savenok.quizer.task_generators.math_task_generators.EquationTaskGenerator; +import by.Savenok.quizer.task_generators.math_task_generators.ExpressionTaskGenerator; +import by.Savenok.quizer.task_generators.TextTaskGenerator; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -12,9 +18,11 @@ public class Main { static Map getQuizMap() { Map generators = new HashMap<>(); - generators.put("Expression mode (5 tasks)", new Quiz(new ExpressionTaskGenerator(0, 10, true, true, true, true), 5)); - generators.put("Expression mode (10 tasks)", new Quiz(new ExpressionTaskGenerator(0, 10, true, true, true, true), 10)); - generators.put("Expression mode (15 tasks)", new Quiz(new ExpressionTaskGenerator(0, 10, true, true, true, true), 15)); + generators.put("Expression mode (5 tasks)", new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 5)); + generators.put("Expression mode (10 tasks)", new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 10)); + generators.put("Expression mode (15 tasks)", new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 15)); + generators.put("Equation mode (10 tasks)", new Quiz(new EquationTaskGenerator(0, 100, true, true, true, true), 10)); + generators.put("Text mode (3 tasks)", new Quiz(new TextTaskGenerator(TextTaskGenerator.DifficultyLevel.HARD), 3)); return generators; } public static void main(String[] args) { diff --git a/lab-01/src/by/Savenok/quizer/Randomizer.java b/lab-01/src/by/Savenok/quizer/Randomizer.java index dd3821f..79c55a3 100644 --- a/lab-01/src/by/Savenok/quizer/Randomizer.java +++ b/lab-01/src/by/Savenok/quizer/Randomizer.java @@ -5,4 +5,46 @@ public static int GenerateNumber(int lower_bound, int upper_bound) { double psi = Math.random() / Math.nextDown(1.0); return (int) (lower_bound * (1.0 - psi) + upper_bound * psi); } + + public static char GenerateOperator(boolean sum, + boolean difference, + boolean multiply, + boolean division) { + char[] enable_operators = new char[4]; + enable_operators[0] = '0'; + enable_operators[1] = '0'; + enable_operators[2] = '0'; + enable_operators[3] = '0'; + if (sum) { + enable_operators[0] = '+'; + } + if (difference) { + enable_operators[1] = '-'; + } + if (multiply) { + enable_operators[2] = '*'; + } + if (division) { + enable_operators[3] = '/'; + } + char operator = '0'; + while (operator == '0') { + int index = Randomizer.GenerateNumber(0, 4); + operator = enable_operators[index]; + } + return operator; + } + + public enum XPosition { + FIRST, + SECOND + } + + public static XPosition GetXPosition() { + int pos = GenerateNumber(0, 2); + if (pos == 0) { + return XPosition.FIRST; + } + return XPosition.SECOND; + } } diff --git a/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java new file mode 100644 index 0000000..99f90a3 --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java @@ -0,0 +1,53 @@ +package by.Savenok.quizer.task_generators; + +import by.Savenok.quizer.tasks.TextTask; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.Scanner; + +public class TextTaskGenerator implements TaskGenerator { + public TextTaskGenerator(DifficultyLevel level) { + + difficulty_level_ = level; + if (difficulty_level_ == DifficultyLevel.HARD) { +// File file = new File("D:\\IntelliJ Projects\\Java-BSU-2022\\lab-01\\src\\by\\Savenok\\quizer\\input.txt"); +// br_ = new BufferedReader(new FileReader(file)); + } + if (difficulty_level_ == DifficultyLevel.IMPOSSIBLE) { + scanner_ = new Scanner("TextTaskStatementsImpossible.txt"); + } + if (difficulty_level_ == DifficultyLevel.NIGHTMARE) { + scanner_ = new Scanner("TextTaskStatementsNightmare.txt"); + } + + } + + public TextTask generate() { +// String st = scanner_.nextLine(); +// String s = scanner_.nextLine(); +// System.out.print(st); +// System.out.print(s); + File file = new File("D:\\IntelliJ Projects\\Java-BSU-2022\\lab-01\\src\\by\\Savenok\\quizer\\input.txt"); + try (BufferedReader br = new BufferedReader(new FileReader(file))) + { + String line = br.readLine(); + return new TextTask(line, br.readLine()); + } catch (IOException e) { + e.printStackTrace(); + } + return new TextTask("", ""); + } + + public enum DifficultyLevel { + HARD, + IMPOSSIBLE, + NIGHTMARE + } + + DifficultyLevel difficulty_level_; + Scanner scanner_; + BufferedReader bf_; +} diff --git a/lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.java b/lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.java new file mode 100644 index 0000000..a936c54 --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/EquationTaskGenerator.java @@ -0,0 +1,113 @@ +package by.Savenok.quizer.task_generators.math_task_generators; + +import by.Savenok.quizer.Randomizer; +import by.Savenok.quizer.task_generators.TaskGenerator; +import by.Savenok.quizer.tasks.maths_tasks.ExpressionTask; + +public class EquationTaskGenerator implements TaskGenerator { + public EquationTaskGenerator( + int minNumber, + int maxNumber, + boolean generateSum, + boolean generateDifference, + boolean generateMultiplication, + boolean generateDivision + ) { + minNumber_ = minNumber; + maxNumber_ = maxNumber; + generateSum_ = generateSum; + generateDifference_ = generateDifference; + generateMultiplication_ = generateMultiplication; + generateDivision_ = generateDivision; + } + + private String ParseTask(int left_side_number, + int answer, + Randomizer.XPosition position, + char operator) { + String ans = "x"; + if (position == Randomizer.XPosition.FIRST) { + ans = "x" + operator + Integer.toString(left_side_number); + } else { + ans = Integer.toString(left_side_number) + operator + "x"; + } + ans += "=" + Integer.toString(answer); + return ans; + } + + public ExpressionTask generate() { + int left_side_number = Randomizer.GenerateNumber(minNumber_, maxNumber_); + int answer = Randomizer.GenerateNumber(minNumber_, maxNumber_); + Randomizer.XPosition position = Randomizer.GetXPosition(); + char operator = Randomizer.GenerateOperator(generateSum_, + generateDifference_, + generateMultiplication_, + generateDivision_); + return new ExpressionTask(ParseTask(left_side_number, answer, position, operator), + CalculateAnswer(left_side_number, answer, position, operator)); + } + + String CalculateAnswer(int left_side_number, + int answer, + Randomizer.XPosition position, + char operator) { + if (operator == '+') { + return Integer.toString(answer - left_side_number); + } + if (operator == '-') { + if (position == Randomizer.XPosition.FIRST) { + return Integer.toString(answer + left_side_number); + } else { + return Integer.toString(left_side_number - answer); + } + } + if (operator == '*') { + if (answer == 0 && left_side_number != 0) { + return "0"; + } else { + if (answer == 0) { + return "EVERY"; + } + } + if (left_side_number == 0) { + return "NO"; + } + return Integer.toString(answer / left_side_number); + } + if (operator == '/') { + if (position == Randomizer.XPosition.FIRST) { + if (left_side_number == 0) { + return "NO"; + } else { + if (answer == 0) { + return "0"; + } else { + return Integer.toString(answer * left_side_number); + } + } + } else { + if (left_side_number == 0) { + if (answer != 0) { + return "NO"; + } else { + return "EVERY"; + } + } else { + if (answer == 0) { + return "NO"; + } else { + return Integer.toString(left_side_number / answer); + } + } + } + } + return "bad input"; // bad + } + + int minNumber_; + int maxNumber_; + boolean generateSum_ = false; + boolean generateDifference_ = false; + boolean generateMultiplication_ = false; + boolean generateDivision_ = false; +} diff --git a/lab-01/src/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.java b/lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/ExpressionTaskGenerator.java similarity index 68% rename from lab-01/src/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.java rename to lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/ExpressionTaskGenerator.java index 7070988..a089aa2 100644 --- a/lab-01/src/by/Savenok/quizer/task_generators/ExpressionTaskGenerator.java +++ b/lab-01/src/by/Savenok/quizer/task_generators/math_task_generators/ExpressionTaskGenerator.java @@ -1,7 +1,8 @@ -package by.Savenok.quizer.task_generators; +package by.Savenok.quizer.task_generators.math_task_generators; import by.Savenok.quizer.Randomizer; -import by.Savenok.quizer.tasks.ExpressionTask; +import by.Savenok.quizer.task_generators.TaskGenerator; +import by.Savenok.quizer.tasks.maths_tasks.ExpressionTask; public class ExpressionTaskGenerator implements TaskGenerator { public ExpressionTaskGenerator( @@ -30,29 +31,12 @@ private String ParseTask(int first, int second, char operator) { public ExpressionTask generate() { int first = Randomizer.GenerateNumber(minNumber_, maxNumber_); int second = Randomizer.GenerateNumber(minNumber_, maxNumber_); - char[] enable_operators = new char[4]; - enable_operators[0] = '0'; - enable_operators[1] = '0'; - enable_operators[2] = '0'; - enable_operators[3] = '0'; - if (generateSum_) { - enable_operators[0] = '+'; - } - if (generateDifference_) { - enable_operators[1] = '-'; - } - if (generateMultiplication_) { - enable_operators[2] = '*'; - } - if (generateDivision_) { - enable_operators[3] = '/'; - } - char operator = '0'; - while (operator == '0') { - int index = Randomizer.GenerateNumber(0, 4); - operator = enable_operators[index]; - } - return new ExpressionTask(ParseTask(first, second, operator), CalculateAnswer(first, second, operator)); + char operator = Randomizer.GenerateOperator(generateSum_, + generateDifference_, + generateMultiplication_, + generateDivision_); + return new ExpressionTask(ParseTask(first, second, operator), + CalculateAnswer(first, second, operator)); } String CalculateAnswer(int first, int second, char operator) { diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTask.java b/lab-01/src/by/Savenok/quizer/tasks/TextTask.java new file mode 100644 index 0000000..11a96f2 --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/tasks/TextTask.java @@ -0,0 +1,24 @@ +package by.Savenok.quizer.tasks; + +import by.Savenok.quizer.Result; + +import java.util.Objects; + +public class TextTask implements Task { + public TextTask(String statement, String answer) { + statement_ = statement; + answer_ = answer; + } + public String getText(){ + return statement_; + } + public Result validate(String answer){ + if (Objects.equals(answer, answer_)) { + return Result.OK; + } else { + return Result.WRONG; + } + } + String statement_; + String answer_; +} diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt b/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt new file mode 100644 index 0000000..e7e0bb7 --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt @@ -0,0 +1,8 @@ +В Полотняной стране По реке Простыне Плывет пароход То назад, то вперед, А за ним такая гладь — Ни морщинки не видать. +Утюг +Стоит дуб, В нем двенадцать гнезд, В каждом гнезде По четыре яйца, В каждом яйце По семи цыпленков. +Год +Музыкант, певец, рассказчик — А всего труба да ящик. +Граммофон +Из стены торчу, Головой кручу, Мою и пою Целую семью. +Душ \ No newline at end of file diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt b/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt new file mode 100644 index 0000000..e69de29 diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt b/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt new file mode 100644 index 0000000..e69de29 diff --git a/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java new file mode 100644 index 0000000..9138024 --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java @@ -0,0 +1,25 @@ +package by.Savenok.quizer.tasks.maths_tasks; + +import by.Savenok.quizer.Result; +import by.Savenok.quizer.tasks.Task; + +import java.util.Objects; + +public class EquationTask implements Task { + public EquationTask(String statement, String answer) { + statement_ = statement; + answer_ = answer; + } + public String getText(){ + return statement_; + } + public Result validate(String answer){ + if (Objects.equals(answer, answer_)) { + return Result.OK; + } else { + return Result.WRONG; + } + } + String statement_; + String answer_; +} diff --git a/lab-01/src/by/Savenok/quizer/tasks/ExpressionTask.java b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java similarity index 86% rename from lab-01/src/by/Savenok/quizer/tasks/ExpressionTask.java rename to lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java index d28f491..0897920 100644 --- a/lab-01/src/by/Savenok/quizer/tasks/ExpressionTask.java +++ b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java @@ -1,6 +1,7 @@ -package by.Savenok.quizer.tasks; +package by.Savenok.quizer.tasks.maths_tasks; import by.Savenok.quizer.Result; +import by.Savenok.quizer.tasks.Task; import java.util.Objects; From bbc2225f095290da0b9c80b4b64b9e47469c48d8 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 7 Oct 2022 23:40:51 +0300 Subject: [PATCH 4/4] done text tasks, done quiz chosing system --- .../HelloWorld/by/Savenok/quizer/Main.class | Bin 3392 -> 5181 bytes .../HelloWorld/by/Savenok/quizer/Quiz.class | Bin 2667 -> 2749 bytes .../HelloWorld/by/Savenok/quizer/input.txt | 2 - .../TextTaskGenerator$DifficultyLevel.class | Bin 1471 -> 1414 bytes .../task_generators/TextTaskGenerator.class | Bin 2225 -> 1781 bytes .../TextTaskStatementsHard.txt | 12 ++- .../TextTaskStatementsNightmare.txt | 10 ++ .../by/Savenok/quizer/tasks/Task.class | Bin 222 -> 242 bytes .../by/Savenok/quizer/tasks/TextTask.class | Bin 966 -> 1039 bytes .../tasks/TextTaskStatementsImpossible.txt | 0 .../tasks/TextTaskStatementsNightmare.txt | 0 .../tasks/maths_tasks/EquationTask.class | Bin 1002 -> 1075 bytes .../tasks/maths_tasks/ExpressionTask.class | Bin 1008 -> 1081 bytes lab-01/src/by/Savenok/quizer/Main.java | 102 +++++++++++++++--- lab-01/src/by/Savenok/quizer/Quiz.java | 3 + .../task_generators/TextTaskGenerator.java | 34 ++---- .../TextTaskStatementsHard.txt | 12 ++- .../TextTaskStatementsNightmare.txt | 10 ++ lab-01/src/by/Savenok/quizer/tasks/Task.java | 1 + .../src/by/Savenok/quizer/tasks/TextTask.java | 3 + .../tasks/TextTaskStatementsImpossible.txt | 0 .../tasks/TextTaskStatementsNightmare.txt | 0 .../tasks/maths_tasks/EquationTask.java | 4 + .../tasks/maths_tasks/ExpressionTask.java | 3 + 24 files changed, 152 insertions(+), 44 deletions(-) delete mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt rename lab-01/{src/by/Savenok/quizer/tasks => out/production/HelloWorld/by/Savenok/quizer/task_generators}/TextTaskStatementsHard.txt (58%) create mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt delete mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt delete mode 100644 lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt rename lab-01/{out/production/HelloWorld/by/Savenok/quizer/tasks => src/by/Savenok/quizer/task_generators}/TextTaskStatementsHard.txt (58%) create mode 100644 lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt delete mode 100644 lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt delete mode 100644 lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/Main.class index e241a24274206a45b1c2d96a2b75575008b55a23..b0a44dd017c3ea2bade1774612ff85dcbebbf9d1 100644 GIT binary patch literal 5181 zcmbVQ3wRXO75?vLH#1oV2@3(@16Il-!N8&j(uAiWkd-7LNrQ=&FxiaBklmTEGfNZu zlD5)f-?a~^ec7tiYFo8RK&r()t!?f5rS@TK->t2!U;F8&(*MrRW@pJ-vH5mq@7#0l zx##@nb#ESe;okcJti#h$gixU%tRaF*f$BZ_K0T4vt--{${yj#@6{uWeTBf^BprWq6 zTY)Mt-DAqRW;)TTJ45aINE8YxR7?@5Z5bWO8jfSyRy<=581cH5aaVVSoq7dR1!nb+ zB|7zehGh>Y_U6p1jBMgk{wSCx&@q`NSN07WmXXz6JL@Dex;xZ&>SS@pF0yYaa7S?l zrc1M80#$X%WH0~fyQ9!BQ_j{1tgLH$=`BlSHYMx3r(ibbD5%wNCe9L=S_FeY5T%hE zL0etdb}EuhlV|EDPpLRZ;LM^)K8WWp_fb?auPnWQvWjyBX1DCk>25g}yh7kKY%UM8 zFS7)YDCT3jibVo*PT4b{aa|c|QQsv3GrEjX*SB=VM7T5vtT+w-aA}E3Ral0Eg5?^{ z#{~k-|A&YLo6IY(G*h{>JJx3GGtvU#){Q$h3ACIBc+!>u@JQXntzfs}Z>QbVHzqpBmhrM0Vloly#hLXJR9CKVF!$7uW zAlKwW)U*@Zv!>;Cx>-ZdG^w~)plPRWxpCKyr#R;t@i9A>%{$S~##2MKW5jhUZj73a zYg&VG+cMV2>v~!`6CK;?qu7KN1)DW&K`Zt4lBIMLfyjv5k~##Fi5gH^lPpD-l$4^* zly0$5NW?CG1FNz-YD!5$36?k=thWU!>u%sHyr8EbNgO=sV<;p~_iatte9A;x*0 zVUMgK9>c&yCdAV+70AYPsBYD>1Mx(>!yFuPGkVrgL8QZSHi{AKRgl%-fWFK33a_Cg zDR9up63P)h>ll1}5!WVVk>01_HL@dBb-H@il}$p$n5VbipElx7E|ZV%^(tOVkv)bZ z^|4jFUb?|>RJ>7^9n0gERv1~sO6AdWxM)9{kx$Jq(an+c*o440)55&@8GSTvd{NS<{-BeXBsUh_;G@RHguU6mQ2n6ueWzyYTL^&97aTAsQVtJPW-BGQAL8UW4US zlk7O})$l%CN7;tuX2&`W32g}@r^xsLd{DuMG+d8EC9TO@pqg~KY@}4BWNp%)r+^#q z5d|OB@G*Q`AXe;c1r`R{knVIaj0kgGeXm?`qlQo7Q}n+~kyF#dk7@-s7t*|7*8)PE z9h-uia9G2qrGQG}u+LGfD2}Ak zOkG0M%rlX|G+9VGytwL;0ZORb?3AAF*0ZL3_b0>dkV)0&l<7J$aGJcxDIAWZ)S|y+ z+|bRXQpZLLlKm=EaK)O*W|!GhCSlV$xogX4${3Lc3`fCN1kNdx@6Be~=&;?*EGPpL zJTiyPK}&aYSsJ>wB=V@{%iKGh@ls}1-Q|;YuJ0zo@>p3OGf#g3EtPXzJJaXYGl{&X zy;q|AD4@Uk`94gCv(5;JUXEBp_++i{#{1-0A0;g*M>312_;Tg3m)YsR$!gu_1*+^v zj2^$E7NE~(0YMGx*+DvcMj5*}8*r`P=;V_8RuNzP#sCw6%}ain@J?m9O$~Fk7lH~N zp|?BP*i(k|EnO)CZ<$1lDSEMOyN;XHN7@Z{$R2Q}RpNJ1{2qT$@JE@De-ce!9N5RPQsv^ zX$t-+F!z76vP9-_z`1NKAr?NM0t{DF@_CeR3H}QHMwX02+{r-*$M}?FU>fe_Q_C~p zIKId?RrV$d;bO7Nr@e3-O3yf|wl0Z9k3;J@jx%~Hst3aS8%MP|jv2==s{%Wh#Lk{f zu8s!ibIZ`D1?cfSeST5=f}r??lgTCG7nh+2#nLQmD1@(}iZZ^z5z!AD+-(Y{<9DGcw($s>k0VLNw~k|5+j&Q@Bi4Ns zmmLy^Bze~n?3TYN{z_WAd@=l&j)vHvWW_EyYx=CiKD9Ai8;)f>`urjW5}u_;VH1YN zNNwZ@a);qNSE45&^2sFKd05PlqDOtvS51hnSQVl4*Ll(_!>b~a>kVbNDuY~=lI!X+ zTuP8jd9fYUAeSn+-sI~;dsbD+iMIqMq7AVFo_>CCozYVht*NSs)Ku0eH4MJ$fSnDo zw*^_}pTfEzz$&+qUO9?u+Z&GIJ%SPRe*RNq=`nm*;1JH`;1dETa8qNLytUzDxJAC+ z$~A{iJ|>;mA!Xd=tJ)ZDSXvvt7oP(DQ5LrUDu`^-Hs#eLW#9>B1892xNxZyQg;7SCWLB(OKc>qh7-IH7rPy*#{~IlG@l z@j-l(&)wAeA?hBcEzjcH-spb(2j9WNq&|V~-RgItGXWWDNi=X2W`ejCFDzBlBLQwBMuO@`3 z@nSqCS5W6#{KC^k)`?jN`7(Zqu+M*jJN$~Yc1$@*7ey5OT0v65t@#gV%$(5kSjboL z92QP|pQi`JNrnLTkSl=aFwf_anE2KOC delta 1101 zcmYk5%X3pz9LGN=Npo+~lTuTgHXW_SX{V4hhPF^3Km{v;wn1aTT3R2mjcp-KYI6$~ z(IP4!SWu5I6dxdp3m3qm4>~$5Tsf|saooA`f6#Hp$M3d`x;W?e`2L>Xd(Ss(Zq^0A z|LexLKqp^a3;v``uP17LQ-kK5C*oV9Xg9Oo_R0V;;ubBM1otSq#Mxz%-i+PMI!zg^ z=9ITP6ri2;78^7jY&5HU?RRfh+}1T(ES7Q&PPTNgVZ1n;O9k1&R*P*~dfsc!`f6=! zVsfnDJ*+yK1e)Gcx#pIlV*KLLoQl?l-K-@vOo#R!~%%%ChQUkSwDv3u8u?-Dzhz zsL3;KTFV+&7p3?A2q-lS6{iYLDlCLQrxexK37_5Aq=&SzK^i zd~8Pbcj{A<2z9Ei+F%bAeZQRbpS0<4&>SIU&|bIUY_C;B`(5 zBGafAyfd;HIM-zGLdF~SBF~v>x?~%~NB7?5+lw@4_ z`F%@`6j9j~SP{HklRH$+WGa zwGn4MDK@Z8UdwJal4cY8*vx=ZnR#6s%aU&5ch)ctRxFMhrp(slckxeLzV5wzwL2wtvCFzUN z2cLv!OpK^w)abME-G4&=0uvSQHxS@~mzg`?J?Gqe&)o0VnlEeJ-~WC33LN0k8}|=; zc@=dA)r2)1ImO$;Zi1XNXrNNV6^)DzR`f(8Zd^1PoF-Sp8;kc3_jE*xq5~t5xSM8L zbXpDC66ucIb?pWn)M)6jcu#b&FPbd*PJ=GG6HSin@n+5%^wO>2tgo&L9rcjIIfJOG zmfRH?oEKH3n8A64^Oc8+tE#I@i)&lTL&xiCRVxDqgA7R#VN|xodo}Di+e+M2F``Bp zRil*5k8;uA5=m07y{~^D^7f}AThs0*d`Uyj%V>-xCX<5oSHz9YA`4y|(ta|Xq)5xD zbdw>`dVG@iGcJgY*yXu}39iapMc2p_B^6!Az$Q_-pq2I-JuhErr&yeHQO_V<&`QU! zI9ZE2Vy(rA=~=rJC&|ihvao5Es%H`F;RZLYd=ZB&))#&A?j=^vvI?sfShqyeiOqLN zwYrC$7HyR)ZR-*(e;LiWSS)`58*-&}EMW^)#NM9AN`-vUSCyQBcci|Oz{V1J|B7V! zqgGSjT!FB{&bwBM&Jl60Y#AqW*-Umcuh8yThK+&NEM_}|{_-=yhFJGC7ksOJo{>%R zeu2wWTRzgKVWQZUpy2wa@hV)Z!llm44JfEd++Z++a&uyvNj(6 E2L|o8I{*Lx delta 1048 zcmZvbOHUJV6vfZ9mVLWP~( z`2k?#0#HlT=m&7`XK>-dwTX)7KQ!2oW|GeBz5nx@d(YhYeDKEs^Vh#0zW}&^>r zFoaGC@^m~JOH9N}tPd*~ftrdLjz_{6Rd5Tc1Y;=B?!PR`V+zJa#@6EZwg&>u-e9D~ z-_aEm51mvH!xV9&YQi@ZAD5taRy3K>j@t?Xh)Xayn<~1^@F1aJ_N{EJk)-FTy1ZHA z93;%A*7H1}1rB$NFu)1}+cRMp1#HOy6~&AW!^XNDcX;9m^!zQyUEJecME6lbl87Ea zfsRoNPYd>0xjHG>1)8Ra^kNk8wBRV3rgWD>>x71tdNKsX;(CYj$`3f9!#e-!AW(Ul z?5Kt)+&Q+3u;3w*TD=h$GqBWmxlHR}N9fFY_P&g8kys;iwgxeT8z(c$THZy*$TqBR z7-Tn4o5eBiHc*>WY#-aJuFI)@lvC~4D?Xo7%q0+gr+((Uy8m0=3>lYb`;{zBN!HkU zNLI=oYqrvR$;~%q;H)d3;OX5&-4@QZxzebAjmgxMsWe%cM$qS~N+aaogtt14zBD4$ zo4BzGyQ`N*83y0Oy0*Q=+|5;3Mb0jAb|#{kghM18Yum4gAbcW?X>w;a_*}jAl3TH# zaT_e~G4i8~>s*5lxRbbs(_CvWI?;+CuP%gm4WNe~O&>i7bJBjUK5$z2@E zO(&jkKXfEC;3-#IEb>am4GR`=2G3~5BC~}s{)R<{=MS#RSdtO8|AJiylY|#6>+td) DAf}?q diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt deleted file mode 100644 index 701c652..0000000 --- a/lab-01/out/production/HelloWorld/by/Savenok/quizer/input.txt +++ /dev/null @@ -1,2 +0,0 @@ -aaaaaaa -bbbbbbbb \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator$DifficultyLevel.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskGenerator$DifficultyLevel.class index 05f2be88e7b9aeb1c0b8e914cf7516ae0e7c89aa..1d71446313c6e866d6beb5da922422c3c5d63202 100644 GIT binary patch delta 515 zcmZWm%TB^T6g|@xN~Z%9tRfXqKv6(^fx0sgW7LH%L>7F7pTN#N>3+<~c?E0d0bz*_R77&Q`zdCjt zj)|y10!javCH4k2m^$cM8}h}s1qW-iX!>fh!qIs#|Pj~h)oc`C&o~se^~W0q)%Zz&^Mr| zDo?V?7;_Uasn=%pJ#0`(Ol2seq68G4WOC##bUJ`psb)q3bM$gAfRR zJ{ul@hwvGUcczV!xRdP7Idjh3b7#JU*P;IT`}_*nW~-~e)^zje^c$oct7BC?WBdkX^(m|G{58~tGD8{5tT=(p zAu`)?4Nn#X)!O7Kli%I;{eJ)K0joAUFPvsA(suAsl2v?Rp_sWuwY@$aFKPRIf~1}9 zqm%#V$g(cYhjSl~+$$Gij%U16W(Rl<%=r!k4$P+=&}S?R$lI*LyNR8DnY@fwmXsCh cRiTDK8*GR$#YTfowar65Av1zVNk7a}c6X$cTxi3y1b*}#g6b!*y-;f?qY zH20lHpM?lbY{IkgU-%1r;#Hkngdm&j%-lI=X3qWC3m2|uFZBa2RJxXKW2cirM{HCtJ;J?dg0hHH`)Cp5Kie(GfUMF2VyCI&Dl_StZB z$ixkp41uNcTxof+@O)Os2t!RO3tdzuez8F{#V{at)riRW%v=nXiBXI(=pM;la6N~i zCzU>#TD856Y=zfdZ)4Ix5*eu~D`tFSx{li>?qFPm)toxPD7&i;iK-e@N+~g@_I_H8 zi#`?-Kh<2~6`dDD@c*4KsQk6tV3;_iKlArxjM?oq=N)%zUPHqSL;U>imukFN+w#`W zIO53vVJ8QLZmI(&S;%uC>jNXDcL}*itM5=L1I$}ZFl+Pxn)MahJ~}@m) zMXQC_%2*S92k1Y+ub<+>7xBIJjQeCqb`T&Jpb;HpO>`rOI4&cNFvjV=rzlfK1P_R1 z5i3rdhnOU3Q)dxL!y{VDZ=N2VN%E&D4ng@tjT8;KMs1Nmp0X;T1^Vgq$?nJ<=G#di z(n4~D#P=T}{m(UV^9wN)NVS)!0Q9`17&(M0P6mex)b0soWVbANiTSNV+`3q-pDXrL baZ<|m;VD@KvnZ060)v>N$Y@78O8MAdy62se literal 2225 zcmb_eZBr9h6n-vQ+_0>IQBY_tXh9(wqo}O{wY)<#36?}GZCbiXZeVpu(%p^K{vbR3 zrkyG?Wv2b!A65F?-6V?GcE;&sX7Al|&pqck&w1JW`PXm11GtTc209SYp_%B!5rN)^ z)?+K_Sk#?lX9wonT*gr}) z>092T%`I7#uI1NUFPWE5{5)mLEs?1+xtrr*QV$U@stTG^TE z!ZGyd=rwU%!JGddYzk;Avug{=@(B|sm02T|xwo3jrRLI$I{Fz;Kw87Mon)?LRT+8| zrv-*vq33+dmpiiRd#Rmz&GYP{BQN_;d;@(LRK$NE&^MNTO?}RH?dsN4NcR~NA7Mx! z>V>vR)`?K}O^-q7XHA?_0K2lO<&}J9c5N|=5rLt@K(hAMw!dS!0S+DK1Lh)&#Sqg=) z6bg2=-tfafM=_}5qCkJk%Uq*Uk*+MSNvkYf9SMP0>r5dC}Cqbdbys?xEDM}| z(_Q-pqtvn7vPNoBtBX%cvhLfps(~e>Ox#h9d+MwxpM_X@ly|KX6Py-+!EVl)Sj9aO z)a+RjG(v*@i-{>6YXZr4s~zb7gS{UqR#?ENL!yZHU>!^etc?AG?*m5P9x8_>!T35G zcfM9;I6W%u*~U&$x_QMiD=l3sSax6C?0 z(ZvpzhCoNr6%Yi}*XHAm{L!dZVJiq6YagrDpnUk>GDO0uV&rNKwS z_&i4xpl^*MxeGlw!QUB9<~aIs9j7phL3~M#{?Icv@D<;P0blc$K!N+?i0t!PhmNRD zGwAQ<0sA0?Es_kOlWGt4FuD=Du#55Z9^xB&xU_L`7ngT&HFN0|u4ngfb0eX4yO^BR zxcO{Ad!AM6Pw1Z15(C;R%q9L%$}37Yb~kpHs?Uji5DB84!42HPG*<&x*{@5Kspk@T zRI$b>2YELb^&m#b^eFG0r|u{<&r$C@mT>`hF&@Nxov?@aS@{Ov(!wCe=O(k#K^+a> z!3r38&}76w21S&bj7&q@r%C=7AS0tXJqsN(``~|rwupj2s_*ks$la(CEcMQkymCk$ xl3Y1l&>4S)%yVu!f>4eG!tMa3N&^*|Kq8QVRs~yJHJ%;AHg`s_i^856_#4-DDsBJ( diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsHard.txt similarity index 58% rename from lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt rename to lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsHard.txt index e7e0bb7..879f037 100644 --- a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt +++ b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsHard.txt @@ -5,4 +5,14 @@ Музыкант, певец, рассказчик — А всего труба да ящик. Граммофон Из стены торчу, Головой кручу, Мою и пою Целую семью. -Душ \ No newline at end of file +Душ +Под гору — коняшка, в гору — деревяшка. +Санки +Сидит в темнице, красная девица, а коса на улице. +Морковь +Зимой — звезда, весной — вода. +Снежинка +Кто зимой холодной ходит злой, голодный? +Волк +Белые поросятки прилегли на грядке. +Кабачки \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt new file mode 100644 index 0000000..90c4dce --- /dev/null +++ b/lab-01/out/production/HelloWorld/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt @@ -0,0 +1,10 @@ +Продолжите знаменитую фразу: "Ноль, ноль, ноль и так далее ..." +Ноль +Мы считали дырки в сыре три плюс два равно +Пять +Самое большое млекопитающее +Синий кит +Какой балл нужно поставить мне за лабу +Высокий +Напишите "Прикол" +хы \ No newline at end of file diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/Task.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/Task.class index cbe4864ab6eada6a71908dac086d527138a9f6a6..a0a9a6a5cdf7bb9e42627219ab2fa2cb766bb7d8 100644 GIT binary patch delta 68 zcmcb|_=%D0)W2Q(7#JAr7nI_Y1<3x delta 49 zcmeywc#o0m)W2Q(7#JAr7`P{LMNce@lV)OJWME}rV_*Q%>ff$?3=9l*42B!I@|n0e(^E?v^NPz;izb&dSuwI~-o(Vu=%mHK$e;vN tr4OVTfi$bu76#r8Kn4?oGLU2g3yL$S0NFec1q`YTYCs+%Pzy+v0RRnF5LEyG delta 36 scmeC@IL6L(>ff$?3=9l*3r0NC&eSO5S3 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt deleted file mode 100644 index e69de29..0000000 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt deleted file mode 100644 index e69de29..0000000 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/EquationTask.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/EquationTask.class index a0803df4f1f6a02d19d184655e7b6d362a258499..5f180630e26daaeb151233e8fec6b7cdb233c1f1 100644 GIT binary patch delta 92 zcmaFGzL|sT)W2Q(7#JAr7z{UZ^)qpCrl*!T<`tKx7EPYcWXH&|`5F^H<76jh5k1}w lKxIq}%0QBhfe}bbGN=Ga9x$7gL6t!b$YW&C2a-$-1^`f15Pkpv delta 36 scmdnY@rs@6)W2Q(7#JAr7z{RY^)pRg%4EaHy!jCmKO-vx0~3Qj0O-gH2mk;8 diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.class b/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.class index 250d3b26c8eb43c697631ba51febf8b4460e86c5..de27a2fd14f9f970166cf5f83bd2dd02137d477d 100644 GIT binary patch delta 108 zcmeyszLSIN)W2Q(7#JAr7z{UZO=jZaOiwLw%quQWEt))=$$^n&^BpFBMkg%>Mg}FI tDt#c$2&7rHwlMH+05X^ulz}80SWtpN1<2-sC}2=!Py_N9fm%SS3; getQuizMap() { + static Map getQuizMap() throws FileNotFoundException { Map generators = new HashMap<>(); - generators.put("Expression mode (5 tasks)", new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 5)); - generators.put("Expression mode (10 tasks)", new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 10)); - generators.put("Expression mode (15 tasks)", new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 15)); - generators.put("Equation mode (10 tasks)", new Quiz(new EquationTaskGenerator(0, 100, true, true, true, true), 10)); - generators.put("Text mode (3 tasks)", new Quiz(new TextTaskGenerator(TextTaskGenerator.DifficultyLevel.HARD), 3)); + generators.put("Expression mode (5 tasks)", + new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 5)); + generators.put("Expression mode (10 tasks)", + new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 10)); + generators.put("Expression mode (15 tasks)", + new Quiz(new ExpressionTaskGenerator(0, 100, true, true, true, true), 15)); + generators.put("Equation mode (5 tasks)", + new Quiz(new EquationTaskGenerator(0, 100, true, true, true, true), 5)); + generators.put("Equation mode (10 tasks)", + new Quiz(new EquationTaskGenerator(0, 100, true, true, true, true), 10)); + generators.put("Equation mode (15 tasks)", + new Quiz(new EquationTaskGenerator(0, 100, true, true, true, true), 15)); + generators.put("Text mode (3 tasks)", + new Quiz(new TextTaskGenerator(TextTaskGenerator.DifficultyLevel.HARD), 3)); + generators.put("Text mode (2 tasks)", + new Quiz(new TextTaskGenerator(TextTaskGenerator.DifficultyLevel.NIGHTMARE), 2)); return generators; } - public static void main(String[] args) { - System.out.println("Choose task mode:"); + public static void main(String[] args) throws FileNotFoundException { + System.out.print("Want to create your mode or chose an existing one? (YES/NO)"); + Scanner in = new Scanner(System.in); + if (Objects.equals(in.nextLine(), "YES")) { + System.out.println("Choose task mode:"); + System.out.println("Expression / Equation / Text"); + String custom_mode = in.nextLine(); + System.out.println("Enter task count:"); + String custom_task_count = in.nextLine(); + if (Objects.equals(custom_mode, "Text")) { + System.out.println("Enter difficulty level:"); + System.out.println("Hard / Nightmare"); + String custom_level = in.nextLine(); + if (Objects.equals(custom_level, "Hard")) { + Quiz quiz = new Quiz(new TextTaskGenerator(TextTaskGenerator.DifficultyLevel.HARD), + Integer.parseInt(custom_task_count)); + quiz.StartQuiz(); + } else { + new Quiz(new TextTaskGenerator(TextTaskGenerator.DifficultyLevel.NIGHTMARE), + Integer.parseInt(custom_task_count)).StartQuiz(); + return; + } + } else { + System.out.println("Enable sum tasks?"); + System.out.println("Yes / No"); + String blank = in.nextLine(); + boolean sum = false; + if (Objects.equals(blank, "Yes")) { + sum = true; + } + System.out.println("Enable difference tasks?"); + System.out.println("Yes / No"); + blank = in.nextLine(); + boolean dif = false; + if (Objects.equals(blank, "Yes")) { + dif = true; + } + System.out.println("Enable multiply tasks?"); + System.out.println("Yes / No"); + blank = in.nextLine(); + boolean mul = false; + if (Objects.equals(blank, "Yes")) { + mul = true; + } + System.out.println("Enable sum tasks?"); + System.out.println("Yes / No"); + blank = in.nextLine(); + boolean div = false; + if (Objects.equals(blank, "Yes")) { + div = true; + } + System.out.println("Enter max number"); + int max = Integer.parseInt(in.nextLine()); + System.out.println("Enter min number"); + int min = Integer.parseInt(in.nextLine()); + + if (Objects.equals(custom_mode, "Expression")) { + new Quiz(new ExpressionTaskGenerator(min, max, sum,dif, mul, div), + Integer.parseInt(custom_task_count)).StartQuiz(); + return; + } + if (Objects.equals(custom_mode, "Equation")) { + new Quiz(new EquationTaskGenerator(min, max, sum,dif, mul, div), + Integer.parseInt(custom_task_count)).StartQuiz(); + return; + } + } + + } + System.out.println("Choose task mode (Expression / Equation / Text):"); Map generators = getQuizMap(); for (Map.Entry it : generators.entrySet()) { System.out.println(it.getKey()); } - Scanner in = new Scanner(System.in); String mode = in.nextLine(); System.out.println("Choose tasks count:"); String count = in.nextLine(); generators.get(mode + " mode " + "(" + count + " tasks)").StartQuiz(); - in.close(); } } \ No newline at end of file diff --git a/lab-01/src/by/Savenok/quizer/Quiz.java b/lab-01/src/by/Savenok/quizer/Quiz.java index 926327d..8fb5ec1 100644 --- a/lab-01/src/by/Savenok/quizer/Quiz.java +++ b/lab-01/src/by/Savenok/quizer/Quiz.java @@ -77,6 +77,7 @@ public void StartQuiz() { while (!isFinished()) { current_task_ = generator_.generate(); System.out.print(nextTask().getText()); + System.out.print('\n'); String users_answer = in.nextLine(); Result result = provideAnswer(users_answer); System.out.println(result.toString()); // @@ -86,6 +87,8 @@ public void StartQuiz() { } if (result == Result.WRONG) { wrong_answers_count_++; + System.out.print(current_task_.getAnswer()); + System.out.print('\n'); } if (result == Result.INCORRECT_INPUT) { incorrect_input_count_++; diff --git a/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java index 99f90a3..11d92b5 100644 --- a/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java +++ b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskGenerator.java @@ -2,52 +2,34 @@ import by.Savenok.quizer.tasks.TextTask; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; +import java.io.*; import java.util.Scanner; public class TextTaskGenerator implements TaskGenerator { - public TextTaskGenerator(DifficultyLevel level) { + public TextTaskGenerator(DifficultyLevel level) throws FileNotFoundException { difficulty_level_ = level; if (difficulty_level_ == DifficultyLevel.HARD) { -// File file = new File("D:\\IntelliJ Projects\\Java-BSU-2022\\lab-01\\src\\by\\Savenok\\quizer\\input.txt"); -// br_ = new BufferedReader(new FileReader(file)); - } - if (difficulty_level_ == DifficultyLevel.IMPOSSIBLE) { - scanner_ = new Scanner("TextTaskStatementsImpossible.txt"); +// File file = new File("TextTaskStatementsHard.txt"); + File file = new File("D:\\IntelliJ Projects\\Java-BSU-2022\\lab-01\\src\\by\\Savenok\\quizer\\task_generators\\TextTaskStatementsHard.txt"); + scanner_ = new Scanner(file); } if (difficulty_level_ == DifficultyLevel.NIGHTMARE) { - scanner_ = new Scanner("TextTaskStatementsNightmare.txt"); + File file = new File("D:\\IntelliJ Projects\\Java-BSU-2022\\lab-01\\src\\by\\Savenok\\quizer\\task_generators\\TextTaskStatementsNightmare.txt"); + scanner_ = new Scanner(file); } } public TextTask generate() { -// String st = scanner_.nextLine(); -// String s = scanner_.nextLine(); -// System.out.print(st); -// System.out.print(s); - File file = new File("D:\\IntelliJ Projects\\Java-BSU-2022\\lab-01\\src\\by\\Savenok\\quizer\\input.txt"); - try (BufferedReader br = new BufferedReader(new FileReader(file))) - { - String line = br.readLine(); - return new TextTask(line, br.readLine()); - } catch (IOException e) { - e.printStackTrace(); - } - return new TextTask("", ""); + return new TextTask(scanner_.nextLine(), scanner_.nextLine()); } public enum DifficultyLevel { HARD, - IMPOSSIBLE, NIGHTMARE } DifficultyLevel difficulty_level_; Scanner scanner_; - BufferedReader bf_; } diff --git a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsHard.txt similarity index 58% rename from lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt rename to lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsHard.txt index e7e0bb7..879f037 100644 --- a/lab-01/out/production/HelloWorld/by/Savenok/quizer/tasks/TextTaskStatementsHard.txt +++ b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsHard.txt @@ -5,4 +5,14 @@ Музыкант, певец, рассказчик — А всего труба да ящик. Граммофон Из стены торчу, Головой кручу, Мою и пою Целую семью. -Душ \ No newline at end of file +Душ +Под гору — коняшка, в гору — деревяшка. +Санки +Сидит в темнице, красная девица, а коса на улице. +Морковь +Зимой — звезда, весной — вода. +Снежинка +Кто зимой холодной ходит злой, голодный? +Волк +Белые поросятки прилегли на грядке. +Кабачки \ No newline at end of file diff --git a/lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt new file mode 100644 index 0000000..90c4dce --- /dev/null +++ b/lab-01/src/by/Savenok/quizer/task_generators/TextTaskStatementsNightmare.txt @@ -0,0 +1,10 @@ +Продолжите знаменитую фразу: "Ноль, ноль, ноль и так далее ..." +Ноль +Мы считали дырки в сыре три плюс два равно +Пять +Самое большое млекопитающее +Синий кит +Какой балл нужно поставить мне за лабу +Высокий +Напишите "Прикол" +хы \ No newline at end of file diff --git a/lab-01/src/by/Savenok/quizer/tasks/Task.java b/lab-01/src/by/Savenok/quizer/tasks/Task.java index cae96f8..3b6c7ba 100644 --- a/lab-01/src/by/Savenok/quizer/tasks/Task.java +++ b/lab-01/src/by/Savenok/quizer/tasks/Task.java @@ -8,6 +8,7 @@ public interface Task { */ String getText(); + String getAnswer(); /* * Проверяет ответ на задание и возвращает результат * diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTask.java b/lab-01/src/by/Savenok/quizer/tasks/TextTask.java index 11a96f2..7f82869 100644 --- a/lab-01/src/by/Savenok/quizer/tasks/TextTask.java +++ b/lab-01/src/by/Savenok/quizer/tasks/TextTask.java @@ -19,6 +19,9 @@ public Result validate(String answer){ return Result.WRONG; } } + public String getAnswer() { + return answer_; + } String statement_; String answer_; } diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt b/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsImpossible.txt deleted file mode 100644 index e69de29..0000000 diff --git a/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt b/lab-01/src/by/Savenok/quizer/tasks/TextTaskStatementsNightmare.txt deleted file mode 100644 index e69de29..0000000 diff --git a/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java index 9138024..b0f1f5d 100644 --- a/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java +++ b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/EquationTask.java @@ -20,6 +20,10 @@ public Result validate(String answer){ return Result.WRONG; } } + + public String getAnswer() { + return answer_; + } String statement_; String answer_; } diff --git a/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java index 0897920..004d854 100644 --- a/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java +++ b/lab-01/src/by/Savenok/quizer/tasks/maths_tasks/ExpressionTask.java @@ -20,6 +20,9 @@ public Result validate(String answer){ return Result.WRONG; } } + public String getAnswer() { + return answer_; + } String statement_; String answer_; }