From 8ee7031f24d9f1ca6ae30ae2a054f6838b657bc7 Mon Sep 17 00:00:00 2001 From: Jopick Date: Wed, 11 Oct 2023 00:19:51 +0500 Subject: [PATCH 1/6] task_tochno2 --- project-template/src/main/java/edu/hw1/Task_tochno1.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 project-template/src/main/java/edu/hw1/Task_tochno1.java diff --git a/project-template/src/main/java/edu/hw1/Task_tochno1.java b/project-template/src/main/java/edu/hw1/Task_tochno1.java new file mode 100644 index 0000000..e69de29 From e58864dea19536b0cc46a531822e8d5a95e1ff81 Mon Sep 17 00:00:00 2001 From: Jopick Date: Fri, 13 Oct 2023 22:44:57 +0500 Subject: [PATCH 2/6] resot Task1 and try test writing --- .../src/main/java/edu/hw1/Quiz.java | 166 ++++++++++++++++++ .../src/main/java/edu/hw1/Task1.java | 15 +- .../src/main/java/edu/hw1/Task2.java | 0 .../src/main/java/edu/hw1/Task_tochno1.java | 21 +++ .../src/test/java/edu/hw1/Task1_Test.java | 22 +++ 5 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 project-template/src/main/java/edu/hw1/Quiz.java create mode 100644 project-template/src/main/java/edu/hw1/Task2.java create mode 100644 project-template/src/test/java/edu/hw1/Task1_Test.java diff --git a/project-template/src/main/java/edu/hw1/Quiz.java b/project-template/src/main/java/edu/hw1/Quiz.java new file mode 100644 index 0000000..1e6d64a --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Quiz.java @@ -0,0 +1,166 @@ +import java.util.Arrays; +import java.util.Scanner; + +// ТУТ Я ПРОСТО ПРОВЕРЯЮ ВСЯКИЕ ФИЧИ И БАЛУЮСЬ ЭТО НЕ ДЗ!!!!!!! +public class Quiz { + + public static void main(String[] args) throws Exception { + // массив и его хранение + int[] v1 = new int[5]; + v1[0] = 1; + v1[1] = 2; + System.out.println(Arrays.toString(v1)); + + int[][] m2 = new int[5][5]; + System.out.println(Arrays.toString(m2[1])); + + //сравнение int и Integer + Integer a = 200; + Integer b = 200; + int e = 1; + int r = 1; + System.out.println(e == r); + System.out.println(a.equals(b)); + + // Цикл for while Foreach + for(int i = 0;i < 10; i++){ + System.out.print(i); + } + System.out.println(); + for(int i = 1; i < 10; i++){ + if(i % 6 == 0){ + break; + } + System.out.print(i); + } + System.out.println(); + for(int i = 0; i < 10; i++){ + if(i % 2 == 0){ + continue; + } + System.out.print(i); + } + System.out.println(); + int[] rt = new int[6]; + for(int el: rt) { + System.out.print(el + ", "); + } + System.out.println(); + int [][] men = new int[][] { + {1, 2}, + {3, 4, 5, 6}, + {7, 8, 9} + }; + for(int[] vTemp : men){ + for(int el : vTemp){ + System.out.print(el + ", "); + } + System.out.println(); + } + int aq = 100; + int nq = 1; + while ( nq < aq){ + nq *= 2; + } + System.out.println(nq); + nq = 1; + aq = 100; + int cq; + if (aq < nq) { + cq = aq; + } else { + cq = nq; + } + System.out.println(cq); + // то же самое что и if + cq = (aq < nq) ? aq : nq; + System.out.println(cq); + // swich AND if + + String str = "y"; + int res; + + if (str.equals("a") || str.equals("b")){ + res = 0; + } else if (str.equals("ab") || str.equals("bs")){ + res = 1; + } else if(str.equals("abs")){ + res = 2; + } else{ + res = 100; + } + System.out.println("String"); + System.out.println(res); + + str = "abc"; + switch (str) { + case "a", "b": + res = 0; + break; + case "ab", "bc": + res = 1; + break; + case "abc": + res = 2; + break; + default: + res = 100; + } + System.out.println(res); + + res = switch (str) { + case "a", "b": + yield 0; + case "ab", "bc": + yield 1; + case "abc": + yield 2; + default: + yield 100; + }; + System.out.println(res); + + str = "a"; + res = switch (str) { + case "a", "b" -> 0; + case "ab" -> 1; + case "abc" -> 2; + default -> 200; + }; + + System.out.println(res); + + //строки + //Srting str + str = "aabbbcdddd"; + System.out.println("Длинна сроки: " + str.length()); + System.out.println("Разделение по b: " + Arrays.toString(str.split("b"))); + System.out.println("Индекс bc: " + str.indexOf("bc")); + System.out.println("Индекс e: " + str.indexOf("e")); + System.out.println("Заменили b на d: " + str.replace('b', 'd')); + System.out.println("Массив чаров: " + Arrays.toString(str.toCharArray())); + System.out.println("Сравнение без регистра " + str.equalsIgnoreCase("AabBbcDdDd")); + + //final не даёт видоизменять переменную + // final inta = 1 + // final ints = new int[3] + // final List ints2 = new LinkedList<>() + + //var любой тип данных + var stp = "123"; + var i = 3; + var l = 1l; + var d = 1D; + var d2 = 1.0; + var ints = new int[5]; + + + Scanner scanner = new Scanner(System.in); + + String name = scanner.nextLine(); + int age = scanner.nextInt(); + int bage = scanner.nextInt(); + System.out.println("Мен зовут " + name + ", мне " + age + " лет! " + bage); + scanner.close(); + } +} diff --git a/project-template/src/main/java/edu/hw1/Task1.java b/project-template/src/main/java/edu/hw1/Task1.java index 190a180..dbc823d 100644 --- a/project-template/src/main/java/edu/hw1/Task1.java +++ b/project-template/src/main/java/edu/hw1/Task1.java @@ -1 +1,14 @@ -123 +package edu.hw1; +public class Task1 { + public static int countDigits(int args) { + int ch = 0; + + while (args > 9) { + ch += 1; + args /= 10; + + } + ch += 1; + return ch; + } +} diff --git a/project-template/src/main/java/edu/hw1/Task2.java b/project-template/src/main/java/edu/hw1/Task2.java new file mode 100644 index 0000000..e69de29 diff --git a/project-template/src/main/java/edu/hw1/Task_tochno1.java b/project-template/src/main/java/edu/hw1/Task_tochno1.java index e69de29..c129a1b 100644 --- a/project-template/src/main/java/edu/hw1/Task_tochno1.java +++ b/project-template/src/main/java/edu/hw1/Task_tochno1.java @@ -0,0 +1,21 @@ +package edu.hw1; + +import java.util.Scanner; +import java.security.MessageDigest; +// ТУТ Я ПРОСТО ПРОВЕРЯЮ ВСЯКИЕ ФИЧИ И БАЛУЮСЬ ЭТО НЕ ДЗ!!!!!!! +public class Task_tochno1 { + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + String name = in.nextLine(); + String substr1 = name.substring(5,6); + System.out.println( "A" + ('\t' + '\u0003') ); + + System.out.println( "A" + 12 ); + + System.out.println( 'A' + "12" ); + + System.out.println( 'А' + '1' + "2" ); + in.close(); + } +} + diff --git a/project-template/src/test/java/edu/hw1/Task1_Test.java b/project-template/src/test/java/edu/hw1/Task1_Test.java new file mode 100644 index 0000000..52f9fa9 --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task1_Test.java @@ -0,0 +1,22 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import static net.bytebuddy.matcher.ElementMatchers.is; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +public class Task1_Test { + @Test + @DisplayName("Фильтрация четных чисел") + void typo(){ + int ap = 4; + //assertThat(Task1.countDigits(4666), is (4)); + //assertThat(Task1.countDigits) + // .containsExactly(4666) + // .hasSize(4); + //System.out.println(Task1.countDigits(4666)); + //System.out.println(Task1.countDigits(544)); + //System.out.println(Task1.countDigits(0)); + + } +} From d4c7b3d91a4ff7459d5f8c3a5a3eaf95fe4c3e90 Mon Sep 17 00:00:00 2001 From: Jopick Date: Sun, 15 Oct 2023 17:36:17 +0500 Subject: [PATCH 3/6] HomeWork1 --- .../src/main/java/edu/hw1/Quiz.java | 166 ------------------ .../src/main/java/edu/hw1/Task0.java | 16 ++ .../src/main/java/edu/hw1/Task1.java | 40 ++++- .../src/main/java/edu/hw1/Task2.java | 28 +++ .../src/main/java/edu/hw1/Task3.java | 41 +++++ .../src/main/java/edu/hw1/Task4.java | 23 +++ .../src/main/java/edu/hw1/Task5.java | 67 +++++++ .../src/main/java/edu/hw1/Task6.java | 53 ++++++ .../src/main/java/edu/hw1/Task7.java | 79 +++++++++ .../src/main/java/edu/hw1/Task8.java | 73 ++++++++ .../src/main/java/edu/hw1/Task_tochno1.java | 21 --- .../src/test/java/edu/hw1/Task1_Test.java | 29 +-- .../src/test/java/edu/hw1/Task2_Test.java | 22 +++ .../src/test/java/edu/hw1/Task3_Test.java | 23 +++ .../src/test/java/edu/hw1/Task4_Test.java | 21 +++ .../src/test/java/edu/hw1/Task5_Test.java | 24 +++ .../src/test/java/edu/hw1/Task6_Test.java | 20 +++ .../src/test/java/edu/hw1/Task7_Test.java | 20 +++ .../src/test/java/edu/hw1/Task8_Test.java | 56 ++++++ 19 files changed, 616 insertions(+), 206 deletions(-) delete mode 100644 project-template/src/main/java/edu/hw1/Quiz.java create mode 100644 project-template/src/main/java/edu/hw1/Task0.java create mode 100644 project-template/src/main/java/edu/hw1/Task3.java create mode 100644 project-template/src/main/java/edu/hw1/Task4.java create mode 100644 project-template/src/main/java/edu/hw1/Task5.java create mode 100644 project-template/src/main/java/edu/hw1/Task6.java create mode 100644 project-template/src/main/java/edu/hw1/Task7.java create mode 100644 project-template/src/main/java/edu/hw1/Task8.java delete mode 100644 project-template/src/main/java/edu/hw1/Task_tochno1.java create mode 100644 project-template/src/test/java/edu/hw1/Task2_Test.java create mode 100644 project-template/src/test/java/edu/hw1/Task3_Test.java create mode 100644 project-template/src/test/java/edu/hw1/Task4_Test.java create mode 100644 project-template/src/test/java/edu/hw1/Task5_Test.java create mode 100644 project-template/src/test/java/edu/hw1/Task6_Test.java create mode 100644 project-template/src/test/java/edu/hw1/Task7_Test.java create mode 100644 project-template/src/test/java/edu/hw1/Task8_Test.java diff --git a/project-template/src/main/java/edu/hw1/Quiz.java b/project-template/src/main/java/edu/hw1/Quiz.java deleted file mode 100644 index 1e6d64a..0000000 --- a/project-template/src/main/java/edu/hw1/Quiz.java +++ /dev/null @@ -1,166 +0,0 @@ -import java.util.Arrays; -import java.util.Scanner; - -// ТУТ Я ПРОСТО ПРОВЕРЯЮ ВСЯКИЕ ФИЧИ И БАЛУЮСЬ ЭТО НЕ ДЗ!!!!!!! -public class Quiz { - - public static void main(String[] args) throws Exception { - // массив и его хранение - int[] v1 = new int[5]; - v1[0] = 1; - v1[1] = 2; - System.out.println(Arrays.toString(v1)); - - int[][] m2 = new int[5][5]; - System.out.println(Arrays.toString(m2[1])); - - //сравнение int и Integer - Integer a = 200; - Integer b = 200; - int e = 1; - int r = 1; - System.out.println(e == r); - System.out.println(a.equals(b)); - - // Цикл for while Foreach - for(int i = 0;i < 10; i++){ - System.out.print(i); - } - System.out.println(); - for(int i = 1; i < 10; i++){ - if(i % 6 == 0){ - break; - } - System.out.print(i); - } - System.out.println(); - for(int i = 0; i < 10; i++){ - if(i % 2 == 0){ - continue; - } - System.out.print(i); - } - System.out.println(); - int[] rt = new int[6]; - for(int el: rt) { - System.out.print(el + ", "); - } - System.out.println(); - int [][] men = new int[][] { - {1, 2}, - {3, 4, 5, 6}, - {7, 8, 9} - }; - for(int[] vTemp : men){ - for(int el : vTemp){ - System.out.print(el + ", "); - } - System.out.println(); - } - int aq = 100; - int nq = 1; - while ( nq < aq){ - nq *= 2; - } - System.out.println(nq); - nq = 1; - aq = 100; - int cq; - if (aq < nq) { - cq = aq; - } else { - cq = nq; - } - System.out.println(cq); - // то же самое что и if - cq = (aq < nq) ? aq : nq; - System.out.println(cq); - // swich AND if - - String str = "y"; - int res; - - if (str.equals("a") || str.equals("b")){ - res = 0; - } else if (str.equals("ab") || str.equals("bs")){ - res = 1; - } else if(str.equals("abs")){ - res = 2; - } else{ - res = 100; - } - System.out.println("String"); - System.out.println(res); - - str = "abc"; - switch (str) { - case "a", "b": - res = 0; - break; - case "ab", "bc": - res = 1; - break; - case "abc": - res = 2; - break; - default: - res = 100; - } - System.out.println(res); - - res = switch (str) { - case "a", "b": - yield 0; - case "ab", "bc": - yield 1; - case "abc": - yield 2; - default: - yield 100; - }; - System.out.println(res); - - str = "a"; - res = switch (str) { - case "a", "b" -> 0; - case "ab" -> 1; - case "abc" -> 2; - default -> 200; - }; - - System.out.println(res); - - //строки - //Srting str - str = "aabbbcdddd"; - System.out.println("Длинна сроки: " + str.length()); - System.out.println("Разделение по b: " + Arrays.toString(str.split("b"))); - System.out.println("Индекс bc: " + str.indexOf("bc")); - System.out.println("Индекс e: " + str.indexOf("e")); - System.out.println("Заменили b на d: " + str.replace('b', 'd')); - System.out.println("Массив чаров: " + Arrays.toString(str.toCharArray())); - System.out.println("Сравнение без регистра " + str.equalsIgnoreCase("AabBbcDdDd")); - - //final не даёт видоизменять переменную - // final inta = 1 - // final ints = new int[3] - // final List ints2 = new LinkedList<>() - - //var любой тип данных - var stp = "123"; - var i = 3; - var l = 1l; - var d = 1D; - var d2 = 1.0; - var ints = new int[5]; - - - Scanner scanner = new Scanner(System.in); - - String name = scanner.nextLine(); - int age = scanner.nextInt(); - int bage = scanner.nextInt(); - System.out.println("Мен зовут " + name + ", мне " + age + " лет! " + bage); - scanner.close(); - } -} diff --git a/project-template/src/main/java/edu/hw1/Task0.java b/project-template/src/main/java/edu/hw1/Task0.java new file mode 100644 index 0000000..5d2f2d4 --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task0.java @@ -0,0 +1,16 @@ +package edu.hw1; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public final class Task0 { + private final static Logger LOGGER = LogManager.getLogger(); + + private Task0() { + + } + + public static void ogo(String[] args) { + LOGGER.info("Привет, мир!"); + } +} diff --git a/project-template/src/main/java/edu/hw1/Task1.java b/project-template/src/main/java/edu/hw1/Task1.java index dbc823d..4999b1d 100644 --- a/project-template/src/main/java/edu/hw1/Task1.java +++ b/project-template/src/main/java/edu/hw1/Task1.java @@ -1,14 +1,42 @@ package edu.hw1; + + public class Task1 { - public static int countDigits(int args) { + + private String args; + + public Task1(String args) { + + this.args = args; + } + + public static final int SECONDS_MINETS = 60; + + public int time(String args) { + this.args = args; + String minets = ""; + String seconds = ""; int ch = 0; + String lol = ""; - while (args > 9) { - ch += 1; - args /= 10; + for (int i = 0; i < args.length(); i++) { + if (args.charAt(i) == ':') { + ch = 1; + } else if (ch == 0) { + minets += args.charAt(i); + } else { + seconds += args.charAt(i); + } + } + int minet = Integer.parseInt(minets.trim()); + int second = Integer.parseInt(seconds.trim()); + // именно здесь String преобразуется в int + if (second < SECONDS_MINETS) { + return (minet * SECONDS_MINETS + second); + } else { + return (-1); } - ch += 1; - return ch; + // выведем на экран значение после конвертации } } diff --git a/project-template/src/main/java/edu/hw1/Task2.java b/project-template/src/main/java/edu/hw1/Task2.java index e69de29..2ad52b1 100644 --- a/project-template/src/main/java/edu/hw1/Task2.java +++ b/project-template/src/main/java/edu/hw1/Task2.java @@ -0,0 +1,28 @@ +package edu.hw1; + +public class Task2 { + private int args; + + //public countDigits(int args) { + public Task2(int args) { + this.args = args; + } + + public static final int MINN = 9; + + public static final int NEXT_NUMBER = 10; + + public int countDigits(int args) { + this.args = args; + int r = args; + int ch = 0; + + while (r > MINN) { + ch += 1; + r /= NEXT_NUMBER; + + } + ch += 1; + return ch; + } +} diff --git a/project-template/src/main/java/edu/hw1/Task3.java b/project-template/src/main/java/edu/hw1/Task3.java new file mode 100644 index 0000000..c8a1936 --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task3.java @@ -0,0 +1,41 @@ +package edu.hw1; + +public class Task3 { + private int[] args; + private int[] vlog; + + public Task3(int[] args, int[] vlog) { + this.args = args; + this.vlog = vlog; + } + + public boolean isNestable(int[] args, int[] vlog) { + this.args = args; + this.vlog = vlog; + + int maxargs = args[0]; + int minargs = args[0]; + + int maxvlog = vlog[0]; + int minvlog = vlog[0]; + + for (int i = 0; i < args.length; i++) { + if (args[i] > maxargs) { + maxargs = args[i]; + } + if (args[i] < minargs) { + minargs = args[i]; + } + } + + for (int i = 0; i < vlog.length; i++) { + if (vlog[i] > maxvlog) { + maxvlog = vlog[i]; + } + if (vlog[i] < minvlog) { + minvlog = vlog[i]; + } + } + return (minargs > minvlog && maxargs < maxvlog); + } +} diff --git a/project-template/src/main/java/edu/hw1/Task4.java b/project-template/src/main/java/edu/hw1/Task4.java new file mode 100644 index 0000000..ffffbe9 --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task4.java @@ -0,0 +1,23 @@ +package edu.hw1; + +public class Task4 { + + private String swap; + + public Task4(String swap) { + this.swap = swap; + } + + public String fixString(String swap) { + this.swap = swap; + String answer = ""; + for (int i = 0; i < swap.length() - 1; i += 2) { + answer += swap.charAt(i + 1); + answer += swap.charAt(i); + } + if (swap.length() % 2 == 1) { + answer += swap.charAt(swap.length() - 1); + } + return answer; + } +} diff --git a/project-template/src/main/java/edu/hw1/Task5.java b/project-template/src/main/java/edu/hw1/Task5.java new file mode 100644 index 0000000..7501eec --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task5.java @@ -0,0 +1,67 @@ +package edu.hw1; + +public class Task5 { + + private Integer palindrom; + + public Task5(Integer palindrom) { + this.palindrom = palindrom; + } + + public static final int MAX_SIZE = 9; + + public boolean isPalindromeDescendant(Integer palindrom) { + this.palindrom = palindrom; + String y = String.valueOf(palindrom); + + String ans = String.valueOf(palindrom); + + int lenn = ans.length() / 2; + + StringBuilder sb = new StringBuilder(ans.substring(lenn, ans.length())); + if (ans.substring(0, lenn).equals(sb.reverse().toString())) { + return true; + } else { + return (proverochka(palindrom)); + } + + } + + public static final int INDEX_CHAR = 48; + + public boolean proverochka(Integer x) { + + if (x > MAX_SIZE && (String.valueOf(x)).length() % 2 == 0) { + String y = String.valueOf(x); + + String ans = ""; + + for (int i = 0; i < y.length(); i += 2) { + ans += String.valueOf(y.charAt(i) + y.charAt(i + 1) - 2 * INDEX_CHAR); + } + + int lenn = ans.length() / 2; + + StringBuilder sb = new StringBuilder(ans.substring(lenn, ans.length())); + if (ans.substring(0, lenn).equals(sb.reverse().toString())) { + return true; + } else { + + return (proverochka(Integer.valueOf(ans))); + } + } else { + String y = String.valueOf(x); + + String ans = String.valueOf(x); + + int lenn = ans.length() / 2; + + StringBuilder sb = new StringBuilder(ans.substring(lenn, ans.length())); + if (ans.substring(0, lenn).equals(sb.reverse().toString())) { + return true; + } else { + return (false); + } + } + } +} diff --git a/project-template/src/main/java/edu/hw1/Task6.java b/project-template/src/main/java/edu/hw1/Task6.java new file mode 100644 index 0000000..869bbc7 --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task6.java @@ -0,0 +1,53 @@ +package edu.hw1; + +import java.util.Arrays; + +class Task6 { + + private Integer kaprekar; + + + public static final int MASSIV_SIZE = 4; + + public static final int SIZE_10 = 10; + + public static final int ANSWER = 6174; + + public Task6(Integer kaprekar) { + this.kaprekar = kaprekar; + } + + + public int swap(Integer x) { + this.kaprekar = kaprekar; + Integer x1 = x; + int[] massiv = new int[MASSIV_SIZE]; + for (int i = 0; i < MASSIV_SIZE; i++) { + massiv[i] = x1 % SIZE_10; + x1 /= SIZE_10; + } + Arrays.sort(massiv); + + x1 = massiv[MASSIV_SIZE - 1] * SIZE_10 * SIZE_10 * SIZE_10 + massiv[2] * SIZE_10 * SIZE_10 + massiv[1] * SIZE_10 + + massiv[0] - massiv[MASSIV_SIZE - 1] - massiv[2] * SIZE_10 + - massiv[1] * SIZE_10 * SIZE_10 - massiv[0] * SIZE_10 * SIZE_10 * SIZE_10; + if (x1.equals(ANSWER)) { + return 0; + } else { + return (1 + swap(x1)); + } + } + + + public int countK(Integer kaprekar) { + + this.kaprekar = kaprekar; + + if (kaprekar.equals(ANSWER)) { + return 0; + } else { + return (1 + swap(kaprekar)); + } + } + +} diff --git a/project-template/src/main/java/edu/hw1/Task7.java b/project-template/src/main/java/edu/hw1/Task7.java new file mode 100644 index 0000000..f7b0193 --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task7.java @@ -0,0 +1,79 @@ +package edu.hw1; + + +public class Task7 { + + private Integer m; + public Integer shift; + + public Task7(Integer m, Integer shift) { + this.m = m; + this.shift = shift; + } + + public static final int LAST_ELEMENT = 10; + + public Integer rotateRight(Integer m, Integer shift) { + this.m = m; + this.shift = shift; + + String number = Integer.toBinaryString(m); + + int lenn = number.length(); + + Integer n = Integer.valueOf(number); + + int[] sdvig = new int[lenn]; + + for (int i = lenn - 1; i > -1; i--) { + sdvig[i] = n % LAST_ELEMENT; + n /= LAST_ELEMENT; + } + + for (int i = 0; i < shift; i++) { + int last = sdvig[lenn - 1]; + + for (int j = lenn - 1; j > 0; j--) { + sdvig[j] = sdvig[j - 1]; + } + sdvig[0] = last; + } + String ans = ""; + for (int i = 0; i < lenn; i++) { + ans += sdvig[i]; + } + return (Integer.parseInt(ans, 2)); + } + + public Integer rotateLeft(Integer m, Integer shift) { + this.m = m; + this.shift = shift; + + String number = Integer.toBinaryString(m); + + Integer n = Integer.valueOf(number); + + int lenn = number.length(); + + int[] sdvig = new int[lenn]; + + for (int i = lenn - 1; i > -1; i--) { + sdvig[i] = n % LAST_ELEMENT; + n /= LAST_ELEMENT; + } + + for (int i = 0; i < shift; i++) { + int last = sdvig[0]; + + for (int j = 0; j < lenn - 1; j++) { + sdvig[j] = sdvig[j + 1]; + } + sdvig[lenn - 1] = last; + } + String ans = ""; + for (int i = 0; i < lenn; i++) { + ans += sdvig[i]; + } + return (Integer.parseInt(ans, 2)); + } +} diff --git a/project-template/src/main/java/edu/hw1/Task8.java b/project-template/src/main/java/edu/hw1/Task8.java new file mode 100644 index 0000000..f23e4bd --- /dev/null +++ b/project-template/src/main/java/edu/hw1/Task8.java @@ -0,0 +1,73 @@ +package edu.hw1; + +public class Task8 { + private int[][] desk; + + public Task8(int[][] desk) { + this.desk = desk; + } + + public static final int DESK_SIZE = 8; + + public boolean knightBoardCapture(int[][] desk) { + this.desk = desk; + int ch = 0; + for (int i = 0; i < DESK_SIZE; i++) { + for (int j = 0; j < DESK_SIZE; j++) { + if (desk[i][j] == (1)) { + + if (i - 2 > -1 && j - 1 > -1) { + if (desk[i - 2][j - 1] == 1) { + ch = 1; + } + } + + if (i - 2 > -1 && j + 1 < DESK_SIZE) { + if (desk[i - 2][j + 1] == 1) { + ch = 1; + } + } + + if (j - 2 > -1 && i - 1 > -1) { + if (desk[i - 1][j - 2] == 1) { + ch = 1; + } + } + + if (j - 2 > -1 && i + 1 < DESK_SIZE) { + if (desk[i + 1][j - 2] == 1) { + ch = 1; + } + } + if (i + 2 < DESK_SIZE && j - 1 > -1) { + if (desk[i + 2][j - 1] == 1) { + ch = 1; + } + } + if (i + 2 < DESK_SIZE && j + 1 < DESK_SIZE) { + if (desk[i + 2][j + 1] == 1) { + ch = 1; + } + } + if (i + 1 < DESK_SIZE && j + 2 < DESK_SIZE) { + if (desk[i + 1][j + 2] == 1) { + ch = 1; + } + } + if (i - 1 > -1 && j + 2 < DESK_SIZE) { + if (desk[i - 1][j + 2] == 1) { + ch = 1; + } + } + + } + + } + } + if (ch == 1) { + return (false); + } else { + return (true); + } + } +} diff --git a/project-template/src/main/java/edu/hw1/Task_tochno1.java b/project-template/src/main/java/edu/hw1/Task_tochno1.java deleted file mode 100644 index c129a1b..0000000 --- a/project-template/src/main/java/edu/hw1/Task_tochno1.java +++ /dev/null @@ -1,21 +0,0 @@ -package edu.hw1; - -import java.util.Scanner; -import java.security.MessageDigest; -// ТУТ Я ПРОСТО ПРОВЕРЯЮ ВСЯКИЕ ФИЧИ И БАЛУЮСЬ ЭТО НЕ ДЗ!!!!!!! -public class Task_tochno1 { - public static void main(String[] args) { - Scanner in = new Scanner(System.in); - String name = in.nextLine(); - String substr1 = name.substring(5,6); - System.out.println( "A" + ('\t' + '\u0003') ); - - System.out.println( "A" + 12 ); - - System.out.println( 'A' + "12" ); - - System.out.println( 'А' + '1' + "2" ); - in.close(); - } -} - diff --git a/project-template/src/test/java/edu/hw1/Task1_Test.java b/project-template/src/test/java/edu/hw1/Task1_Test.java index 52f9fa9..6f34c6a 100644 --- a/project-template/src/test/java/edu/hw1/Task1_Test.java +++ b/project-template/src/test/java/edu/hw1/Task1_Test.java @@ -1,22 +1,25 @@ package edu.hw1; import org.junit.jupiter.api.DisplayName; + import org.junit.jupiter.api.Test; -import static net.bytebuddy.matcher.ElementMatchers.is; -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -public class Task1_Test { +import static org.junit.jupiter.api.Assertions.*; + +class Task1_Test { @Test - @DisplayName("Фильтрация четных чисел") - void typo(){ - int ap = 4; - //assertThat(Task1.countDigits(4666), is (4)); - //assertThat(Task1.countDigits) - // .containsExactly(4666) - // .hasSize(4); - //System.out.println(Task1.countDigits(4666)); - //System.out.println(Task1.countDigits(544)); - //System.out.println(Task1.countDigits(0)); + @DisplayName("Минуты и секунды") + void test_time() { + Task1 chek; + chek = new Task1("46:59"); + assertEquals(60, chek.time("01:00")); + assertEquals(836, chek.time("13:56")); + assertEquals(-1, chek.time("10:60")); + assertEquals(599999, chek.time("9999:59")); + assertEquals(0, chek.time("00:00")); + assertEquals(-1, chek.time("0:60")); + assertEquals(606, chek.time("10:06")); + assertEquals(606, chek.time("10:6")); } } diff --git a/project-template/src/test/java/edu/hw1/Task2_Test.java b/project-template/src/test/java/edu/hw1/Task2_Test.java new file mode 100644 index 0000000..fbea273 --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task2_Test.java @@ -0,0 +1,22 @@ +package edu.hw1; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.DisplayName; + +import static org.junit.jupiter.api.Assertions.*; + +class Task2_Test { + + @Test + @DisplayName("Минуты и секунды") + void test_countDigits() { + Task2 lenn; + lenn = new Task2(4666); + assertEquals(4, lenn.countDigits(4666)); + //rofle = new Task1 (0); + assertEquals(3, lenn.countDigits(544)); + assertEquals(1, lenn.countDigits(0)); + assertEquals(8, lenn.countDigits(10000000)); + assertEquals(3, lenn.countDigits(123)); + } +} diff --git a/project-template/src/test/java/edu/hw1/Task3_Test.java b/project-template/src/test/java/edu/hw1/Task3_Test.java new file mode 100644 index 0000000..cd7754c --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task3_Test.java @@ -0,0 +1,23 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Task3_Test { + @Test + @DisplayName("Минуты и секунды") + void test_isNestable() { + Task3 massiv = new Task3(new int[] {1, 2, 3, 4}, new int[] {0, 6}); + assertEquals(true, massiv.isNestable(new int[] {1, 2, 3, 4}, new int[] {0, 6})); + assertEquals(true, massiv.isNestable(new int[] {3, 1}, new int[] {4, 0})); + assertEquals(false, massiv.isNestable(new int[] {9, 9, 8}, new int[] {8, 9})); + assertEquals(false, massiv.isNestable(new int[] {1, 2, 3, 4}, new int[] {2, 3})); + assertEquals(false, massiv.isNestable(new int[] {1, 4}, new int[] {4, 1})); + assertEquals(false, massiv.isNestable(new int[] {1, 2, 3}, new int[] {5, 6})); + assertEquals(false, massiv.isNestable(new int[] {1, 5}, new int[] {1, 6})); + + } +} diff --git a/project-template/src/test/java/edu/hw1/Task4_Test.java b/project-template/src/test/java/edu/hw1/Task4_Test.java new file mode 100644 index 0000000..d180988 --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task4_Test.java @@ -0,0 +1,21 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Task4_Test { + + @Test + @DisplayName("Исправление строки") + void test_fixString() { + Task4 fix; + fix = new Task4("123456"); + assertEquals("214365", fix.fixString("123456")); + assertEquals("This is a mixed up string.", fix.fixString("hTsii s aimex dpus rtni.g")); + assertEquals("abcde", fix.fixString("badce")); + assertEquals("21435", fix.fixString("12345")); + } +} diff --git a/project-template/src/test/java/edu/hw1/Task5_Test.java b/project-template/src/test/java/edu/hw1/Task5_Test.java new file mode 100644 index 0000000..3cd81ea --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task5_Test.java @@ -0,0 +1,24 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Task5_Test { + @Test + @DisplayName("палиндром") + void test_isPalindromeDescendant() { + Task5 palindrom; + palindrom = new Task5(11211230); + assertEquals(true, palindrom.isPalindromeDescendant(11211230)); + assertEquals(true, palindrom.isPalindromeDescendant(13001120)); + assertEquals(true, palindrom.isPalindromeDescendant(23336014)); + assertEquals(true, palindrom.isPalindromeDescendant(11)); + assertEquals(true, palindrom.isPalindromeDescendant(123321)); + assertEquals(false, palindrom.isPalindromeDescendant(123322)); + assertEquals(false, palindrom.isPalindromeDescendant(11211231)); + //assertEquals(true, palindrom.isPalindromeDescendant(1223542312)); + } +} diff --git a/project-template/src/test/java/edu/hw1/Task6_Test.java b/project-template/src/test/java/edu/hw1/Task6_Test.java new file mode 100644 index 0000000..0cc04ab --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task6_Test.java @@ -0,0 +1,20 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Task6_Test { + @Test + @DisplayName("kkfkfk") + void test_countK() { + Task6 chislo; + chislo = new Task6(6621); + assertEquals(5, chislo.countK(6621)); + assertEquals(4, chislo.countK(6554)); + assertEquals(3, chislo.countK(1234)); + assertEquals(0, chislo.countK(6174)); + } +} diff --git a/project-template/src/test/java/edu/hw1/Task7_Test.java b/project-template/src/test/java/edu/hw1/Task7_Test.java new file mode 100644 index 0000000..0b45d41 --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task7_Test.java @@ -0,0 +1,20 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Task7_Test { + + @Test + @DisplayName("kkfkfk") + void test_rotate() { + Task7 rotate; + rotate = new Task7(8, 1); + assertEquals(4, rotate.rotateRight(8, 1)); + assertEquals(1, rotate.rotateLeft(16, 1)); + assertEquals(6, rotate.rotateLeft(17, 2)); + } +} diff --git a/project-template/src/test/java/edu/hw1/Task8_Test.java b/project-template/src/test/java/edu/hw1/Task8_Test.java new file mode 100644 index 0000000..453097f --- /dev/null +++ b/project-template/src/test/java/edu/hw1/Task8_Test.java @@ -0,0 +1,56 @@ +package edu.hw1; + +import org.junit.jupiter.api.DisplayName; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class Task8_Test { + @Test + @DisplayName("kkfkfk") + void test_knightBoardCapture() { + Task8 knight; + knight = new Task8(new int[][] { + {0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 1, 0, 1, 0}, + {0, 1, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 1, 0, 0, 0}}); + assertEquals(true, knight.knightBoardCapture(new int[][] {{0, 0, 0, 1, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 1, 0, 1, 0}, + {0, 1, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 1, 0, 0, 0, 0, 0, 1}, + {0, 0, 0, 0, 1, 0, 0, 0}})); + assertEquals(false, knight.knightBoardCapture(new int[][] {{1, 0, 1, 0, 1, 0, 1, 0}, + {0, 1, 0, 1, 0, 1, 0, 1}, + {0, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 1, 0, 0, 1, 0, 1}, + {1, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 0, 0, 1, 0, 1}, + {1, 0, 0, 0, 1, 0, 1, 0}, + {0, 0, 0, 1, 0, 1, 0, 1}})); + assertEquals(false, knight.knightBoardCapture(new int[][] {{0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 1, 0, 0}, + {0, 0, 0, 1, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 1, 1, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}})); + assertEquals(true, knight.knightBoardCapture(new int[][] {{0, 0, 0, 0, 1, 0, 0, 0}, + {0, 0, 0, 1, 0, 1, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 1, 0, 0}, + {0, 0, 0, 0, 1, 1, 0, 0}, + {1, 0, 0, 0, 0, 0, 0, 0}})); + } +} From 5bbfbe196c23a42df614ea449265654618a119d1 Mon Sep 17 00:00:00 2001 From: Jopick Date: Fri, 20 Oct 2023 21:51:18 +0500 Subject: [PATCH 4/6] fix recommindastion --- .../src/main/java/edu/hw1/Task1.java | 23 ++--- .../src/main/java/edu/hw1/Task2.java | 8 +- .../src/main/java/edu/hw1/Task3.java | 9 -- .../src/main/java/edu/hw1/Task4.java | 18 ++-- .../src/main/java/edu/hw1/Task5.java | 35 +++----- .../src/main/java/edu/hw1/Task6.java | 42 ++++----- .../src/main/java/edu/hw1/Task7.java | 13 --- .../src/main/java/edu/hw1/Task8.java | 7 +- .../java/edu/project1/Generate_Words.java | 15 ++++ .../main/java/edu/project1/Main_Consol.java | 86 +++++++++++++++++++ .../src/test/java/edu/hw1/Task1_Test.java | 2 +- .../src/test/java/edu/hw1/Task2_Test.java | 2 +- .../src/test/java/edu/hw1/Task3_Test.java | 2 +- .../src/test/java/edu/hw1/Task4_Test.java | 2 +- .../src/test/java/edu/hw1/Task5_Test.java | 2 +- .../src/test/java/edu/hw1/Task6_Test.java | 4 +- .../src/test/java/edu/hw1/Task7_Test.java | 4 +- .../src/test/java/edu/hw1/Task8_Test.java | 12 +-- 18 files changed, 160 insertions(+), 126 deletions(-) create mode 100644 project-template/src/main/java/edu/project1/Generate_Words.java create mode 100644 project-template/src/main/java/edu/project1/Main_Consol.java diff --git a/project-template/src/main/java/edu/hw1/Task1.java b/project-template/src/main/java/edu/hw1/Task1.java index 4999b1d..a25a918 100644 --- a/project-template/src/main/java/edu/hw1/Task1.java +++ b/project-template/src/main/java/edu/hw1/Task1.java @@ -1,36 +1,27 @@ package edu.hw1; - public class Task1 { - private String args; - - public Task1(String args) { - - this.args = args; - } - public static final int SECONDS_MINETS = 60; public int time(String args) { - this.args = args; - String minets = ""; - String seconds = ""; + + StringBuilder minets = new StringBuilder(""); + StringBuilder seconds = new StringBuilder(""); int ch = 0; - String lol = ""; for (int i = 0; i < args.length(); i++) { if (args.charAt(i) == ':') { ch = 1; } else if (ch == 0) { - minets += args.charAt(i); + minets.append(args.charAt(i)); } else { - seconds += args.charAt(i); + seconds.append(args.charAt(i)); } } - int minet = Integer.parseInt(minets.trim()); - int second = Integer.parseInt(seconds.trim()); + int minet = Integer.parseInt(String.valueOf(minets)); + int second = Integer.parseInt(String.valueOf(seconds)); // именно здесь String преобразуется в int if (second < SECONDS_MINETS) { return (minet * SECONDS_MINETS + second); diff --git a/project-template/src/main/java/edu/hw1/Task2.java b/project-template/src/main/java/edu/hw1/Task2.java index 2ad52b1..077a352 100644 --- a/project-template/src/main/java/edu/hw1/Task2.java +++ b/project-template/src/main/java/edu/hw1/Task2.java @@ -1,19 +1,13 @@ package edu.hw1; public class Task2 { - private int args; - - //public countDigits(int args) { - public Task2(int args) { - this.args = args; - } public static final int MINN = 9; public static final int NEXT_NUMBER = 10; public int countDigits(int args) { - this.args = args; + int r = args; int ch = 0; diff --git a/project-template/src/main/java/edu/hw1/Task3.java b/project-template/src/main/java/edu/hw1/Task3.java index c8a1936..2a863c6 100644 --- a/project-template/src/main/java/edu/hw1/Task3.java +++ b/project-template/src/main/java/edu/hw1/Task3.java @@ -1,17 +1,8 @@ package edu.hw1; public class Task3 { - private int[] args; - private int[] vlog; - - public Task3(int[] args, int[] vlog) { - this.args = args; - this.vlog = vlog; - } public boolean isNestable(int[] args, int[] vlog) { - this.args = args; - this.vlog = vlog; int maxargs = args[0]; int minargs = args[0]; diff --git a/project-template/src/main/java/edu/hw1/Task4.java b/project-template/src/main/java/edu/hw1/Task4.java index ffffbe9..1cc4931 100644 --- a/project-template/src/main/java/edu/hw1/Task4.java +++ b/project-template/src/main/java/edu/hw1/Task4.java @@ -2,22 +2,18 @@ public class Task4 { - private String swap; - - public Task4(String swap) { - this.swap = swap; - } + public static final int INDEX_CHAR = 48; public String fixString(String swap) { - this.swap = swap; - String answer = ""; + + StringBuilder answer = new StringBuilder(""); for (int i = 0; i < swap.length() - 1; i += 2) { - answer += swap.charAt(i + 1); - answer += swap.charAt(i); + answer.append(swap.charAt(i + 1)); + answer.append(swap.charAt(i)); } if (swap.length() % 2 == 1) { - answer += swap.charAt(swap.length() - 1); + answer.append(swap.charAt(swap.length() - 1)); } - return answer; + return answer.toString(); } } diff --git a/project-template/src/main/java/edu/hw1/Task5.java b/project-template/src/main/java/edu/hw1/Task5.java index 7501eec..82674f6 100644 --- a/project-template/src/main/java/edu/hw1/Task5.java +++ b/project-template/src/main/java/edu/hw1/Task5.java @@ -2,24 +2,16 @@ public class Task5 { - private Integer palindrom; - - public Task5(Integer palindrom) { - this.palindrom = palindrom; - } - public static final int MAX_SIZE = 9; public boolean isPalindromeDescendant(Integer palindrom) { - this.palindrom = palindrom; - String y = String.valueOf(palindrom); String ans = String.valueOf(palindrom); - int lenn = ans.length() / 2; + int half = ans.length() / 2; - StringBuilder sb = new StringBuilder(ans.substring(lenn, ans.length())); - if (ans.substring(0, lenn).equals(sb.reverse().toString())) { + StringBuilder sb = new StringBuilder(ans.substring(half, ans.length())); + if (ans.substring(0, half).equals(sb.reverse().toString())) { return true; } else { return (proverochka(palindrom)); @@ -29,35 +21,34 @@ public boolean isPalindromeDescendant(Integer palindrom) { public static final int INDEX_CHAR = 48; - public boolean proverochka(Integer x) { + private boolean proverochka(Integer x) { if (x > MAX_SIZE && (String.valueOf(x)).length() % 2 == 0) { - String y = String.valueOf(x); + String palindrom = String.valueOf(x); String ans = ""; - for (int i = 0; i < y.length(); i += 2) { - ans += String.valueOf(y.charAt(i) + y.charAt(i + 1) - 2 * INDEX_CHAR); + for (int i = 0; i < palindrom.length(); i += 2) { + ans += String.valueOf(palindrom.charAt(i) + palindrom.charAt(i + 1) - 2 * INDEX_CHAR); } - int lenn = ans.length() / 2; + int half = ans.length() / 2; - StringBuilder sb = new StringBuilder(ans.substring(lenn, ans.length())); - if (ans.substring(0, lenn).equals(sb.reverse().toString())) { + StringBuilder sb = new StringBuilder(ans.substring(half, ans.length())); + if (ans.substring(0, half).equals(sb.reverse().toString())) { return true; } else { return (proverochka(Integer.valueOf(ans))); } } else { - String y = String.valueOf(x); String ans = String.valueOf(x); - int lenn = ans.length() / 2; + int half = ans.length() / 2; - StringBuilder sb = new StringBuilder(ans.substring(lenn, ans.length())); - if (ans.substring(0, lenn).equals(sb.reverse().toString())) { + StringBuilder sb = new StringBuilder(ans.substring(half, ans.length())); + if (ans.substring(0, half).equals(sb.reverse().toString())) { return true; } else { return (false); diff --git a/project-template/src/main/java/edu/hw1/Task6.java b/project-template/src/main/java/edu/hw1/Task6.java index 869bbc7..b9cec89 100644 --- a/project-template/src/main/java/edu/hw1/Task6.java +++ b/project-template/src/main/java/edu/hw1/Task6.java @@ -4,44 +4,40 @@ class Task6 { - private Integer kaprekar; - - public static final int MASSIV_SIZE = 4; - public static final int SIZE_10 = 10; + public static final int TEN = 10; public static final int ANSWER = 6174; - public Task6(Integer kaprekar) { - this.kaprekar = kaprekar; - } - - public int swap(Integer x) { - this.kaprekar = kaprekar; + Integer x1 = x; int[] massiv = new int[MASSIV_SIZE]; for (int i = 0; i < MASSIV_SIZE; i++) { - massiv[i] = x1 % SIZE_10; - x1 /= SIZE_10; + massiv[i] = x1 % TEN; + x1 /= TEN; } Arrays.sort(massiv); + // Сумма элементов + Integer first = 0; - x1 = massiv[MASSIV_SIZE - 1] * SIZE_10 * SIZE_10 * SIZE_10 + massiv[2] * SIZE_10 * SIZE_10 + massiv[1] * SIZE_10 - + massiv[0] - massiv[MASSIV_SIZE - 1] - massiv[2] * SIZE_10 - - massiv[1] * SIZE_10 * SIZE_10 - massiv[0] * SIZE_10 * SIZE_10 * SIZE_10; - if (x1.equals(ANSWER)) { - return 0; - } else { - return (1 + swap(x1)); - } - } + //Отрицательная сумма + Integer second = 0; - public int countK(Integer kaprekar) { + first = massiv[MASSIV_SIZE - 1] * TEN * TEN * TEN + massiv[2] * TEN * TEN + massiv[1] * TEN + massiv[0]; + + second = massiv[MASSIV_SIZE - 1] + massiv[2] * TEN + massiv[1] * TEN * TEN + massiv[0] * TEN * TEN * TEN; + + //Разность + x1 = first - second; - this.kaprekar = kaprekar; + return countK(x1); + + } + + public int countK(Integer kaprekar) { if (kaprekar.equals(ANSWER)) { return 0; diff --git a/project-template/src/main/java/edu/hw1/Task7.java b/project-template/src/main/java/edu/hw1/Task7.java index f7b0193..ecc4b99 100644 --- a/project-template/src/main/java/edu/hw1/Task7.java +++ b/project-template/src/main/java/edu/hw1/Task7.java @@ -1,21 +1,10 @@ package edu.hw1; - public class Task7 { - private Integer m; - public Integer shift; - - public Task7(Integer m, Integer shift) { - this.m = m; - this.shift = shift; - } - public static final int LAST_ELEMENT = 10; public Integer rotateRight(Integer m, Integer shift) { - this.m = m; - this.shift = shift; String number = Integer.toBinaryString(m); @@ -46,8 +35,6 @@ public Integer rotateRight(Integer m, Integer shift) { } public Integer rotateLeft(Integer m, Integer shift) { - this.m = m; - this.shift = shift; String number = Integer.toBinaryString(m); diff --git a/project-template/src/main/java/edu/hw1/Task8.java b/project-template/src/main/java/edu/hw1/Task8.java index f23e4bd..f5704bc 100644 --- a/project-template/src/main/java/edu/hw1/Task8.java +++ b/project-template/src/main/java/edu/hw1/Task8.java @@ -1,16 +1,11 @@ package edu.hw1; public class Task8 { - private int[][] desk; - - public Task8(int[][] desk) { - this.desk = desk; - } public static final int DESK_SIZE = 8; public boolean knightBoardCapture(int[][] desk) { - this.desk = desk; + int ch = 0; for (int i = 0; i < DESK_SIZE; i++) { for (int j = 0; j < DESK_SIZE; j++) { diff --git a/project-template/src/main/java/edu/project1/Generate_Words.java b/project-template/src/main/java/edu/project1/Generate_Words.java new file mode 100644 index 0000000..bfc2822 --- /dev/null +++ b/project-template/src/main/java/edu/project1/Generate_Words.java @@ -0,0 +1,15 @@ +package edu.project1; + +import java.util.Random; + +public class Generate_Words{ + + public static String GenerateRandomWord(){ + String [] dictionary = new String[] {"дерево", "сова", "клоун"}; + + Random random = new Random(); + int Word_for_Gallows = random.nextInt(3); + String ans = dictionary[Word_for_Gallows]; + return ans; + } +} diff --git a/project-template/src/main/java/edu/project1/Main_Consol.java b/project-template/src/main/java/edu/project1/Main_Consol.java new file mode 100644 index 0000000..5e72eff --- /dev/null +++ b/project-template/src/main/java/edu/project1/Main_Consol.java @@ -0,0 +1,86 @@ +package edu.project1; + +import java.util.Scanner; +import java.util.Arrays; + +public class Main_Consol { + public static final String Question = "Какая буква ещё не открыта?"; + + public static final Integer Maximum_Mistake = 9; + + public static String Final_Phrase = "Ой, ой. Зря сдались, вы почти угадали слово"; + + public static String Eror_Input = "Нужно ввести одну букву, а не слово"; + + public static String Wrong_Answer = "Missed, mistake"; + + public static String Game_Over = "Молодец ты победил"; + + public static void main(String[] args) throws Exception { + + //Generate_Words Hidden; + //Hidden = new Generate_Words(); + + String HiddenWord; + HiddenWord = Generate_Words.GenerateRandomWord(); + //System.out.println(HiddenWord.charAt(0)); + + int quantity_mistake = 0; + + Scanner scanner = new Scanner(System.in); + + String[] Answer = new String[HiddenWord.length()]; + + for (int i = 0; i < HiddenWord.length(); i++) { + Answer[i] = "*"; + } + + int win = 0; + + while (Maximum_Mistake > quantity_mistake) { + + System.out.println(Question); + + String inputWord = scanner.nextLine(); + + if (inputWord.equals("stop")) { + System.err.println(Final_Phrase); + System.exit(1); + + } else if (inputWord.length() != 1) { + System.out.println(Eror_Input); + + } else { + if (HiddenWord.contains(inputWord)) { + for (int i = 0; i < HiddenWord.length(); i++) { + if (HiddenWord.charAt(i) == inputWord.charAt(0)) { + + if (!Answer[i].equals(String.valueOf(HiddenWord.charAt(i)))) { + win++; + + Answer[i] = String.valueOf(HiddenWord.charAt(i)); + } + } + } + System.out.println("Hit!"); + } else { + quantity_mistake++; + System.out.println(Wrong_Answer + " " + quantity_mistake + " of " + Maximum_Mistake); + } + + for (int i = 0; i < Answer.length; i++) { + System.out.print(Answer[i]); + } + + System.out.println(); + + if (win == HiddenWord.length()) { + System.out.println(Game_Over); + System.exit(0); + + } + } + + } + } +} diff --git a/project-template/src/test/java/edu/hw1/Task1_Test.java b/project-template/src/test/java/edu/hw1/Task1_Test.java index 6f34c6a..df81f48 100644 --- a/project-template/src/test/java/edu/hw1/Task1_Test.java +++ b/project-template/src/test/java/edu/hw1/Task1_Test.java @@ -11,7 +11,7 @@ class Task1_Test { @DisplayName("Минуты и секунды") void test_time() { Task1 chek; - chek = new Task1("46:59"); + chek = new Task1(); assertEquals(60, chek.time("01:00")); assertEquals(836, chek.time("13:56")); assertEquals(-1, chek.time("10:60")); diff --git a/project-template/src/test/java/edu/hw1/Task2_Test.java b/project-template/src/test/java/edu/hw1/Task2_Test.java index fbea273..bda044b 100644 --- a/project-template/src/test/java/edu/hw1/Task2_Test.java +++ b/project-template/src/test/java/edu/hw1/Task2_Test.java @@ -11,7 +11,7 @@ class Task2_Test { @DisplayName("Минуты и секунды") void test_countDigits() { Task2 lenn; - lenn = new Task2(4666); + lenn = new Task2(); assertEquals(4, lenn.countDigits(4666)); //rofle = new Task1 (0); assertEquals(3, lenn.countDigits(544)); diff --git a/project-template/src/test/java/edu/hw1/Task3_Test.java b/project-template/src/test/java/edu/hw1/Task3_Test.java index cd7754c..f258a0d 100644 --- a/project-template/src/test/java/edu/hw1/Task3_Test.java +++ b/project-template/src/test/java/edu/hw1/Task3_Test.java @@ -10,7 +10,7 @@ class Task3_Test { @Test @DisplayName("Минуты и секунды") void test_isNestable() { - Task3 massiv = new Task3(new int[] {1, 2, 3, 4}, new int[] {0, 6}); + Task3 massiv = new Task3(); assertEquals(true, massiv.isNestable(new int[] {1, 2, 3, 4}, new int[] {0, 6})); assertEquals(true, massiv.isNestable(new int[] {3, 1}, new int[] {4, 0})); assertEquals(false, massiv.isNestable(new int[] {9, 9, 8}, new int[] {8, 9})); diff --git a/project-template/src/test/java/edu/hw1/Task4_Test.java b/project-template/src/test/java/edu/hw1/Task4_Test.java index d180988..2d99416 100644 --- a/project-template/src/test/java/edu/hw1/Task4_Test.java +++ b/project-template/src/test/java/edu/hw1/Task4_Test.java @@ -12,7 +12,7 @@ class Task4_Test { @DisplayName("Исправление строки") void test_fixString() { Task4 fix; - fix = new Task4("123456"); + fix = new Task4(); assertEquals("214365", fix.fixString("123456")); assertEquals("This is a mixed up string.", fix.fixString("hTsii s aimex dpus rtni.g")); assertEquals("abcde", fix.fixString("badce")); diff --git a/project-template/src/test/java/edu/hw1/Task5_Test.java b/project-template/src/test/java/edu/hw1/Task5_Test.java index 3cd81ea..e407162 100644 --- a/project-template/src/test/java/edu/hw1/Task5_Test.java +++ b/project-template/src/test/java/edu/hw1/Task5_Test.java @@ -11,7 +11,7 @@ class Task5_Test { @DisplayName("палиндром") void test_isPalindromeDescendant() { Task5 palindrom; - palindrom = new Task5(11211230); + palindrom = new Task5(); assertEquals(true, palindrom.isPalindromeDescendant(11211230)); assertEquals(true, palindrom.isPalindromeDescendant(13001120)); assertEquals(true, palindrom.isPalindromeDescendant(23336014)); diff --git a/project-template/src/test/java/edu/hw1/Task6_Test.java b/project-template/src/test/java/edu/hw1/Task6_Test.java index 0cc04ab..9dc1bb4 100644 --- a/project-template/src/test/java/edu/hw1/Task6_Test.java +++ b/project-template/src/test/java/edu/hw1/Task6_Test.java @@ -8,10 +8,10 @@ class Task6_Test { @Test - @DisplayName("kkfkfk") + @DisplayName("countK") void test_countK() { Task6 chislo; - chislo = new Task6(6621); + chislo = new Task6(); assertEquals(5, chislo.countK(6621)); assertEquals(4, chislo.countK(6554)); assertEquals(3, chislo.countK(1234)); diff --git a/project-template/src/test/java/edu/hw1/Task7_Test.java b/project-template/src/test/java/edu/hw1/Task7_Test.java index 0b45d41..f4a93bc 100644 --- a/project-template/src/test/java/edu/hw1/Task7_Test.java +++ b/project-template/src/test/java/edu/hw1/Task7_Test.java @@ -9,10 +9,10 @@ class Task7_Test { @Test - @DisplayName("kkfkfk") + @DisplayName("rotate") void test_rotate() { Task7 rotate; - rotate = new Task7(8, 1); + rotate = new Task7(); assertEquals(4, rotate.rotateRight(8, 1)); assertEquals(1, rotate.rotateLeft(16, 1)); assertEquals(6, rotate.rotateLeft(17, 2)); diff --git a/project-template/src/test/java/edu/hw1/Task8_Test.java b/project-template/src/test/java/edu/hw1/Task8_Test.java index 453097f..d435db6 100644 --- a/project-template/src/test/java/edu/hw1/Task8_Test.java +++ b/project-template/src/test/java/edu/hw1/Task8_Test.java @@ -8,18 +8,10 @@ class Task8_Test { @Test - @DisplayName("kkfkfk") + @DisplayName("Конь") void test_knightBoardCapture() { Task8 knight; - knight = new Task8(new int[][] { - {0, 0, 0, 1, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 1, 0, 0, 0, 1, 0, 0}, - {0, 0, 0, 0, 1, 0, 1, 0}, - {0, 1, 0, 0, 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 1, 0, 0, 0, 0, 0, 1}, - {0, 0, 0, 0, 1, 0, 0, 0}}); + knight = new Task8(); assertEquals(true, knight.knightBoardCapture(new int[][] {{0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, From abdec6e71a08bf2d819865c2f6cba5e2e4ff0dea Mon Sep 17 00:00:00 2001 From: Jopick Date: Fri, 20 Oct 2023 22:00:10 +0500 Subject: [PATCH 5/6] moved project --- project-template/README.md => README.md | 0 .../checkstyle.xml => checkstyle.xml | 0 lections/01/Main.java | 8 - lections/01/conditions/If.java | 27 -- lections/01/conditions/Switch.java | 57 --- lections/01/cycles/For.java | 30 -- lections/01/cycles/Foreach.java | 32 -- lections/01/cycles/While.java | 25 -- lections/01/finalvarstatic/Example.java | 18 - lections/01/finalvarstatic/Final.java | 31 -- lections/01/finalvarstatic/Static.java | 23 - lections/01/finalvarstatic/Var.java | 19 - lections/01/function/Exception.java | 23 - lections/01/function/Functions.java | 24 - lections/01/function/SumFunctions.java | 27 -- lections/01/memory/HeapStack.java | 15 - lections/01/memory/HeapStackError.java | 24 - lections/01/memory/Person.java | 11 - lections/01/primitives/Cache.java | 18 - lections/01/primitives/MyArrays.java | 20 - lections/01/primitives/MyMatrices.java | 34 -- lections/01/primitives/Operations.java | 30 -- lections/01/primitives/Primitives.java | 31 -- lections/01/primitives/TypeFunctions.java | 20 - lections/01/string/StringBuilderExample.java | 23 - lections/01/string/StringFunctions.java | 26 -- lections/01/string/StringPool.java | 23 - project-template/mvnw => mvnw | 0 project-template/mvnw.cmd => mvnw.cmd | 410 ++++++++--------- project-template/pom.xml => pom.xml | 0 project-template/.editorconfig | 80 ---- project-template/.gitattributes | 4 - project-template/.github/workflows/build.yml | 49 --- project-template/.gitignore | 32 -- project-template/.mvn/jvm.config | 6 - project-template/.mvn/maven.config | 8 - .../.mvn/wrapper/maven-wrapper.jar | Bin 62547 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 18 - .../main/java/edu/hw1/EvenArrayUtils.java | 0 .../src => src}/main/java/edu/hw1/Main.java | 0 .../src => src}/main/java/edu/hw1/Task0.java | 0 .../src => src}/main/java/edu/hw1/Task1.java | 0 .../src => src}/main/java/edu/hw1/Task2.java | 0 .../src => src}/main/java/edu/hw1/Task3.java | 0 .../src => src}/main/java/edu/hw1/Task4.java | 0 .../src => src}/main/java/edu/hw1/Task5.java | 0 .../src => src}/main/java/edu/hw1/Task6.java | 0 .../src => src}/main/java/edu/hw1/Task7.java | 0 .../src => src}/main/java/edu/hw1/Task8.java | 0 .../java/edu/project1/Generate_Words.java | 0 .../main/java/edu/project1/Main.java | 0 .../main/java/edu/project1/Main_Consol.java | 0 .../src => src}/main/resources/log4j2.xml | 0 .../test/java/edu/hw1/SampleTest.java | 0 .../test/java/edu/hw1/Task1_Test.java | 0 .../test/java/edu/hw1/Task2_Test.java | 0 .../test/java/edu/hw1/Task3_Test.java | 0 .../test/java/edu/hw1/Task4_Test.java | 0 .../test/java/edu/hw1/Task5_Test.java | 0 .../test/java/edu/hw1/Task6_Test.java | 0 .../test/java/edu/hw1/Task7_Test.java | 0 .../test/java/edu/hw1/Task8_Test.java | 0 .../test/java/edu/project1/SampleTest.java | 0 target/checkstyle-cachefile | 13 + target/checkstyle-checker.xml | 412 ++++++++++++++++++ target/checkstyle-result.xml | 41 ++ target/classes/edu/hw1/EvenArrayUtils.class | Bin 0 -> 1281 bytes target/classes/edu/hw1/Main.class | Bin 0 -> 961 bytes target/classes/edu/hw1/Task0.class | Bin 0 -> 746 bytes target/classes/edu/hw1/Task1.class | Bin 0 -> 1135 bytes target/classes/edu/hw1/Task2.class | Bin 0 -> 572 bytes target/classes/edu/hw1/Task3.class | Bin 0 -> 773 bytes target/classes/edu/hw1/Task4.class | Bin 0 -> 927 bytes target/classes/edu/hw1/Task5.class | Bin 0 -> 2206 bytes target/classes/edu/hw1/Task6.class | Bin 0 -> 1198 bytes target/classes/edu/hw1/Task7.class | Bin 0 -> 2301 bytes target/classes/edu/hw1/Task8.class | Bin 0 -> 974 bytes .../classes/edu/project1/Generate_Words.class | Bin 0 -> 718 bytes target/classes/edu/project1/Main.class | Bin 0 -> 971 bytes target/classes/edu/project1/Main_Consol.class | Bin 0 -> 2990 bytes target/classes/log4j2.xml | 30 ++ target/test-classes/edu/hw1/SampleTest.class | Bin 0 -> 971 bytes target/test-classes/edu/hw1/Task1_Test.class | Bin 0 -> 895 bytes target/test-classes/edu/hw1/Task2_Test.class | Bin 0 -> 756 bytes target/test-classes/edu/hw1/Task3_Test.class | Bin 0 -> 1096 bytes target/test-classes/edu/hw1/Task4_Test.class | Bin 0 -> 939 bytes target/test-classes/edu/hw1/Task5_Test.class | Bin 0 -> 1063 bytes target/test-classes/edu/hw1/Task6_Test.class | Bin 0 -> 796 bytes target/test-classes/edu/hw1/Task7_Test.class | Bin 0 -> 871 bytes target/test-classes/edu/hw1/Task8_Test.class | Bin 0 -> 2197 bytes .../edu/project1/SampleTest.class | Bin 0 -> 981 bytes 91 files changed, 701 insertions(+), 1021 deletions(-) rename project-template/README.md => README.md (100%) rename project-template/checkstyle.xml => checkstyle.xml (100%) delete mode 100644 lections/01/Main.java delete mode 100644 lections/01/conditions/If.java delete mode 100644 lections/01/conditions/Switch.java delete mode 100644 lections/01/cycles/For.java delete mode 100644 lections/01/cycles/Foreach.java delete mode 100644 lections/01/cycles/While.java delete mode 100644 lections/01/finalvarstatic/Example.java delete mode 100644 lections/01/finalvarstatic/Final.java delete mode 100644 lections/01/finalvarstatic/Static.java delete mode 100644 lections/01/finalvarstatic/Var.java delete mode 100644 lections/01/function/Exception.java delete mode 100644 lections/01/function/Functions.java delete mode 100644 lections/01/function/SumFunctions.java delete mode 100644 lections/01/memory/HeapStack.java delete mode 100644 lections/01/memory/HeapStackError.java delete mode 100644 lections/01/memory/Person.java delete mode 100644 lections/01/primitives/Cache.java delete mode 100644 lections/01/primitives/MyArrays.java delete mode 100644 lections/01/primitives/MyMatrices.java delete mode 100644 lections/01/primitives/Operations.java delete mode 100644 lections/01/primitives/Primitives.java delete mode 100644 lections/01/primitives/TypeFunctions.java delete mode 100644 lections/01/string/StringBuilderExample.java delete mode 100644 lections/01/string/StringFunctions.java delete mode 100644 lections/01/string/StringPool.java rename project-template/mvnw => mvnw (100%) rename project-template/mvnw.cmd => mvnw.cmd (97%) rename project-template/pom.xml => pom.xml (100%) delete mode 100644 project-template/.editorconfig delete mode 100644 project-template/.gitattributes delete mode 100644 project-template/.github/workflows/build.yml delete mode 100644 project-template/.gitignore delete mode 100644 project-template/.mvn/jvm.config delete mode 100644 project-template/.mvn/maven.config delete mode 100644 project-template/.mvn/wrapper/maven-wrapper.jar delete mode 100644 project-template/.mvn/wrapper/maven-wrapper.properties rename {project-template/src => src}/main/java/edu/hw1/EvenArrayUtils.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Main.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task0.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task1.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task2.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task3.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task4.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task5.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task6.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task7.java (100%) rename {project-template/src => src}/main/java/edu/hw1/Task8.java (100%) rename {project-template/src => src}/main/java/edu/project1/Generate_Words.java (100%) rename {project-template/src => src}/main/java/edu/project1/Main.java (100%) rename {project-template/src => src}/main/java/edu/project1/Main_Consol.java (100%) rename {project-template/src => src}/main/resources/log4j2.xml (100%) rename {project-template/src => src}/test/java/edu/hw1/SampleTest.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task1_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task2_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task3_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task4_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task5_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task6_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task7_Test.java (100%) rename {project-template/src => src}/test/java/edu/hw1/Task8_Test.java (100%) rename {project-template/src => src}/test/java/edu/project1/SampleTest.java (100%) create mode 100644 target/checkstyle-cachefile create mode 100644 target/checkstyle-checker.xml create mode 100644 target/checkstyle-result.xml create mode 100644 target/classes/edu/hw1/EvenArrayUtils.class create mode 100644 target/classes/edu/hw1/Main.class create mode 100644 target/classes/edu/hw1/Task0.class create mode 100644 target/classes/edu/hw1/Task1.class create mode 100644 target/classes/edu/hw1/Task2.class create mode 100644 target/classes/edu/hw1/Task3.class create mode 100644 target/classes/edu/hw1/Task4.class create mode 100644 target/classes/edu/hw1/Task5.class create mode 100644 target/classes/edu/hw1/Task6.class create mode 100644 target/classes/edu/hw1/Task7.class create mode 100644 target/classes/edu/hw1/Task8.class create mode 100644 target/classes/edu/project1/Generate_Words.class create mode 100644 target/classes/edu/project1/Main.class create mode 100644 target/classes/edu/project1/Main_Consol.class create mode 100644 target/classes/log4j2.xml create mode 100644 target/test-classes/edu/hw1/SampleTest.class create mode 100644 target/test-classes/edu/hw1/Task1_Test.class create mode 100644 target/test-classes/edu/hw1/Task2_Test.class create mode 100644 target/test-classes/edu/hw1/Task3_Test.class create mode 100644 target/test-classes/edu/hw1/Task4_Test.class create mode 100644 target/test-classes/edu/hw1/Task5_Test.class create mode 100644 target/test-classes/edu/hw1/Task6_Test.class create mode 100644 target/test-classes/edu/hw1/Task7_Test.class create mode 100644 target/test-classes/edu/hw1/Task8_Test.class create mode 100644 target/test-classes/edu/project1/SampleTest.class diff --git a/project-template/README.md b/README.md similarity index 100% rename from project-template/README.md rename to README.md diff --git a/project-template/checkstyle.xml b/checkstyle.xml similarity index 100% rename from project-template/checkstyle.xml rename to checkstyle.xml diff --git a/lections/01/Main.java b/lections/01/Main.java deleted file mode 100644 index 196dc24..0000000 --- a/lections/01/Main.java +++ /dev/null @@ -1,8 +0,0 @@ -package tinkoff; - -public class Main { - - public static void main(String[] args) { - System.out.println("Hello world"); - } -} diff --git a/lections/01/conditions/If.java b/lections/01/conditions/If.java deleted file mode 100644 index 5ba766b..0000000 --- a/lections/01/conditions/If.java +++ /dev/null @@ -1,27 +0,0 @@ -package tinkoff.conditions; - -public class If { - public static void main(String[] args) { -/* - if (Любое условие) { - - } else if (Другое условие) { - - } else { - - } -*/ - - int a = 3; - int b = 5; - int c; - if (a < b) { - c = a; - } else { - c = b; - } - - // Тернарный оператор - expression => можно присвоить результат - c = (a < b) ? a : b; - } -} diff --git a/lections/01/conditions/Switch.java b/lections/01/conditions/Switch.java deleted file mode 100644 index 7167198..0000000 --- a/lections/01/conditions/Switch.java +++ /dev/null @@ -1,57 +0,0 @@ -package tinkoff.conditions; - -public class Switch { - public static void main(String[] args) { - String str = "a"; - - int res; - - if (str.equals("a") || str.equals("b")) { - res = 0; - } else if (str.equals("ab") || str.equals("bc")) { - res = 1; - } else if (str.equals("abc")) { - res = 2; - } else { - res = 100; - }; - - // Равносильно - - switch (str) { - case "a", "b": - res = 0; - break; - case "ab", "bc": - res = 1; - break; - case "abc": - res = 2; - break; - default: - res = 100; - }; - - // Равносильно - - res = switch (str) { - case "a", "b": - yield 0; - case "ab", "bc": - yield 1; - case "abc": - yield 2; - default: - yield 100; - }; - - // Равносильно - - res = switch (str) { - case "a", "b" -> 0; - case "ab", "bc" -> 1; - case "abc" -> 2; - default -> 100; - }; - } -} diff --git a/lections/01/cycles/For.java b/lections/01/cycles/For.java deleted file mode 100644 index 2a0d772..0000000 --- a/lections/01/cycles/For.java +++ /dev/null @@ -1,30 +0,0 @@ -package tinkoff.cycles; - -public class For { - public static void main(String[] args) { - -/* - for ( Перед циклом ; Условие итерации ; После итерации ) { - - } -*/ - - for (int i = 0; i < 10; i++) { - System.out.println(i); - } - - for (int i = 0; i < 10; i++) { - if (i % 2 == 0) { - continue; - } - System.out.println(i); - } - - for (int i = 1; i < 10; i++) { - if (i % 6 == 0) { - break; - } - System.out.println(i); - } - } -} diff --git a/lections/01/cycles/Foreach.java b/lections/01/cycles/Foreach.java deleted file mode 100644 index 7e5f651..0000000 --- a/lections/01/cycles/Foreach.java +++ /dev/null @@ -1,32 +0,0 @@ -package tinkoff.cycles; - -public class Foreach { - public static void main(String[] args) { -/* - for(тип имя : итерируемая сущность) { - - } - */ - int[] v = new int[6]; - for(int el : v) { - System.out.print(el + ", "); - } - - System.out.println(); - System.out.println(); - - - int[][] m = new int[][] { - {1, 2}, - {3, 4, 5, 6}, - {7, 8, 9} - }; - - for(int[] vTemp : m) { - for(int el : vTemp) { - System.out.print(el + ", "); - } - System.out.println(); - } - } -} diff --git a/lections/01/cycles/While.java b/lections/01/cycles/While.java deleted file mode 100644 index a0c9c32..0000000 --- a/lections/01/cycles/While.java +++ /dev/null @@ -1,25 +0,0 @@ -package tinkoff.cycles; - -public class While { - public static void main(String[] args) { -/* - while (Любое условие) { - - } - */ - - int a = 100; - int n = 1; - while (n < a) { - n *= 2; - } - - System.out.println(n); - - do { - n *= 2; - } while (n < a); - - System.out.println(n); - } -} diff --git a/lections/01/finalvarstatic/Example.java b/lections/01/finalvarstatic/Example.java deleted file mode 100644 index 12f369d..0000000 --- a/lections/01/finalvarstatic/Example.java +++ /dev/null @@ -1,18 +0,0 @@ -package tinkoff.finalvarstatic; - -import java.util.LinkedList; -import java.util.List; - -public class Example { - public static int common; - public int x; - - public static void printCommon() { - System.out.println(common); - } -/* - public static void printX() { - System.out.println(x); - } - */ -} diff --git a/lections/01/finalvarstatic/Final.java b/lections/01/finalvarstatic/Final.java deleted file mode 100644 index f3fe303..0000000 --- a/lections/01/finalvarstatic/Final.java +++ /dev/null @@ -1,31 +0,0 @@ -package tinkoff.finalvarstatic; - -import java.util.LinkedList; -import java.util.List; - -public class Final { - public static void main(String[] args) { - final int a = 1; -/* - a = 2; Для примитивов значение - */ - - - final int[] ints = new int[3]; - ints[0] = 1; - ints[1] = 2; - ints[2] = 3; -/* - ints = new int[5]; Нельзя менять ссылку - */ - - - final List ints2 = new LinkedList<>(); - ints2.add(1); - ints2.add(2); - ints2.add(3); -/* - ints = new LinkedList<>(); Нельзя менять ссылку - */ - } -} diff --git a/lections/01/finalvarstatic/Static.java b/lections/01/finalvarstatic/Static.java deleted file mode 100644 index 88c6f35..0000000 --- a/lections/01/finalvarstatic/Static.java +++ /dev/null @@ -1,23 +0,0 @@ -package tinkoff.finalvarstatic; - -import java.util.LinkedList; -import java.util.List; - -public class Static { - public static void main(String[] args) { - Example example1 = new Example(); - Example example2 = new Example(); - example1.x = 2; - example2.x = 3; - - System.out.println(example1.x); - System.out.println(example2.x); - - System.out.println(); - - example1.common = 2; - example2.common = 3; - - System.out.println(example1.common); - } -} diff --git a/lections/01/finalvarstatic/Var.java b/lections/01/finalvarstatic/Var.java deleted file mode 100644 index 62deb44..0000000 --- a/lections/01/finalvarstatic/Var.java +++ /dev/null @@ -1,19 +0,0 @@ -package tinkoff.finalvarstatic; - -import java.util.LinkedList; -import java.util.List; - -public class Var { - - //var a = "123"; - - public static void main(String[] args) { - var str = "123"; - var i = 1; - var l = 1L; - var d = 1D; - var d2 = 1.0; - - var ints = new int[5]; - } -} diff --git a/lections/01/function/Exception.java b/lections/01/function/Exception.java deleted file mode 100644 index 5a8072a..0000000 --- a/lections/01/function/Exception.java +++ /dev/null @@ -1,23 +0,0 @@ -package tinkoff.function; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; - -public class Exception { - - public static void main(String[] args) throws IOException { - readFromFile("fileName.txt"); - } - - - public static void createReader(String fileName) throws FileNotFoundException { - FileReader fileReader = new FileReader(fileName); - } - - public static void readFromFile(String fileName) throws IOException { - FileReader fileReader = new FileReader(fileName); - fileReader.read(); - } -} diff --git a/lections/01/function/Functions.java b/lections/01/function/Functions.java deleted file mode 100644 index 3f3491d..0000000 --- a/lections/01/function/Functions.java +++ /dev/null @@ -1,24 +0,0 @@ -package tinkoff.function; - -public class Functions { - - public static void main(String[] args) { - printSum(1, 2); - } - - public static void printSum(int a, int b) { - System.out.println(a + b); - } - - public static int binPow(int n, int pow) { - if (pow == 0) { - return 1; - } - if (pow % 2 == 0) { - int res = binPow(n, pow / 2); - return res * res; - } else { - return n * binPow(n, pow - 1); - } - } -} diff --git a/lections/01/function/SumFunctions.java b/lections/01/function/SumFunctions.java deleted file mode 100644 index 6764cda..0000000 --- a/lections/01/function/SumFunctions.java +++ /dev/null @@ -1,27 +0,0 @@ -package tinkoff.function; - -public class SumFunctions { - - public static void main(String[] args) { - int res1 = sum(1); - int res2 = sum(1, 2); - int res3 = sum(1, 2, 3); - int res4 = sum(1, 2, 3, 4); - } - - public static int sum(int a, int b) { - return a + b; - } - - public static int sum(Integer a, int b) { - return a + b; - } - - public static int sum(int a, int... more) { // На самом деле создается массив - int res = a; - for (int b: more) { - a += b; - } - return res; - } -} diff --git a/lections/01/memory/HeapStack.java b/lections/01/memory/HeapStack.java deleted file mode 100644 index 833f0a6..0000000 --- a/lections/01/memory/HeapStack.java +++ /dev/null @@ -1,15 +0,0 @@ -package tinkoff.memory; - -public class HeapStack { - - public static void main(String[] args) { - int id = 23; - String name = "John"; - Person person = null; - person = buildPerson(id, name); - } - - private static Person buildPerson(int id, String name) { - return new Person(id, name); - } -} diff --git a/lections/01/memory/HeapStackError.java b/lections/01/memory/HeapStackError.java deleted file mode 100644 index 7f1b4d3..0000000 --- a/lections/01/memory/HeapStackError.java +++ /dev/null @@ -1,24 +0,0 @@ -package tinkoff.memory; - -import java.util.LinkedList; -import java.util.List; - -public class HeapStackError { - private static final List arrays = new LinkedList<>(); - - public static void main(String[] args) { - -// outOfMemory(); -// stackOverFlow(); - } - - public static void stackOverFlow() { - stackOverFlow(); - } - - public static void outOfMemory() { - for (; ; ) { - arrays.add(new Object[10000]); - } - } -} diff --git a/lections/01/memory/Person.java b/lections/01/memory/Person.java deleted file mode 100644 index 64270a3..0000000 --- a/lections/01/memory/Person.java +++ /dev/null @@ -1,11 +0,0 @@ -package tinkoff.memory; - -public class Person { - public int id; - - public String name; - public Person(int id, String name) { - this.id = id; - this.name = name; - } -} diff --git a/lections/01/primitives/Cache.java b/lections/01/primitives/Cache.java deleted file mode 100644 index 8556d53..0000000 --- a/lections/01/primitives/Cache.java +++ /dev/null @@ -1,18 +0,0 @@ -package tinkoff.primitives; - -public class Cache { - public static void main(String[] args) { - Long l11 = 111L; - Long l12 = 111L; - - Long l21 = 222L; - Long l22 = 222L; - - Long l31 = Long.valueOf(111); - Long l32 = Long.valueOf(111); - - System.out.println(l11 == l12); - System.out.println(l21 == l22); - System.out.println(l31 == l32); - } -} diff --git a/lections/01/primitives/MyArrays.java b/lections/01/primitives/MyArrays.java deleted file mode 100644 index 0146a97..0000000 --- a/lections/01/primitives/MyArrays.java +++ /dev/null @@ -1,20 +0,0 @@ -package tinkoff.primitives; - -import java.util.Arrays; - -public class MyArrays { - public static void main(String[] args) { - int[] v1 = new int[5]; - - v1[0] = 1; - v1[1] = 2; - - System.out.println(v1); - System.out.println(Arrays.toString(v1)); - - - int[] v2 = new int[] {1, 2, 3, 4, 5}; - - System.out.println(Arrays.toString(v2)); - } -} diff --git a/lections/01/primitives/MyMatrices.java b/lections/01/primitives/MyMatrices.java deleted file mode 100644 index 9bdc55f..0000000 --- a/lections/01/primitives/MyMatrices.java +++ /dev/null @@ -1,34 +0,0 @@ -package tinkoff.primitives; - -import java.util.Arrays; - -public class MyMatrices { - public static void main(String[] args) { - int[][] m1 = new int[5][5]; - m1[0][0] = 1; - m1[0][1] = 1; - m1[0][2] = 1; - m1[0][3] = 1; - m1[0][4] = 1; - - System.out.println(Arrays.toString(m1)); - System.out.println(Arrays.toString(m1[0])); - - int[][] m2 = new int[5][]; - m2[0] = new int[1]; - m2[1] = new int[2]; - m2[2] = new int[3]; - m2[3] = new int[4]; - m2[4] = new int[5]; - - System.out.println(); - System.out.println(Arrays.toString(m2[0])); - System.out.println(Arrays.toString(m2[1])); - - int[][] m3 = new int[][] { - {4, 9, 2}, - {3, 5, 7}, - {8, 1, 6} - }; - } -} diff --git a/lections/01/primitives/Operations.java b/lections/01/primitives/Operations.java deleted file mode 100644 index e4e419e..0000000 --- a/lections/01/primitives/Operations.java +++ /dev/null @@ -1,30 +0,0 @@ -package tinkoff.primitives; - -public class Operations { - public static void main(String[] args) { - int num1 = 13; // = 1101 - int num2 = 9; // = 1001 - - System.out.println(num1 + num2); - System.out.println(num1 - num2); - System.out.println(num1 * num2); - System.out.println(num1 / num2); - System.out.println(num1 % num2); - - System.out.println(); - - System.out.println(num1 & num2); - System.out.println(num1 | num2); - System.out.println(num1 ^ num2); - System.out.println(~num1); - - System.out.println(); - - System.out.println(num1 == num2); - System.out.println(num1 < num2); - System.out.println(num1 > num2); - System.out.println(num1 <= num2); - System.out.println(num1 >= num2); - System.out.println(num1 != num2); - } -} diff --git a/lections/01/primitives/Primitives.java b/lections/01/primitives/Primitives.java deleted file mode 100644 index 3b6cac9..0000000 --- a/lections/01/primitives/Primitives.java +++ /dev/null @@ -1,31 +0,0 @@ -package tinkoff.primitives; - -public class Primitives { - public static void main(String[] args) { - - byte b = 1; // [-128, 128) - Byte b1 = 1; - - short s = 1; // [-2^15, 2^15) - Short s1 = 1; - - int i = 1; // [-2^31, 2^31-1) - Integer i1 = 1; - - long l = 1L; // [-2^63, 2^63-1) - Long l1 = 1L; - - - float f = 1f; // 32-битный - Float f1 = 1f; - - double d = 1.0; // 64-битный - Double d1 = 1.0; - - boolean bool = true; - Boolean bool1 = true; - - char c = 'c'; // UTF-16 - Character c1 = 'c'; - } -} diff --git a/lections/01/primitives/TypeFunctions.java b/lections/01/primitives/TypeFunctions.java deleted file mode 100644 index 18b1c1e..0000000 --- a/lections/01/primitives/TypeFunctions.java +++ /dev/null @@ -1,20 +0,0 @@ -package tinkoff.primitives; - -public class TypeFunctions { - public static void main(String[] args) { - Integer num1 = 130; - Integer num2 = 130; - Integer num3 = 9; - - double d = num1.doubleValue(); - short s = num1.shortValue(); - - System.out.println(num1.equals(num3)); - System.out.println(num1.equals(num2)); - - System.out.println(); - - System.out.println(num1 == num3); - System.out.println(num1 == num2); - } -} diff --git a/lections/01/string/StringBuilderExample.java b/lections/01/string/StringBuilderExample.java deleted file mode 100644 index 239fe66..0000000 --- a/lections/01/string/StringBuilderExample.java +++ /dev/null @@ -1,23 +0,0 @@ -package tinkoff.string; - -public class StringBuilderExample { - public static void main(String[] args) { - String str = ""; - - for (int i = 0; i < 1000; i++) { - str += i + ", "; - } - - System.out.println(str); - - // Аналогично - - StringBuilder stringBuilder = new StringBuilder(); - - for (int i = 0; i < 1000; i++) { - stringBuilder.append(i).append(", "); - } - - System.out.println(stringBuilder); - } -} diff --git a/lections/01/string/StringFunctions.java b/lections/01/string/StringFunctions.java deleted file mode 100644 index e600ff3..0000000 --- a/lections/01/string/StringFunctions.java +++ /dev/null @@ -1,26 +0,0 @@ -package tinkoff.string; - -import java.lang.reflect.Array; -import java.util.Arrays; - -public class StringFunctions { - public static void main(String[] args) { - String str = "aabbbcdddd"; - - System.out.println("Длина строки: " + str.length()); - - System.out.println("Разделение по 'b': " + Arrays.toString(str.split("b"))); - - System.out.println("Индекс 'bc': " + str.indexOf("bc")); - - System.out.println("Индекс 'e': " + str.indexOf("e")); - - System.out.println("Заменили 'b' на 'd': " + str.replace('b', 'd')); - - System.out.println("Массив чаров: " + Arrays.toString(str.toCharArray())); - - System.out.println("Сравнение без регистра: " + str.equalsIgnoreCase("AaBbBcDdDd")); - - System.out.println("Форматирование строк: " + "%s %s".formatted("Hello", "world")); - } -} diff --git a/lections/01/string/StringPool.java b/lections/01/string/StringPool.java deleted file mode 100644 index 8ba9b83..0000000 --- a/lections/01/string/StringPool.java +++ /dev/null @@ -1,23 +0,0 @@ -package tinkoff.string; - -public class StringPool { - public static void main(String[] args) { - String a = "str"; - String b = "str"; - String c = new String("str"); - String d = new String("str").intern(); - - System.out.println(a == b); - System.out.println(a == c); - System.out.println(b == c); - System.out.println(a == d); - - System.out.println(); - - String ab1 = "strstr"; - String ab2 = "str" + "str"; - String ab3 = a + b; - System.out.println(ab1 == ab2); - System.out.println(ab1 == ab3); - } -} diff --git a/project-template/mvnw b/mvnw similarity index 100% rename from project-template/mvnw rename to mvnw diff --git a/project-template/mvnw.cmd b/mvnw.cmd similarity index 97% rename from project-template/mvnw.cmd rename to mvnw.cmd index c4586b5..f80fbad 100644 --- a/project-template/mvnw.cmd +++ b/mvnw.cmd @@ -1,205 +1,205 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B -) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.2.0 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file +SET WRAPPER_SHA_256_SUM="" +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B +) +IF NOT %WRAPPER_SHA_256_SUM%=="" ( + powershell -Command "&{"^ + "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ + "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ + " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ + " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ + " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ + " exit 1;"^ + "}"^ + "}" + if ERRORLEVEL 1 goto error +) + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/project-template/pom.xml b/pom.xml similarity index 100% rename from project-template/pom.xml rename to pom.xml diff --git a/project-template/.editorconfig b/project-template/.editorconfig deleted file mode 100644 index 547de1b..0000000 --- a/project-template/.editorconfig +++ /dev/null @@ -1,80 +0,0 @@ -root = true - -[*] -charset = utf-8 -tab_width = 4 -indent_size = 4 -indent_style = space -max_line_length = 120 -insert_final_newline = true -trim_trailing_whitespace = true -ij_continuation_indent_size = 4 - -[*.java] -ij_java_imports_layout = *, $* -ij_java_packages_to_use_import_on_demand = "" -ij_java_class_count_to_use_import_on_demand = 999 -ij_java_names_count_to_use_import_on_demand = 999 - -ij_java_array_initializer_wrap = normal -ij_java_assert_statement_wrap = normal -ij_java_assignment_wrap = normal -ij_java_binary_operation_wrap = normal -ij_java_enum_constants_wrap = normal -ij_java_extends_keyword_wrap = normal -ij_java_extends_list_wrap = normal -ij_java_for_statement_wrap = normal -ij_java_method_call_chain_wrap = normal -ij_java_parameter_annotation_wrap = normal -ij_java_resource_list_wrap = normal -ij_java_ternary_operation_wrap = normal -ij_java_throws_keyword_wrap = normal -ij_java_throws_list_wrap = normal -ij_java_variable_annotation_wrap = normal -ij_java_class_annotation_wrap = normal -ij_java_field_annotation_wrap = normal -ij_java_method_annotation_wrap = normal - -ij_java_call_parameters_wrap = on_every_item -ij_java_call_parameters_new_line_after_left_paren = true -ij_java_call_parameters_right_paren_on_new_line = true - -ij_java_annotation_parameter_wrap = on_every_item -ij_java_align_multiline_annotation_parameters = true - -ij_java_method_parameters_wrap = on_every_item -ij_java_method_parameters_new_line_after_left_paren = true -ij_java_method_parameters_right_paren_on_new_line = true - -ij_java_space_before_array_initializer_left_brace = true -ij_java_align_multiline_parameters = false -ij_java_spaces_within_record_header = false - -ij_java_do_while_brace_force = always -ij_java_for_brace_force = always -ij_java_if_brace_force = always -ij_java_while_brace_force = always - -ij_java_blank_lines_before_package = 1 -ij_java_keep_blank_lines_before_right_brace = 1 -ij_java_keep_blank_lines_between_package_declaration_and_header = 1 -ij_java_keep_blank_lines_in_code = 1 -ij_java_keep_blank_lines_in_declarations = 1 - -ij_java_doc_do_not_wrap_if_one_line = true -ij_java_doc_indent_on_continuation = true -ij_java_doc_keep_empty_parameter_tag = false -ij_java_doc_keep_empty_return_tag = false -ij_java_doc_keep_empty_throws_tag = false - -[*.{bat,cmd,ps1}] -end_of_line = crlf - -[*.sh] -end_of_line = lf - -[*.md] -trim_trailing_whitespace = false - -[*.{yml,yaml}] -indent_size = 2 diff --git a/project-template/.gitattributes b/project-template/.gitattributes deleted file mode 100644 index a2a7b02..0000000 --- a/project-template/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -*.bat text eol=crlf -*.cmd text eol=crlf -*.ps1 text eol=crlf -*.sh text eol=lf diff --git a/project-template/.github/workflows/build.yml b/project-template/.github/workflows/build.yml deleted file mode 100644 index 7ba8168..0000000 --- a/project-template/.github/workflows/build.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Build - -on: - workflow_dispatch: - pull_request: - -jobs: - build: - runs-on: ubuntu-latest - name: Build - permissions: - contents: read - pull-requests: write - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 - with: - java-version: '21' - distribution: 'oracle' - cache: maven - - - name: maven build - run: mvn package - - - id: jacoco - uses: madrapps/jacoco-report@v1.6.1 - if: ( github.event_name != 'workflow_dispatch' ) - with: - paths: ${{ github.workspace }}/target/site/jacoco/jacoco.xml - token: ${{ secrets.GITHUB_TOKEN }} - min-coverage-overall: 30 - min-coverage-changed-files: 30 - title: Code Coverage - update-comment: true - - checkstyle: - name: checkstyle - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 - with: - java-version: '21' - distribution: 'oracle' - cache: maven - - - run: mvn checkstyle:check diff --git a/project-template/.gitignore b/project-template/.gitignore deleted file mode 100644 index 7ed0d6b..0000000 --- a/project-template/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/project-template/.mvn/jvm.config b/project-template/.mvn/jvm.config deleted file mode 100644 index 9a69781..0000000 --- a/project-template/.mvn/jvm.config +++ /dev/null @@ -1,6 +0,0 @@ --Xms512m --Xmx1G --Djava.awt.headless=true --Duser.country=US --Duser.language=en --Dfile.encoding=UTF-8 diff --git a/project-template/.mvn/maven.config b/project-template/.mvn/maven.config deleted file mode 100644 index 12a682d..0000000 --- a/project-template/.mvn/maven.config +++ /dev/null @@ -1,8 +0,0 @@ --Duser.timezone=UTC --Dorg.slf4j.simpleLogger.showDateTime=true --Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss ---batch-mode ---no-transfer-progress ---errors ---fail-at-end ---show-version diff --git a/project-template/.mvn/wrapper/maven-wrapper.jar b/project-template/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index cb28b0e37c7d206feb564310fdeec0927af4123a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62547 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 A?*IS* diff --git a/project-template/.mvn/wrapper/maven-wrapper.properties b/project-template/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 3c6fda8..0000000 --- a/project-template/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.2/apache-maven-3.9.2-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar diff --git a/project-template/src/main/java/edu/hw1/EvenArrayUtils.java b/src/main/java/edu/hw1/EvenArrayUtils.java similarity index 100% rename from project-template/src/main/java/edu/hw1/EvenArrayUtils.java rename to src/main/java/edu/hw1/EvenArrayUtils.java diff --git a/project-template/src/main/java/edu/hw1/Main.java b/src/main/java/edu/hw1/Main.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Main.java rename to src/main/java/edu/hw1/Main.java diff --git a/project-template/src/main/java/edu/hw1/Task0.java b/src/main/java/edu/hw1/Task0.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task0.java rename to src/main/java/edu/hw1/Task0.java diff --git a/project-template/src/main/java/edu/hw1/Task1.java b/src/main/java/edu/hw1/Task1.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task1.java rename to src/main/java/edu/hw1/Task1.java diff --git a/project-template/src/main/java/edu/hw1/Task2.java b/src/main/java/edu/hw1/Task2.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task2.java rename to src/main/java/edu/hw1/Task2.java diff --git a/project-template/src/main/java/edu/hw1/Task3.java b/src/main/java/edu/hw1/Task3.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task3.java rename to src/main/java/edu/hw1/Task3.java diff --git a/project-template/src/main/java/edu/hw1/Task4.java b/src/main/java/edu/hw1/Task4.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task4.java rename to src/main/java/edu/hw1/Task4.java diff --git a/project-template/src/main/java/edu/hw1/Task5.java b/src/main/java/edu/hw1/Task5.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task5.java rename to src/main/java/edu/hw1/Task5.java diff --git a/project-template/src/main/java/edu/hw1/Task6.java b/src/main/java/edu/hw1/Task6.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task6.java rename to src/main/java/edu/hw1/Task6.java diff --git a/project-template/src/main/java/edu/hw1/Task7.java b/src/main/java/edu/hw1/Task7.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task7.java rename to src/main/java/edu/hw1/Task7.java diff --git a/project-template/src/main/java/edu/hw1/Task8.java b/src/main/java/edu/hw1/Task8.java similarity index 100% rename from project-template/src/main/java/edu/hw1/Task8.java rename to src/main/java/edu/hw1/Task8.java diff --git a/project-template/src/main/java/edu/project1/Generate_Words.java b/src/main/java/edu/project1/Generate_Words.java similarity index 100% rename from project-template/src/main/java/edu/project1/Generate_Words.java rename to src/main/java/edu/project1/Generate_Words.java diff --git a/project-template/src/main/java/edu/project1/Main.java b/src/main/java/edu/project1/Main.java similarity index 100% rename from project-template/src/main/java/edu/project1/Main.java rename to src/main/java/edu/project1/Main.java diff --git a/project-template/src/main/java/edu/project1/Main_Consol.java b/src/main/java/edu/project1/Main_Consol.java similarity index 100% rename from project-template/src/main/java/edu/project1/Main_Consol.java rename to src/main/java/edu/project1/Main_Consol.java diff --git a/project-template/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml similarity index 100% rename from project-template/src/main/resources/log4j2.xml rename to src/main/resources/log4j2.xml diff --git a/project-template/src/test/java/edu/hw1/SampleTest.java b/src/test/java/edu/hw1/SampleTest.java similarity index 100% rename from project-template/src/test/java/edu/hw1/SampleTest.java rename to src/test/java/edu/hw1/SampleTest.java diff --git a/project-template/src/test/java/edu/hw1/Task1_Test.java b/src/test/java/edu/hw1/Task1_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task1_Test.java rename to src/test/java/edu/hw1/Task1_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task2_Test.java b/src/test/java/edu/hw1/Task2_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task2_Test.java rename to src/test/java/edu/hw1/Task2_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task3_Test.java b/src/test/java/edu/hw1/Task3_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task3_Test.java rename to src/test/java/edu/hw1/Task3_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task4_Test.java b/src/test/java/edu/hw1/Task4_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task4_Test.java rename to src/test/java/edu/hw1/Task4_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task5_Test.java b/src/test/java/edu/hw1/Task5_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task5_Test.java rename to src/test/java/edu/hw1/Task5_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task6_Test.java b/src/test/java/edu/hw1/Task6_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task6_Test.java rename to src/test/java/edu/hw1/Task6_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task7_Test.java b/src/test/java/edu/hw1/Task7_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task7_Test.java rename to src/test/java/edu/hw1/Task7_Test.java diff --git a/project-template/src/test/java/edu/hw1/Task8_Test.java b/src/test/java/edu/hw1/Task8_Test.java similarity index 100% rename from project-template/src/test/java/edu/hw1/Task8_Test.java rename to src/test/java/edu/hw1/Task8_Test.java diff --git a/project-template/src/test/java/edu/project1/SampleTest.java b/src/test/java/edu/project1/SampleTest.java similarity index 100% rename from project-template/src/test/java/edu/project1/SampleTest.java rename to src/test/java/edu/project1/SampleTest.java diff --git a/target/checkstyle-cachefile b/target/checkstyle-cachefile new file mode 100644 index 0000000..056bec8 --- /dev/null +++ b/target/checkstyle-cachefile @@ -0,0 +1,13 @@ +#Fri Oct 20 16:38:00 UTC 2023 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/EvenArrayUtils.java=1696962643605 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Main.java=1696962643605 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task0.java=1697370232146 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task1.java=1697819361653 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task2.java=1697818906214 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task3.java=1697818953563 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task4.java=1697819361661 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task5.java=1697819821013 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task6.java=1697819873541 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task7.java=1697819361665 +/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/project1/Main.java=1696962643605 +configuration*?=DCE676E7F1F98DE9D7190DDCF06FC40B1720B3EC diff --git a/target/checkstyle-checker.xml b/target/checkstyle-checker.xml new file mode 100644 index 0000000..96b2f27 --- /dev/null +++ b/target/checkstyle-checker.xml @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/checkstyle-result.xml b/target/checkstyle-result.xml new file mode 100644 index 0000000..6282dab --- /dev/null +++ b/target/checkstyle-result.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/edu/hw1/EvenArrayUtils.class b/target/classes/edu/hw1/EvenArrayUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..e79910468e72be4712bff851e30b7b2e17336a3d GIT binary patch literal 1281 zcmah}$!-%t6s-1aiQ_B;Cd6?Thb7p?@vsDga1;q4KoNF=2!sQtjx#tDhH)6iEJED! z6;ViDKyY)!Gob>`PniJ4+`Q;?K&}|`^LJv{`yW;XzWssE$Df{qI4~DSU z!f*;{j0jBp2TH(*LRohO4sBPn6e--wpJG&}`Y@Wp7{+h1o2%s8U-bfap>=D;4X?-*pF4xqW?lNr zGW1m5+0>&okIfyf{=MxL_WefOM+Qp8^?3$C3@ad*SnY%uiTGXU-f8*Nta+>V1$vhv zS-)A68}W4(99pgBMr+O0OEQ$VTn>mQyJqWt$85=^W-F|_oE;hO{@nv5WhWeEgA+8d zz=(1TBb_;2%$!ccyvMF;&1q%b*2kVAU9|O5*{}^I(A*SaQ>V5snddyv);1n9EE2!O$cg#v zBcp?i4^xF|dzQ5s_CV<|)Kwil7OA%NDDFdwdq0eAyzL#lyKv&y$S2}i0@hnhyhg7Y SIzK;rDo=pJ6ex2|;N%aV>-&iS literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Main.class b/target/classes/edu/hw1/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..9e8f00cb3ca3e627e24eba9b4c77ff27551e1472 GIT binary patch literal 961 zcmah|%~BIV5dJzpY&I;A1PDJ-6GUKx%8H&Ohuo;q#n_X(%Kv|YI z-^7Dw^&oig0elo6!Lrnzkb)d2In4BQPj`P`_w@Yu^X)r;2e_L?3~>z!14)b!G97Us zEKm3?YiGA3oro~9<@#=PpAa|84IL@y8qx+vVGs=2>{;!@b*m;^pIz;p?d?a;2@7@* zwk)wPoVK*Qpw)6YAFv8TW-+H>-arAD2-!3Dsvk+_M9>a|*ONPY zguGcT4<#IUR1~`_idvDdat`89$VvN{LmCUXs$tQ_@d85Z^`JSQygKI zFKj3G;bG8}gbCaA<<_>)H5s*o<}(qBu8d^JfvGLW8;n)D9`r&- zK6VvZT@BKjdK#?rsKt0l3G-^$_!MWIr<5(rtZlF)mdVwxpig{=VTE@!(BOashnRda zPMlE2Dr-8f;|6=E1aJBYf#uK8a%0Ds;GeKnNPfVKGE5haFmsH{al9w``1hwmi1!il zOajO<(iHErD6(8)k_s))xed(WCf546%dl{Z?d!aB#D4Rq`Nbi(Sxpk(fs5QYEveX# Z0kk8OzCcruJZHSCnpFbACd(M^`~%1z&rtvX literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task0.class b/target/classes/edu/hw1/Task0.class new file mode 100644 index 0000000000000000000000000000000000000000..66e6463a9826bac9b74b9c6929a93492bdf856aa GIT binary patch literal 746 zcmah{%Wl&^6g}f4b>g^9Noj%dNYnCg5W-ZjsZt>!1l_n4(JGs+CeGkExHfVf*jD@q z-#`%}po$M*<@^xhOj_|$MHe&oG54N1_woJ5*KYtG!LeYVV4`TFgeig9fqWy~NXCJ? z)g3556PQ{L<1l+DP;gqE3d*RMuxwOe3rwrt(Cxonb$8_ct9y*~wl+4Nybx%5NgBBF zwe8U_O68KFCM;Vg70S?#@zvl#j*-%_?Sb&P3hD9L@_g z&VUjqhVjdUXpZ-r{&tq~&vvV0VF4FRT(ofsivlbEL)(LJYf^cU0& x{0lQfxY{2uRV-tLDc5;Qf(A(P#xF{Z2_9gMF#i#zMiUcKnls(JZ&Dh#^%FJIqRapQ literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task1.class b/target/classes/edu/hw1/Task1.class new file mode 100644 index 0000000000000000000000000000000000000000..dd0e9a22ef42782af2cddff98783356e112d6eae GIT binary patch literal 1135 zcmZ`&O-~b16g{u)%s?5SR4O2#0)j1H6+bG{iouGe2_J?M)RjKkXFE`)IGti*T>2|q z88&R#xB;SxJ2(C$6U8%a6_J>8wi-tpbLaHOYL)WJX+lr{K^QPSx>kWmbm3oY zGPV{(J3 zwzBgAebIF6OxMPQNsp`F#6?^ZFm`0As+M00jQl-jeedL14i*n!(7=$1D;O5&I9V-Y zyQ-iZfu?QgR21F+?4B`jRiIVntMTINsrag_Y)%QZW#`k&OAoTo7c)!qt62e&At+t8 zE3UNNHE&EmUssB2r^|UI(7s^VYN@)luAEi5UScG?P|nHHnshABZv+Ew(W-dpQ~i>p zajh*D35%w53dDrZNJf~x#WpUpJ!i7N1*MD?l`GqMqI@~NF|Ag^+IpCKWL=rtT$J05 zp+bwwEtd0-r6aeLs~i>vv*oIjQx7d~lVDAhNl#qrJ;M75Z~{aT<8zdr4`ckZ6?C5C zjKulm)q^&A2=TE7nc(TA0Y4^rnsor7*XRjMVVEQ=77IiejJ^E~<5{@*5G{*;tR;UU z;7@1~ZR`MTyO5*Cd#8!L@2B zVf-nx65ZI~C-4frc!U1ht}AF_WER&cndWWQ*xIvhkcA?{!7U`HKqrd0P0LR%g=tm< z$l1$2UhM|E&Ct@3B+nr9V-o8IMhvtYF!&RcxF;O^4($g9=%k3#1lxEb-{tAU>@V*d B<0Jq8 literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task2.class b/target/classes/edu/hw1/Task2.class new file mode 100644 index 0000000000000000000000000000000000000000..1d730620a452165ecb6967dfc4d2b66519336d31 GIT binary patch literal 572 zcmY*VO-~b16g_ulpmZ$l2nqtl#2s|uM7IcuA|y@dK%g}2%M^*4B zI=JY5h|W9j4o+>!=g59O(1ONMlIf_t>g%Gb`Y9_*M|rH$o+=WX&x)QIB@>H&uy}{e zab9NTeKJf8``%W2n;JY-44FwGaN-d)of#F6JL=<%E$C=7$_FQ^P*>XMf>{47FN;_o zCRTz!{nkr+3A{js2Lj(3s_?;;)2zmP@m^jhLhK1?8$^WkLO<8~4*516321E_aPgS7 zb_c)`mYE5j;3-M$@E3ZIetl!t-D?Kb8`M9$(hU4`_x9g!hMQm6bzvEwQy?hHA)kjj zB{e84AlEXUk<)H!-LcI!kryjd=?)RAjO?}*#y&aMh+ly72cAekB)=eRT7et14x0Y~ DNhw;CT$lk zy6~5TKsRn&2`>5r`~~7q5wV^(Nf$n5?mhSWygT#b@Aqo}FR|gkfGJ@uBL-U_eWK1( zwXcTV>YLVy*A4~jXa3L+>jGw>cq9=QNP3+~wRirwdZ@;y+XB|>QO6Tl+4YCs{$$Yd zfDo;k;B9nvG_o_+CKxd>fpif-dWf zrp9OeQCC0?)WzH@2mbIDsf*jFKb)iFL8#iNd+K9EK_bVC?s;Kv)Oo7{HSj_&U}xuG zGzr??j<2aZ(cLO~9e4=IE$L%G=si&;XjQ2Nb!_V!#Mdb7Q0g#XVu^BjoZ_O%G#I&%@nsjC9dWy}GD=YaK;#$|WaIGm48q}=MQe55qigL@$ zeN@)r*bE5`*h!leMcaWjvzd&9IIOMv79C_!7 zHpzR7@oi-BgudrkMFV&74r@5ZIu!1sOWyz+(Y-&g!zzkMvqs_-N(;pME_R_&mi_gv zE^&v*;N(wmSz)sJob?%cQV2LF!?owweT~S*J=PT9+%P3BAtl!N2z`KD>NjG4USy{+sa?;P(i=*5G3_n$s5 zJjg$0U_}BHT&Lr6$FFg_D-@dQCaEj9reK&ZS&lg9p45eR$m=%U#7b_1+coZ4(jQ)` ze#`1e^f|5^L-?ijdL(iEf1@1hlaiQ4{GA?eOSZA;%RxDvp70nJ$D*StQCC%;H;&7^ zJ(L(N3%})>74Gp9;R}!C>Q%SvHN?Ip`_c#F*^qQt!Btu+fEcifYxKQNUI1(KGP!1C z*XbrpU)mQ0Q>S1b2ap?NWf)M9AZwffkVJ|+hBPu%L?(ZQN)J%^4DDGge2U4kvKLSH zF{PUCu$)Q9)faut_ObAU&co9iCGh_DcL@r%)whUc(q{=HU>{2#sHOs`V-+E?VcKV% zc5jk=gV=R!V+y;pk`FO6(3m0}25GuUt;*kD8LE}1jX{$-_OXdAQoc>`2$Y{NG-&Jx T))sJ!u7Zq^vcDa&0o?urBHF;} literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task5.class b/target/classes/edu/hw1/Task5.class new file mode 100644 index 0000000000000000000000000000000000000000..fe37885b2c31eceab22d23e247c6eaab334ed55e GIT binary patch literal 2206 zcmbVNU2_yg6g|B&%OuM{J|IAVKoA1?T9%LyksunDL{^f3B!(}QbasdAkjczCGaIEW zt9-D0@r@_-(Mpvsyr@+ng_J+QU*K=C%HZjli5ZfV57yT9On2XV`$X#| zeC4&@L>mqWGzRtgAUXa(cd4}FAuTwhIJOJ4rEw)76tfl_F>w?fFS zs?-bB&jt!JGFZGIu)F4a1m~5ji&Ee~noG$Itp&@EV&rkwK*7X0C2Py3h=~mm+ip0k zQq_R-0#JGmnYe&q0xVahKg!hW-KCzQ+PSFm{gy(!len!cr4bXC@iz0dBp0os=ayx7 z#}2D}3qt9JWP33UHIaRLHEfrg+U4<%0`RWDnH_?pT{a{jzsb?N52s7_#{@))GHxJ= zIBP`QD3B{nT^qamuy}p+wpuwy#zn8fv^P!It~FI(nz#HJIqz_#b;2u4XIA>QnkS2T zShdNlY2vjUjW8{Ca7#M2Tk*Xm>zWmmEw@4ySgN&+Wr2Mu_M5mh=`v(%YA?}>;HuK$ zy~+gh0`1!jHp-G*r$bp@oRqZ$X7i*KR=vtC>B}W6WMNYhoBz+Lz_eHQ%htH9IOd`f zJFAL?SNp2xg+b`cTI?M(;3J+bMAI&OlEXvH8IUUJ1aoS$zHE2dTeJ!>=C}^VWjXZx zCj#H4lb0CA!LLiV;#k3{3C~-s*G9H+ORv10 zp>dB5nd5u3DDcTUifr$5h@T^u>m1cKXj{^iw{Uuqwi7N#x!)y(3AMr zF=U`Y7>xBHSF(c6N-MU(n2Pw7ffRt3MAhHixPq?~C&j4t1Hy=3>%f#Ytheck+K=eU z_qUPJAV+d$;6$gr*y$+zihnn;q(Ysz_Fdv=Q^`88Zo zviu)GwM{X{NmNPNh9ew1_&bgseon^tyn&OHrVEd78egz#zN8A@P`Yo~(4SKB6%1mH za=*ZEB>W>b@J{M9OKEjRbEut?y90J4yvAsQk?=ZWc1FTy8Eqg*%TvaW)3Sm?Nm{7$ zzlnT_J5eH4s`ALLqm!vp+4>8;e`7!;?G?Wh83Shw8ekoRTXK1ao*M3Q%-|mG^Vz_{ S_?Z6(D07zMTZP!FX#WRh`1)%A literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task6.class b/target/classes/edu/hw1/Task6.class new file mode 100644 index 0000000000000000000000000000000000000000..53b952df0c7345b74ed71a5b901d18d168626b69 GIT binary patch literal 1198 zcmZuw+fEZv6kVq?!@w}w7AzMpcvsq5Dk@b0HH4rxQZSa(L`~$-jxbVMoS6c?oA?JL z8lHUd#TQ@D7~=={7ygD1=sMGi7)fT%?0wGOYp=cbneRJaz5$rPEejE7CUhGH+5}?H z<(kY^Wouh*#YDSqB zYfQ`(A5J}>*Ec|z$$Eu?M5o=FGt*dEaJ)IWP~}e7biFLACF!}!Z*A(ql1p~c>3_5z zV_}!?hCuf|Eeb?7hFNz-`o6nH?=e{#&s@(}bM>8ay;dRZVj#=Q1-TlQGLfUo1t(al zSMEzst~i0?v2y#eT=kq~$#Gi6dc!L_w_U~73NOKs8XQhgr3ib~(2p}X3xRX=A~;Wf zaF3s)pW5T6nE`bHnQ?(umS3TEQlB6`h7cL9>R5#hakX1^78mIWH5nFSvbY1Ck-%2E zV1Bh`w49#M&38DSN$3~0(Gjy&XPe*ZXG9CHbn*VzkIZLuYjj8Ta5XY*LosWq`DBci zJ)hB)HJ{Oj=EGPz# zhtW-O;z%PwDS9!&>pX^Iki4p|aSEFhS7~sUa(B=lX0%R!i_uCAWnIE$suIClT%i>q z_9k(1tU7{4T;-llOo?l>3|wapIqaargk@q>{KQEfQ*1#br7wS|roMPW3^nB5bi8kX z9c|;-8yMOLJ(b?Z$@#yn9Sol05#0O@ DeRt1^ literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task7.class b/target/classes/edu/hw1/Task7.class new file mode 100644 index 0000000000000000000000000000000000000000..63c216c8238db8149186dacabc618aac2067f174 GIT binary patch literal 2301 zcmb7_(Nh~$6vn@sWV4$Ppg;qL*0#3LLR(0&EwxE)ZIN0uKn1Lw;X!Z7Lbin6%w`Lqj@7sFQkjn9tB(IeefGhBpdBlIcauO6)NzL0d-v=)=brQZPL^N( zeDEWHi?|j?2w@$O1T;hicHNXqGF_DRTzdS*O>@QO?3AAsmtrlhAfB*{w4kmC2T>>2oa^4(r>>265Zutf7JYU+rw{s;s zH*DZ=0!Pq8`AX9DOrEAH*xtxU?}$JmcX4v+jp5wz=0U$Qt; zp=rtymNr{yob=_){HQDi9qPEiVH!34f|I{0UAbWTrc1AQrM;Y~j*Cw^i|&kh*-|pa zgQ4hG=Q8q=YyF{9%40c>E~U&23^yM4z`yW*ws>ZZ7cy&0{nuissN7*>wQ z`F;hb>C4FeK_f^IOU6D&lD3$-Xdf@f81Z{58crJHWnJ7||G9O4Mi0}U5i96O>GU-E zA5aKn^s+&Z-%`4^hHf5sFX&D6If320$M|t-Koc7I)J)-8aG2krlW4;W++RjJ{W>sB zDQEfC<@z@E;vL${*oRx#j}LJGUvT{f2LsK@%yocSPEmRtlF_HRi!sL`406W_N4EO* zee4N#hElSsvf7=&bAj^raF)9eW4=X(QDIiPf^*CgVZEQ?dA`+H*T*=I3nX_7J*+#+ zb1yRESs3dq#n92It2_T%MX+2Fz+-g(!C%@FbO`Yn?T^s#1X1PjmAA3#{+6lHfKnc@Ce~Rc&<2psiQ|1!aB|>OzFV@ literal 0 HcmV?d00001 diff --git a/target/classes/edu/hw1/Task8.class b/target/classes/edu/hw1/Task8.class new file mode 100644 index 0000000000000000000000000000000000000000..7a2dd5951902beb3b131b003d4364bc6d6d345ee GIT binary patch literal 974 zcmY*YT~8B16g{&$TVSD3#e&k7)(?;mrJ_ho5R4)wL{O6w9w0`B?uITcE!l20F+LKX z`~}7bV@!PE#U~SD`~fEZ0>eKr{s4o-Guu`m*}b!K&pr3txp(&a;odg@cagGTz-)o+ zfQ5)aY*Rf~*^(-6WFN0@y7@pLa@#9=!Hj@8G`!q`R)MJN)Ut&a{OQ}}^mP1H71YybPI-I0ujl?5-t%1j7$nQ%v z=~C0JCcObCQvd04?KqyY!nDWbHGWJ!#82pl0ZsizVg}SR@c?y&qX2!b6L?r*6W@{I z)8VfjlXgF;&us3>-LSp7)vq}#a7G5FWOGVq*zkUI;wqaz#imcwvxqoW(SxVxLkS7I zL=vx%!5ebl;sV}b0J|8(9xmf6M(_ip_=zjn=X`(T8V)dyLrjQH+!RSnihi_)zkZx~ot^e+kGfd5T4 a-JecpGU-3C_(X{DehJd_?McuYNd5yVF`={o literal 0 HcmV?d00001 diff --git a/target/classes/edu/project1/Generate_Words.class b/target/classes/edu/project1/Generate_Words.class new file mode 100644 index 0000000000000000000000000000000000000000..6e9ae9f6abe0926c0e5a107562c44a60737482e3 GIT binary patch literal 718 zcmaJ;+iuf95Iq|^w(GhiIH6pc0;Q!mL14iv7YQLzMMOoys3_tg+QduQ%C(VkxV#nd zLj_SPwQ4?qC+CL{vreLdgxJ;2?#!GyGduJ1*U<>TBQ$N4pqbDelwmMbcldkmM?Bv4 zpY?adAY(A@%UEU)88olCWy1Ok6lAH4w=LKVPX0YV81Ll=`L}#z!C|n*pYsuE`xeeH z*!fX@oR7v|@)Hx)8Otz}k^h{>VX|wZ0!@jUgF4PJn6dbnwPUJ5_u9?2iSrCgA{_c} z(?r#F$KMdKNO>lDFOxKUN4UpHC>Sao8H>%~ZeOG?ct0YG+erpI+Ty8H`qZdrZzKgR zcmBh9k78$8CS|Hr40W&BIqlV?4TQBrIml!Z^Yjx#?bW{^Mq2z<)l?At(E%c;D*E2* zB<*eRC`vw1eXLEr=P|ve5yf~;QwGT}9f&7V{j)Z!b<&aBDg#!qNK;m;1g7Rp@&ai- z-Hh&X>k#Z~;l4;xxygu2B%SGd2@TTbu#C%OQNerAX#<{d0<){Rb3s>k=Yww9T?n2Y zqtZRZ+0ISl2iym(#@)?Z`-Ck)@h=iLV9|_iVx7k|%Ce4yB43L*>$I=nDq$MrSs_28 VV_+3)#IR21I!TSJHwaUL_Zz@QrnmqA literal 0 HcmV?d00001 diff --git a/target/classes/edu/project1/Main.class b/target/classes/edu/project1/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..e41ff1261d1a55cabf1e51846ec4dba58b7ea4fb GIT binary patch literal 971 zcmah|O-~b16g{^eOs5Re7APN8+loMo%7~zwqKPqzO{UgZ(~Yag^ic+XnD^ejbMHCl-gn=RKi|FsxQ{zPkzFp$IuA+sy? zgy{;eYc{ubr5zGRHXP3h?-AmaYFkGNx`woYQ5b}*>lpgYiVlVGmhD8f9G3FmK>076|kItEeG75h>BTGCb@Q zXH=@^wv+qt!0$-HxaD~A$)L9-gXdz)WlzrXZQ-^>;3#|OOoThmE5d|z>K1DZ)r)R3 zUwLt&o}-=;$lVxZ`)8ia_*aC<9JRZP@N`z|t*$ z5ZLmOqZI3EnpV{PV3mh1#^XwuQ)9=cINLn0>{(=Mjd$Wbx%?IMi4QR>@v24}oRHv@ z3ZIO_AXKr;mX2$<&JhaWO#}!meukDCJHR-liFg-b;wJl7`O^{m&Cll-r`%#QN&F97r92lH_>W5B0tiH4}{Ry3RI@2$mVVKhAtYjk(Zbzd% z=e*~f_dM_OKIh&2<9}`~062uJVff%z5Kz&Cpg`M6ZBmQpG;=&Ya{Q#8b_9a^4byO* z6YzI-jfD|Hvx2aSN1zI9)H9`c!M5bez41QX)NRetQ^zbjQxu3S8eZ1SjFp#Gf%eX> z!3T#V9osO+dlak^SnZihj**Ke)0#$kc3Ut&Q8diM3 zER-Dj)U|w17%f;U!&)b>zH`MTGM*?lDA=fC6E-hD!9&LIbGkY1WWDeQLimb+*wKuw z*rwo772EL`y)R>7NHfe-!ZM3iPM~#2n=J1K&OH( z6+0w~8WCO+>MI07hUtuHxson9*`;DP_7IX)VuBuof0Se{h9AO{0(;%d?sfN;d%b!w z=H95zuv>Po$K1KD5n_v>e5< z%u`K!JzcNKXb-7)!HZV6sfew3QN>~O3aGt?spV2fv$j?wv5^L1>qx@f-LGN*-{8sm zltHorodaEC(#xQVA?YQ2*tYDHCme}uM8#3OMA&J|beKsZ+t?UmBCFX+V%E*HPJD7p zQpG4V=s5CB^s-WjG(BRA)I~Un7^_=Kiv~5W*>egYG9> zP@#SoxRbv*dXd|>=B9h6II{8T@KWiGPRLa&uVhir?26@US2Ki?z&7_|`jBVc zq|@`U>e)Ij_l7%1+q`?5+IXp?7ahZ*{#zEw_wFW>n6NU`VyhJVa4COWw@0<(IZvHd zTFZ@TwjsxLW5CH8M6zM43PewS_ah3~2=~CIvI{ zN=>Epf+VP@;QhrS;+2S{8P?h%-N{;+qnb@YIl4{2q5bJx{bdtQS|vNJ_ZpJCwuYLz zM^+@7Ua%~u=-67J=B60JFX=$UM9ex76Rkmf7{*7qq~Nl=HNO_v{@|@+n3L9o9(Th+c}i9q{jK>S&Uqt7wY` zI+`L|lINPlwfq0zL>aLP9^dp^{H=_gk$44rcUSOCcQ6`^bXTzd64sRQd>IK&1m@9q z4PQos^c46Et=v$?5l&pg?{-S-@Fk4;_bDAp?W_YkJCq7ujt2dFUO^|1R-UTa<}pU+ zm(flf(!69%o>K_y_Y%u%p6B)Fe8M~EjZK7l3n_qh@04g@;VRlW={c?-?d_FuRB)me z@D;Rqo3nC{gnvIG`SpAJzK=)QkCMMlWO)l#BZdvwhR12&&Gu>b_MsEc^P8g|yD*GB zEah?Dl_!y9`#dbD;DUmvP|(62 zC3hDc_uv!vu$Sicdw4|bzl)|Ydp>a&>+fQt5AVrSdEQTOk-a8CAfOC?>WNlr`miTh zU~^mZJSJuli + + + + + + + + + + + + + + + + + + + + diff --git a/target/test-classes/edu/hw1/SampleTest.class b/target/test-classes/edu/hw1/SampleTest.class new file mode 100644 index 0000000000000000000000000000000000000000..b4cc0559117c0b857652ac4783814501009e0d13 GIT binary patch literal 971 zcmb7C-A)rx5dOC9c5$f|%8!7cDE<_vEF^k`F=-HzCY4R3)-+t5mLomQcDLCdv|cHR za-oSY;REOe*ogW7UhTe+an2TliF(1gICEycnQ!LI%#WX6z5^&?Nk;-n4XF%Nq!kRc z*d8-1X73tiy~P{8g7iIM3;(`?WPZM?V*uwg=ot(mqhOrx1V;1Oim|@O?V{_l?qgqA z9tAxWmd{;!*BxCvC1a;4MS;H^ceq2nSa8<`B#x#s)a8V{-JVUI4Y{RjACTws0 zIWb#ZNj90m6fP;yn#|i0FSvr`{26P~Fry&%yM0@%-LZIud-T85nzKWU*|MJXd8@H&=EA>cx5ijQ`2TGt(i4#z$`EJpgk<~a9))T1g13e2qWqdCZ3!on<7G)W&&Bv zAcq1*uuMC22V-#ov;8C|1x%37b=;t$W+>t&y%M-Z@mZ32lJkTtcvvJ+AT@#8zW^Lf B{pyG( zFZdHCDu_YfeVYD|ai19?67@Xnv)0*{S$og^@$>8(fJMw?kbt5hnMDd64EbGt$jv5q zw#{doyLQ88=$IFd@D~`AVyUh|W9YQE0(0ke*{pGIubhDjMZ-0QlvS=+mgJpTbRox( z^u@l-&{wQp)?M>m;cU;9Rx;>@uA(Q4Ui2{(TJE;F8_>7N9thudO@1KEMbEQcU$h*L zAGW}WqL-#poCUs#!`?T`>tV#L7k;jnV!`!EG1ebQA2^W z$uJFf;tY$D@6w}8R&k#}ztZGJ&Gu*($;YiN>L*tfj=dV}Z`y8+Z#L;gueKVzS?8{h z{Ngd`?+B9FTm8G#97Ectk{j`Wl8qgEPu9H>NkN0p14o9`g(s-+qT{rDeld-q>c1x@ zrBdqXf80yLJ81GZt9;+4sMH~E2GqcC_&z)h&)Y}sckSascv@(`4L^lv?W6EK{MbHb z$gH&jw_!gKvfW(t=cA!a$Uln$?$IL2BQ32G7{&;hbTj!feggI(au>-;H;_h&Y&H(S zI1FOI1M()K_rLb{iNJ1Ah3UvnN%f5K8x-$@kbse>6#*%!1OQOl)`-g literal 0 HcmV?d00001 diff --git a/target/test-classes/edu/hw1/Task2_Test.class b/target/test-classes/edu/hw1/Task2_Test.class new file mode 100644 index 0000000000000000000000000000000000000000..407ffe48f855cd02d0d805e0eadc7eb2f37d1784 GIT binary patch literal 756 zcmZ`%TWb?h5dKa!$;NcsTpFv@8dvKjG2mjs7p+3D3V~3ehJa7yBt4`jZg%TlD&mXU zC+WNR;GYoGhD!YbKJES?an2?pK|K$1X6BpuX6DTK@$>jQfF`cxk%FcpZ6JdzLvhIW zxn*-_U_I^)ML%H3u1iM-_ZhTWy{jX~FfVpOYxl)1tHb?gYkBC8Pc^@y_H7+MI9vrWh^q7t~aoTA<>fDlY#Ioz9+4w?+Y)Gu0v@CPmG7pLvE9q zskK`5u7(fqU+Y+6D9^O8-4Q-@nttH!2!=viI$|>%^@P{qJ)1n`w%g}+mwQs#Q)fEZ zmBd_W|4nt59wH#h?b%6e;W&zZCV^s?w`g8D5?$#_;%_>R8}R8IEA4;Jsye3B)&Ia7 z(%-ZB%S}EK6qVWMc1UwnqmR)zI*AYBxACDFjm`K?^d&lu52BOkb9~5O!)f#h;^|nccWcfIgh*Ip;gyxy}6gbMh0wJZ3HQKr^A+$iQI8@A7@_ z_&nHl+>KptGiERzi9p1U8MIP)#YC2&&)Z6zowxU$WgfkLV8MiD;Rx%y(s1zzDJRzwS~2X@~VYvD44iz z;|7KqieY`**-fZ8l6xZd>JHx%&U_Sk^;m>K#9(u!Jb#mLpVaA6SK3y8bLTCx%UcWs zXS!Tprg9kcr{NY=l&grqTTE&jUVXV$<3J_cXCm73`N1Nud4$TS z^)QU3AJay9+B|H&ZypuXMzQ%W{hFRM57X21OY?|UvlJ%vP49(}tI4S=poVi#ZWKk_ zq#GqaDd|puVTAr1I+?W09D{vQ?opD`4fJA+q}>AGHj&8h4taZIFgu`|L3C{LJIv}a zdMkPZ)~xx%s%pAh)iZ82W4KkrbTiVVktuJu-;gI%149a|JOtA97RaPut%K1dp&_I5 zy)v9cCZBCV=~R~ggbI9Fb}B~iO0KXfxvaEZp-iq{l)Tf83Q>tKC2N-_W4hbz40nnK z3-lpNkMbdMs3MOK=*MSzW4|$ozZhZ@D5&8VS_5tmKg&jO7vr>$31Y~RZ<5X_(x)So K=qQuggPDJ$T>r=b literal 0 HcmV?d00001 diff --git a/target/test-classes/edu/hw1/Task4_Test.class b/target/test-classes/edu/hw1/Task4_Test.class new file mode 100644 index 0000000000000000000000000000000000000000..da0b9428a82c2171f69b39caa351bd9dea492161 GIT binary patch literal 939 zcmZ`%TW=CU6#j-wS&)`?TdT!dS5aGvvO=LR7!%^nlaD^iCxx&_VQNb+XTz;!i z-1eM_IOegy5Pc&DyS6Ef7Q_9G%6X-+v6Q}SieV8;5nPR98P^!Jp4rm(9cqVUU)sXd zd0*;f%Mzw7dxpgj=f3j%ox?k%u20t)PgI&JGqI#=3RW1B)wZ-WI$Z0@foN(@U$gv% zvkGpIzg@MY)HDi^T`|y_eaF&F+mP9of}0FsUT-vof?EXZyxAalo1n)Ek&+_llM=x_ z2K54mdsSf()uE@oreH`^q#<^kZe5sFUhj}at@IkaQ{$%e^ocQKQ@adHmCLD040AT6 z+?%32NZ8ALA({eLUO9$M^VFmzDS6p2dN!Z1xmx)*<6gV;H1!|%GimiZ{KF3K3W^FJ z@Qy=6q}(r~L-*I{ll#^E?w-0w?oW5<9%-Y)(PuKAxhL+BA-3Cd%!YU&y}1+qhWYGd zy?ud(yR@+0=Sf;w&@K_u>1Li~^BC-#?_MYAxq&D)NXEwjNMn;UAVc1O|M(+5pNlFMLpwPN6VgYMVsn{Y4Sn?ZK g9v7K3px_}M(9e+dUj=9e;1TIL3wgS>NDZLy7d7qVrvLx| literal 0 HcmV?d00001 diff --git a/target/test-classes/edu/hw1/Task5_Test.class b/target/test-classes/edu/hw1/Task5_Test.class new file mode 100644 index 0000000000000000000000000000000000000000..19088485749ec3f9f3f024fb61c23059585b6706 GIT binary patch literal 1063 zcmZ`&O-~b16g{s~7#IfoK`A1rD2gp8BPwocOi(l-X~1aHL^kBnKFh=DOq~ymu3Wj( z-{9VjCPpeK?p(MU|A0n+i1E&}gp$fE?tAyVd(VC6&VAqi?(6|rz;z8VC@SJQdeF;| z+~ix_Fu7GTR@OH~#bfBbAuZ|MWKeSXvWh;2K~eRMji+-)iMx;IHKgsN)zC z45w!Sa4n8c+$392AxOFohLpw$-U6Y+v;4Qqf#5mmlb^DZxmL|EGuBYKZRx| z)cs4v6hrz@W7kT;r7Op8+f~7kC`wB#`}K9f{l}i_&eF z{Mj_9h!kzm^$W6T!Y16pUb#m zDh48E(2seLiJf;0^`_hME-|*0kZq!dd3w~3vM_z4xK}V+u7T^Q>$qWJ5e}V& zjQXTFmZ^vxK9)`=Nkp8=C`=eko`Y9M84n1Sny#zt++?U-u(RJ43Arx5hzilTU%Zyek(GaA?)!oI z6|7>3ra~8FzgijNHS) zL<|)}eqRPsy<*7L8+{W6hBa}LxZ}^y+#ZiVz9_;(wun_&Ce|$6fXz_44ATvi7>S6% zJmY>M4o?{>^=`wv=F!%HN*2mkXIPCw#g#acqcKrv*O$02ftE+TiHeC$3%5{ZsD;tU zog`Ed$(d9la`{ZUoj4Yel3@@tSUgqUeoDAc>Sn#WELC6Ay<=fZ(=E>Fdg4@>xW`bw z(xKy?h^Y$Wb$B8eY)=N_AejzC)Z+u6kg^vJx!>oJ)cOK6)L2sX4exrWHuXnQ$m4ld z8qvRtebt*Bt4B$oHGvo1y8_)1CjA-^h68^DhT{D#$CBj+I*Q zK1`yacqes5cDfm9-B0zPQNvwYH2rBws|JQ`y18^RjWo}}zNO|GNo@vJaG#_#cfbSe zkOu6MHIqL63L_2o@+Zs>=UDN~mQ%Pu(V+i3oC|CiEr*T;aGL-p-*QTXwa?ZSS~qjx2A@ z%aZGrO;(gyTU*GkCNP9+I);-N!F7Rgr@Wop^;j$4CCfF-Ia#uDvz3Zjb}h%Q2qdL% zJb&ZKBF)K6Qx(;AXTl!U^bJDJDak& zBFmPtYfjDGv6yxsAEufS7;;Iu-m%}RQ{`#d$xXwrJlnPQ%@wO+G107TJFcvCJDTsT zh$@|1C(Z~zvnr*ceD_lBn?%L@Qxh;wKb@YO9{>I*kXUlO@}~L1QjMnk8Sv$JsE!ol z80AQ*KlSENLEt98a$JS-OdUde_QPX*t1!^RZ9uXLz%AUS1xzp+QJZ5wi6C99~5)S}JH^AY&bXu>eRWpRo?4 z-NYCVfCMyv1XWWjw4YiJfZZ950NBjP@3v;rO}X1CiLMo?vF&tI@@CFPl?tw^{DOX} zdW6AfNL*rlak(lz^~PR)gv6z<r!x|EBCDE_eAu)xz0DTo&88a0Wu+(szcqYQ#H;Tdziu1^){*aoZatsBO;9 zJ3NJRiK}X?i_2W0wgbt0#SJt57vct&_6RR# z@R#1;Z@r13$PbKZW0;J+=Pf_Z$YAxdu3h9t%)=er<>h{lu@qyITr;$@6-;rNrWwKg Ezh1Vr?*IS* literal 0 HcmV?d00001 diff --git a/target/test-classes/edu/project1/SampleTest.class b/target/test-classes/edu/project1/SampleTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ccf1db07645dbb5c4679ca128fe4d2f1c7b24ff5 GIT binary patch literal 981 zcmb7CTTc^F5dOC9c5zuO7r6?G;-x@kA<-v{NrR9ysca$@)9`d!j`TF!-DWRneNqzT zK@DUjT|&(vd=1L&kuLtb)NN z+h?ZDoITU3HF-TykbNi|5j;|m&d+b_=))xqx`BQe3dZ01)@;Hn zoi-;nz2{nKFsf%oGM4{OQ1b(i)q|1~B*pXyS9M&$sD?2E<1+c;1!5KC>aG(o;rQ#X zh}rH)vPlC|xT-*FFn>$D<_ebc7pzIcjDm65zP9JeMz5G#tkt%8h5Pi$%$mDPw7Ify z_-5Fuaj(K^Hd%(tZk^fN%o9>SHD-c_pf*jG&*58DFw`4}oKugF{52fH^`_ zN$?>NrOEQ3?}uJZXRK;QwW?~?s%AB-s`Xjr#V)ibg)RnE=|EscvyL&M9%JJ9S+Xf2 z1O_mHLCjzT1=^%#jN(4Vk^*LXNlpuxAfH>fO-0R6#2tF2aF^n9B=aQa30d&5NTNV$ H3itj3^D6>8 literal 0 HcmV?d00001 From b7f542e3c912626f45be60a9a640b07a0a6c4f0b Mon Sep 17 00:00:00 2001 From: Jopick Date: Sun, 22 Oct 2023 18:46:00 +0500 Subject: [PATCH 6/6] Project1 and hw2 --- .idea/.gitignore | 3 + .idea/compiler.xml | 18 +++ .idea/encodings.xml | 7 + .idea/jarRepositories.xml | 20 +++ .idea/misc.xml | 11 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/vcs.xml | 6 + src/main/java/edu/hw2/Expr.java | 23 ++++ src/main/java/edu/hw2/Task1_saport.java | 24 ++++ .../java/edu/project1/Generate_Words.java | 4 +- src/main/java/edu/project1/Main_Consol.java | 64 ++++++--- src/main/java/edu/project1/find.java | 17 +++ .../{Task1_Test.java => Constant_Test.java} | 2 +- target/checkstyle-cachefile | 26 ++-- target/checkstyle-result.xml | 101 ++++++++++---- .../classes/edu/project1/Generate_Words.class | Bin 718 -> 678 bytes target/classes/edu/project1/Main_Consol.class | Bin 2990 -> 3859 bytes target/classes/edu/project1/find.class | Bin 0 -> 656 bytes 18 files changed, 390 insertions(+), 60 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/edu/hw2/Expr.java create mode 100644 src/main/java/edu/hw2/Task1_saport.java create mode 100644 src/main/java/edu/project1/find.java rename src/test/java/edu/hw1/{Task1_Test.java => Constant_Test.java} (96%) create mode 100644 target/classes/edu/project1/find.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..c805922 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6a95d65 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/edu/hw2/Expr.java b/src/main/java/edu/hw2/Expr.java new file mode 100644 index 0000000..1ab6f7a --- /dev/null +++ b/src/main/java/edu/hw2/Expr.java @@ -0,0 +1,23 @@ +//package edu.hw2; + + +//public sealed interface Expr { + // double evaluate(); + // public record Constant implements Expr (Integer age){ + + // } + + + + // public record Negate (Constant age){ + // public Constant name() { + // return age; + //} + //} + + // public record Exponent implements Expr {} + + //public record Addition implements Expr {} + + //public record Multiplication implements Expr {} +//} \ No newline at end of file diff --git a/src/main/java/edu/hw2/Task1_saport.java b/src/main/java/edu/hw2/Task1_saport.java new file mode 100644 index 0000000..c70d5cb --- /dev/null +++ b/src/main/java/edu/hw2/Task1_saport.java @@ -0,0 +1,24 @@ +//package edu.hw2; + +//import static edu.hw2.Expr.*; + +//public class Task1_saport { + // public static void main (String[] args) { + + // var two = new Constant(2); + + // var four = new Constant(4); + + //var negOne = new Negate(new Constant(1)); + + // var sumTwoFour = new Addition(two, four); + + // var mult = new Multiplication(sumTwoFour, negOne); + + //var exp = new Exponent(mult, 2); + + //var res = new Addition(exp, new Constant(1)); + + //System.out.println(res + " = " + res.evaluate()); +// } +//} \ No newline at end of file diff --git a/src/main/java/edu/project1/Generate_Words.java b/src/main/java/edu/project1/Generate_Words.java index bfc2822..8e1685d 100644 --- a/src/main/java/edu/project1/Generate_Words.java +++ b/src/main/java/edu/project1/Generate_Words.java @@ -5,10 +5,10 @@ public class Generate_Words{ public static String GenerateRandomWord(){ - String [] dictionary = new String[] {"дерево", "сова", "клоун"}; + String [] dictionary = new String[] {"рюкзак"}; Random random = new Random(); - int Word_for_Gallows = random.nextInt(3); + int Word_for_Gallows = random.nextInt(1); String ans = dictionary[Word_for_Gallows]; return ans; } diff --git a/src/main/java/edu/project1/Main_Consol.java b/src/main/java/edu/project1/Main_Consol.java index 5e72eff..6758315 100644 --- a/src/main/java/edu/project1/Main_Consol.java +++ b/src/main/java/edu/project1/Main_Consol.java @@ -1,7 +1,9 @@ package edu.project1; +import java.util.HashMap; import java.util.Scanner; import java.util.Arrays; +import java.util.Map; public class Main_Consol { public static final String Question = "Какая буква ещё не открыта?"; @@ -12,27 +14,33 @@ public class Main_Consol { public static String Eror_Input = "Нужно ввести одну букву, а не слово"; + public static String Repeat_Word = "Вы уже вводили эту буку"; + public static String Wrong_Answer = "Missed, mistake"; - public static String Game_Over = "Молодец ты победил"; + public static String Game_Over = "Ахаха слабо, слабо, проиграл."; + + public static String Game_Win = "Молодец, ты победил!"; + + public static String More_Try = "Дать тебе ёще 5 попыток?"; + public static void main(String[] args) throws Exception { - //Generate_Words Hidden; - //Hidden = new Generate_Words(); + + Map dictionary = new HashMap(); String HiddenWord; HiddenWord = Generate_Words.GenerateRandomWord(); - //System.out.println(HiddenWord.charAt(0)); int quantity_mistake = 0; Scanner scanner = new Scanner(System.in); - String[] Answer = new String[HiddenWord.length()]; + // String[] Answe = new String[HiddenWord.length()]; for (int i = 0; i < HiddenWord.length(); i++) { - Answer[i] = "*"; + dictionary.put(String.valueOf(HiddenWord.charAt(i)), "*"); } int win = 0; @@ -52,35 +60,57 @@ public static void main(String[] args) throws Exception { } else { if (HiddenWord.contains(inputWord)) { - for (int i = 0; i < HiddenWord.length(); i++) { - if (HiddenWord.charAt(i) == inputWord.charAt(0)) { - if (!Answer[i].equals(String.valueOf(HiddenWord.charAt(i)))) { - win++; + if (dictionary.get(inputWord).equals("*")) { + win += find.count_element(inputWord, HiddenWord); + + System.out.println("Hit!"); + } else { + System.out.println(Repeat_Word); + } + + if (dictionary.containsKey(inputWord)) { + dictionary.put(inputWord, inputWord); + } + - Answer[i] = String.valueOf(HiddenWord.charAt(i)); - } - } + if (dictionary.containsKey(inputWord)) { + dictionary.put(inputWord, inputWord); } - System.out.println("Hit!"); + } else { quantity_mistake++; System.out.println(Wrong_Answer + " " + quantity_mistake + " of " + Maximum_Mistake); } - for (int i = 0; i < Answer.length; i++) { - System.out.print(Answer[i]); + for (int i = 0; i < HiddenWord.length(); i++) { + System.out.print(dictionary.get(String.valueOf(HiddenWord.charAt(i)))); + } System.out.println(); if (win == HiddenWord.length()) { - System.out.println(Game_Over); + System.out.println(Game_Win); System.exit(0); } } + if (quantity_mistake == Maximum_Mistake) { + + System.out.println(More_Try); + String input = scanner.nextLine(); + + if (input.equals("да")) { + quantity_mistake -= 5; + } + } + + } + if (Maximum_Mistake == quantity_mistake) { + System.out.println(Game_Over); } } + } diff --git a/src/main/java/edu/project1/find.java b/src/main/java/edu/project1/find.java new file mode 100644 index 0000000..ce2862b --- /dev/null +++ b/src/main/java/edu/project1/find.java @@ -0,0 +1,17 @@ +package edu.project1; + +public class find { + + public static int count_element(String element, String str){ + int count = 0; + + for(int j = 0; j < str.length(); j ++){ + + if (str.charAt(j) == element.charAt(0) ){ + + count ++; + } + } + return count; + } +} \ No newline at end of file diff --git a/src/test/java/edu/hw1/Task1_Test.java b/src/test/java/edu/hw1/Constant_Test.java similarity index 96% rename from src/test/java/edu/hw1/Task1_Test.java rename to src/test/java/edu/hw1/Constant_Test.java index df81f48..36dd007 100644 --- a/src/test/java/edu/hw1/Task1_Test.java +++ b/src/test/java/edu/hw1/Constant_Test.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.*; -class Task1_Test { +class Constant_Test { @Test @DisplayName("Минуты и секунды") void test_time() { diff --git a/target/checkstyle-cachefile b/target/checkstyle-cachefile index 056bec8..b6ba659 100644 --- a/target/checkstyle-cachefile +++ b/target/checkstyle-cachefile @@ -1,13 +1,13 @@ -#Fri Oct 20 16:38:00 UTC 2023 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/EvenArrayUtils.java=1696962643605 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Main.java=1696962643605 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task0.java=1697370232146 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task1.java=1697819361653 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task2.java=1697818906214 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task3.java=1697818953563 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task4.java=1697819361661 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task5.java=1697819821013 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task6.java=1697819873541 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/hw1/Task7.java=1697819361665 -/home/logan/hometask/java-course-2023/project-template/src/main/java/edu/project1/Main.java=1696962643605 -configuration*?=DCE676E7F1F98DE9D7190DDCF06FC40B1720B3EC +#Sun Oct 22 18:36:13 YEKT 2023 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/EvenArrayUtils.java=1696962643605 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Main.java=1696962643605 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task0.java=1697370232146 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task1.java=1697819361653 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task2.java=1697818906214 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task3.java=1697818953563 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task4.java=1697819361661 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task5.java=1697819821013 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task6.java=1697819873541 +/home/logan/hometask/java-course-2023/src/main/java/edu/hw1/Task7.java=1697819361665 +/home/logan/hometask/java-course-2023/src/main/java/edu/project1/Main.java=1696962643605 +configuration*?=FA99C88E326CC425664C46266B7C356567A65CF5 diff --git a/target/checkstyle-result.xml b/target/checkstyle-result.xml index 6282dab..de4a22c 100644 --- a/target/checkstyle-result.xml +++ b/target/checkstyle-result.xml @@ -1,34 +1,80 @@ - + - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -36,6 +82,7 @@ - + + diff --git a/target/classes/edu/project1/Generate_Words.class b/target/classes/edu/project1/Generate_Words.class index 6e9ae9f6abe0926c0e5a107562c44a60737482e3..4839d4d5a65900006e5628bda1c33fe279ae96f2 100644 GIT binary patch delta 313 zcmXYr%}T>i5QWb)iLtk-tx;=iVzvH&MkL_gg*!vVh2o;ifG!kGH?g>@Paufz;JV!y zi0A{jkaXkYh$lgYd*;rWd%u})S5V$W5aVI}*8QG|i4ywSw40VxJ zz%0y$pF$>Odx=`KX`)57{_o3hSXHrtHl5=05IO_s=pQiqnq58by`$DoQ9s$!-!OOR zdk3fcW4@^1qQJI@1ZJTaHaB+&_fRj#_(UmUT{>Xb!YVo(hD1#?h?{EMiSY~g3D;mm41|7w z3v>G^{($k6n8}>EGiTKAc=GX5y0&t9a&um=DcR7r^awy+qWFRMC#LqHf*EcXH zV9K$a$S8i1QyoQt;!W$J<=uzZZSSnrxwyMEQ9wF@g&ay)6wo`DkD=cQ1r*1x`#P2c zs=c4;;Iks0%1F@~L;)2VahaXRDp*x_1TmP=E5wB65EWwX|6PU6E`wF9agrQ&p)deP zn?euLR;C#!R<;?aR=(Mopb(5Of3mNAz&diz?ZeZ9K9^HS49XM-4F21sY!+LzsUbfz hbSYY5tYd>aHknQGf~jE}J5;DKcZq3E_qdaS^9PWuJ4^ro diff --git a/target/classes/edu/project1/Main_Consol.class b/target/classes/edu/project1/Main_Consol.class index 9261340b8cf2e02238c3f42130bf956e1da6ea59..eff0bc457232bec5eb2c3b849ad60056fbb9004c 100644 GIT binary patch literal 3859 zcmaJ^ZCe!A8NLq-%&-mtSBWB+F2)c*Dr(iFU^RxSprA%5RAYkUGQ#NY49?D?)F$zT z#9FmRYnqr>o2I30`huVcSTSwWHciuBv)}rm{nCE#4@kXY?=!pL?j={@+C4Mpoaa8z z%l$mh*-yWioC2^Be+wc90R_1l@{li3d{FP#>!P~VQ@3OPK_lV{%bp`Bl{|_Z4V!9nNb7m#~OktMyWJ;k-);LS+`Vo1W}H~3Leq$C4{q2@HL}rqK4Ju z_WG`AmfM$Tcoa*y5b4#OjdWgaRdaQtT&dLXII0Acem$Bnb{wE)RgJS)tD;6g)XYIG zzN}!mhB~YeD7^1+dYk9b6oDtxnrDQoA;W*E05)VElAbESDttx3Y7J|!mLAB8RI6@U zU5&OCx1$0@t@=?jmWXw=nsHY@WC+a5IHB2cjUL0HJD#>1m*wT#qA==4+PlrgwMuC;yo8GWD=?y0@guQFYQ+yophQr>C}EjC?Vg zHEfkMRxRVG+hSUViWbH*?%HH~Iks!qft`%BaX6tzN$4!3Y1i+O*6z~K=38qxWbG<^ zLqi8T1+>kkrANDV_Bwi;jtylvHmymJ(z`Y6!LvNsIBKQ|)ge)y)9}1R32t(1r^_d| z)N7vx9s8+v#I{^UlA4ue+So{9wozxpiWm*mdnC`gH5ecv13d;0sLb3wZAXS`>8T)k zVJbMN;Sk7^xmgrCU|P)P!ib%)+%6+(#0-nbk7pvMEzAI(_I|Sp1}3-3bStEteHso+ zJLl{&`V8Im>xa}juECW7m@{qYHe*2U@7Hj|_im?STRmMHt@shc39;A>X!sV62`q?_ z$K-cJcRNkDS2EqzEtig}pGCpu3=Pv{&dR8nNHyXG4KGU0<@xNAL_988m@lr9Rd;p7R4>)rCklP8krxHytL8}{xneNHoR#=}gm zQLd-=$nCc%KjKZPxFoQ_dxsmwm~m5-!l=W_FP*AKMeL{f5)7 z?~nSqZb$TJhwhm2Jw2K0_L^kjqL!>&$|%PTM2s<~W$>TPi2Zctbg*-n{4|q;rtEg) zjz6ZlYp(9}5P#k*qAVlbW<(mHI|EYTtbW6DgH2|4w_&A#idph3*K`NE(t%+`jili2kBN#`8+=lS!0g)>bGQ>KhQVrf;HI(uY1tQ2WQq3zOc>JBZt@;eOD^@P}aqx z5u;C<6jv}g-3k1rG_%5{-fFnLcK1%*VP3k1L;tAjBGL4XC)j2uoQSd6lrbyLh{ST~ zA5J}O+iu)-^u82KT*Yq*Ai^SS9|()0eEdF$kMRcuf0V`NPvoHQSYHd%>bDOWb*bQ` z>d|IB;@UC*Z)8@Y^v2W?O}s8ejrh_Q+dh=&%WU^)7GyXmOR$|@o@IL`8D^>WX^2KW z8f`OOgRa(^EE8A(xE>y7o<*;ZMpcL<*69Vt@ zEeB8Wop%<0g-z5S*#`ZQZNeW}{{4}~(;r!Q{gJhnV}Mw^>hk+NzSVIQ9P?^!LR{lR z4zBWBE(0ol$ZsvR0q^5Sd@H~Q_%T5!9H>Ap-yvSR1!eb56ts*Z*cw=W3&p!f5W0zl z^|`fUD7%gF`no9u7F__{-#KZ~Sd(OfZm*M!t>*MdKN@l`OFvOo`^V#<0lS-LF{FGc)iBpE3 z@kx;+#Lw{|?Nr5i`~truX*F?%x^|M%4~f(GHDv?*y>kr1xJJ)BDjbYZA`e@|HjK(M zaGmm!?kS8Ld>Z3SJ&Ny95k>)o*4Ja32@tUu|*0IL?h?W$3~v+Cvvdu{ZSnQP`o^Mv(}; zK8iD;E2B6OdTSJeGPJ@E?Gj>vZc^!zLKGo{xmdtUb2&=rxCPX@lt$m?o*Yc!4o8)e UzvJg4e8RUNpZ<)$FpQ=D1C>r?%>V!Z delta 1549 zcmX|>TWphM7{`C_*TdI#-`FTS6}H)p$;Ji@iViGHm}6|P1L6jXqBurzbVkg%*wCxZSAn6tl=;F-zD(%^JJQF~6di zHj8^$qHsi#Ne#cwqJ#DJVaI|M#dKM0V55Xa#-k}A4I372)lNMYy{uRGI+F3^jt#NI z{*+F<$>Lr%+dn!M)@iZdVt_3Q_t5ZQvhBb4c5S)e;sLhVcreveTY%ZVQLlWf7r8;YuWr%X(gL@-8HXVp0eblo@ z1MIcGaLrS3`v=!%wa;#LuUj>$DC&)ljz)GZ3hs@LrUpl3H2W2`xzo9;xhwMjGT*jVTKIQ-ebzy@QE? z!JT^|CWrN8#)l$_R5TtNH92no>4{doDGO0S6^!o=svaFFeEGAE7l6flA z5$cc_m&7Z^MQRqRgt{6pp)Lqx@PxeDtluZ)wGe#q;3=LK>g6EMNEV4UQaI({Q4Q0W zJ&x8Z6mH8V#pB8vY_$ z47!@x1er@M3q-$I=yKs&XkaakX}VZMA4}wvo8?B9GAx(BPh1X)%TZSFIxBgfFc(?H zG_8Coy07J<^d0Sd&pLjilfUUw2A#@7x0*$-DyL5c*`(?iQ1xud?|L^rswgAPv$F6P zC0cW7lRu&48KV5y<9r+W6s$%anBU1$Zu_@a9i7C4M$tkw`Q&SAlZ~6*GM)GYeF5J< zyz#~xZz_1<1Na`kgkbBLv{*_O_WL{MJKy&)zs`RA1h9v#5FTUzKSBv*f$CU&P;sX6 zVf?B;)`=A;KTGq}?h43e>oCL(R04z%77$&d_pC|tA?caUhjuihcO3m@ge6o7BqL?^ zDCjpkt^EKsfn`0I#z&@bgPz9k(tJR4zZhtNrEZ$*m(xjKn>VVTu~O?6iOLR@NnL(f z^zA4;7Fg-dDeVX>CdD+jZ*`_8I_KcW&F?^%mApStN0+-*540T>gV)NaiMHBs&#+faO`>0?pZQAI9fIC=aR>57YQN%TWB*UlQlF#LCeft!_XRK}4PqEmR zG@npD@x+M~U(SE8e