From 2aaa0119306e552523f3fa5dc6ab38b71d51d2fc Mon Sep 17 00:00:00 2001 From: FedorSur Date: Mon, 23 Mar 2020 15:17:33 +0300 Subject: [PATCH 01/16] homework done --- .idea/misc.xml | 3 +- .idea/vcs.xml | 6 ++++ src/lesson3/homework.java | 71 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 src/lesson3/homework.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 049adb9..e0844bc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,6 @@ - + \ 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/lesson3/homework.java b/src/lesson3/homework.java new file mode 100644 index 0000000..337b728 --- /dev/null +++ b/src/lesson3/homework.java @@ -0,0 +1,71 @@ +package lesson3; + +import java.util.Random; +import java.util.Scanner; + +public class homework { + public static void GuessGame() { + + Random rnd = new Random(); + int keepPlaying = 1; + int answer; + while (keepPlaying == 1) { + answer = rnd.nextInt(10); + System.out.println("Загадано число, попробуйте отгадать"); + Scanner in = new Scanner(System.in); + for (int i = 0; i < 3; i++) { + int userAnswer = in.nextInt(); + if (userAnswer == answer) { + System.out.println("Поздравляю, вы угадали"); + break; + } + if (userAnswer > answer) { + System.out.println("Ваш ответ был слишком большим"); + } + if (userAnswer < answer) { + System.out.println("Ваш ответ был слишком маленьким"); + } + } + System.out.println("Повторить игру еще раз? 1 – да / 0 – нет"); + keepPlaying = in.nextInt(); + } + } + + public static void GuessTheWord() { + String[] words = {"apple", "orange", "lemon", "banana", "apricot", "avocado", "broccoli", "carrot", "cherry", "garlic", "grape", "melon", "leak", "kiwi", "mango", "mushroom", "nut", "olive", "pea", "peanut", "pear", "pepper", "pineapple", "pumpkin", "potato"}; + + Random rnd = new Random(); + String answer; + answer = words[rnd.nextInt(words.length)]; + System.out.println("Загадано слово, попробуйте отгадать"); + Scanner in = new Scanner(System.in); + while (true) { + String userAnswer = in.nextLine(); + if (userAnswer.equalsIgnoreCase(answer)) { + System.out.println("Поздравляю, вы угадали"); + break; + } else { + String wrongGuess = ""; + for (int i = 0; i < 9; i++) { + if (i < userAnswer.length() && i < answer.length()) { + if (userAnswer.charAt(i) == answer.charAt(i)) { + wrongGuess += userAnswer.charAt(i); + } else { + wrongGuess += "#"; + } + } + else{ + wrongGuess +="#"; + } + + } + System.out.println(wrongGuess); + } + } + } + + public static void main(String[] args) { + GuessTheWord(); + GuessGame(); + } +} From feca55b3fba243ea5659c66684c55c314c195111 Mon Sep 17 00:00:00 2001 From: mikhail Date: Mon, 23 Mar 2020 21:46:54 +0300 Subject: [PATCH 02/16] Lesson 4 Java GB 03_2020 Game XO --- src/META-INF/MANIFEST.MF | 3 + src/lesson3/homework/WordsGame.java | 84 ++++++++++++++++++ src/lesson4/GameXO.java | 130 ++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+) create mode 100644 src/META-INF/MANIFEST.MF create mode 100644 src/lesson3/homework/WordsGame.java create mode 100644 src/lesson4/GameXO.java diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..7009ed3 --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: lesson4.GameXO + diff --git a/src/lesson3/homework/WordsGame.java b/src/lesson3/homework/WordsGame.java new file mode 100644 index 0000000..62c7a23 --- /dev/null +++ b/src/lesson3/homework/WordsGame.java @@ -0,0 +1,84 @@ +package lesson3.homework; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Random; +import java.util.Scanner; + +public class WordsGame { + + private static String[] words = {"apple", "orange", "lemon", "banana", + "apricot", "avocado", "broccoli", "carrot", "cherry", "garlic", "grape", + "melon", "leak", "kiwi", "mango", "mushroom", "nut", + "olive", "pea", "peanut", "pear", "pepper", "pineapple", + "pumpkin", "potato"}; + private final Random rnd = new Random(); + + public void game() { + System.out.println("Вам предстоит угадать слово"); + System.out.println("Как вы думаете какое слово я загадал? " + + "Я буду открывать верные буквы!"); + String word = words[rnd.nextInt(words.length)]; + String random = word; + word = word + "#".repeat(15 - word.length()); + //System.out.println(random); + //System.out.println(word); + char [] sym = word.toCharArray(); + Arrays.fill(sym, '#'); + Scanner in = new Scanner(System.in); + boolean inGame = true; + while (inGame) { + System.out.println("Введите ваше предположение"); + String predict = in.next(); + if (predict.equals(random)) { + System.out.println("Вы угадали! Я загадал слово: " + predict); + return; + } + + for (int i = 0; i < word.length(); i++) { + if (i < predict.length() && predict.charAt(i) == word.charAt(i)) { + if (sym[i] == '#') { + sym[i] = word.charAt(i); + } + } + } + for(char ch : sym) System.out.print(ch); + System.out.println(); + } + } + + public static void main(String[] args) throws FileNotFoundException { + if (args != null && args.length == 1) { + if (args[0].equals("-h") || args[0].equals("-help")) { + System.out.println("use path to file or use list of param or don't use param"); + return; + } + File file = new File(args[0]); + if (file.exists()) { + Scanner in = new Scanner(file); + ArrayList list = new ArrayList<>(); + while (in.hasNext()) { + list.add(in.next()); + } + in.close(); + //System.out.println(list); + String [] tmp = new String[list.size()]; + for (int i = 0; i < list.size(); i++) { + tmp[i] = list.get(i); + } + words = tmp; + System.out.println(Arrays.toString(words)); + new WordsGame().game(); + } + } else { + if (args == null || args.length == 0) { + new WordsGame().game(); + } else { + words = args; + new WordsGame().game(); + } + } + } +} diff --git a/src/lesson4/GameXO.java b/src/lesson4/GameXO.java new file mode 100644 index 0000000..31405f3 --- /dev/null +++ b/src/lesson4/GameXO.java @@ -0,0 +1,130 @@ +package lesson4; + +import org.w3c.dom.ls.LSOutput; + +import java.util.Arrays; +import java.util.InputMismatchException; +import java.util.Scanner; + +public class GameXO { + + private final static char EMPTY = '_'; + private final static char DOT_X = 'X'; + private final static char DOT_O = 'O'; + //private static int fieldSize = 3; + //|_|_|_| + //|_|_|_| + //|_|_|_| + + private void printTab(char[][] tab) { + int counter = 1; + System.out.print(" "); + for (int i = 0; i < tab.length; i++) { + System.out.print((i + 1) + " "); + } + System.out.println(); + for (char[] chars : tab) { + System.out.print(counter + " "); + counter++; + for (char sym : chars) { + System.out.print("|" + sym); + } + System.out.println("|"); + } + } + + private void fillTab(char[][] tab) { + for (char[] chars : tab) { + Arrays.fill(chars, EMPTY); + } + } + + public void startGame(int fieldSize) { + // TODO: 23.03.2020 *** fieldSize > 3, 4(WIN) + char[][] tab = new char[fieldSize][fieldSize]; + fillTab(tab); + System.out.println("Игра крестики нолики. Вы играете за Х"); + printTab(tab); + System.out.println("Для того, чтобы совершить ход введите номер строки" + + "и номер столбца таблицы"); + boolean inGame = true; + Scanner in = new Scanner(System.in); + while (inGame) { + System.out.println("Ваш ход:"); + int x, y; + try { + x = in.nextInt(); + y = in.nextInt(); + x--; + y--; + if (isValid(x, y, tab)) { + tab[x][y] = DOT_X; + printTab(tab); + if (isVictory(tab, DOT_X)) { + System.out.println("Вы победили"); + break; + } + System.out.print("Компьютер совершает ход"); + for (int i = 0; i < 5; i++) { + Thread.sleep(300); + System.out.print("."); + } + System.out.println(); + movePC(tab); + if (isVictory(tab, DOT_O)) { + System.out.println("Вы проиграли"); + break; + } + // TODO: 23.03.2020 Ничья ??? + } else { + System.out.println("Данный ход невозможен! Введите новые значения"); + } + } catch (InputMismatchException exception) { + System.out.println("Вы ввели не цифры! Введите цифры"); + in.next(); + continue; + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + //..... game ..... + } + + private boolean isVictory(char [][] tab, char player /*X, O*/) { + // TODO: 23.03.2020 + return false; + } + + private void movePC(char[][] tab) { + // TODO: 23.03.2020 smart strategy + int len = tab.length; + for (int i = 0; i < len; i++) { + for (int j = 0; j < len; j++) { + if (tab[i][j] == EMPTY) { + tab[i][j] = DOT_O; + printTab(tab); + return; + } + } + } + } + + private boolean isValid(int x, int y, char[][] tab) { + int len = tab.length; + if (x >= 0 && x < len && y >= 0 && y < len) { + if (tab[x][y] == EMPTY) { + return true; + } + } + return false; + } + + public static void main(String[] args) { + if (args != null && args.length == 1) { + new GameXO().startGame(Integer.parseInt(args[0])); + } else { + new GameXO().startGame(3); + } + + } +} From 481fe107db4653d3208c7f23c90628951a65590d Mon Sep 17 00:00:00 2001 From: mikhail Date: Mon, 23 Mar 2020 21:51:24 +0300 Subject: [PATCH 03/16] Implemented Task1.java --- src/lesson4/Task1.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/lesson4/Task1.java diff --git a/src/lesson4/Task1.java b/src/lesson4/Task1.java new file mode 100644 index 0000000..becc434 --- /dev/null +++ b/src/lesson4/Task1.java @@ -0,0 +1,7 @@ +package lesson4; + +public class Task1 { + public static void main(String[] args) { + System.out.println("Hello world"); + } +} From be6d4613048eeac2c5e8cf47b95ef6ac923cad44 Mon Sep 17 00:00:00 2001 From: mikhail Date: Mon, 23 Mar 2020 21:53:23 +0300 Subject: [PATCH 04/16] Implemented Task1.java --- src/lesson3/Methods.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lesson3/Methods.java b/src/lesson3/Methods.java index bd5ee71..d88979e 100644 --- a/src/lesson3/Methods.java +++ b/src/lesson3/Methods.java @@ -36,9 +36,9 @@ static void func(String data) { static void func(int... args) { int sum = 0; for (int i = 0; i < args.length; i++) { - sum += args[i]; + sum += args[i] + 5; } - System.out.println(sum); + System.out.println(sum + 1); } static void func(Object... objects) { From 4693e4c69a9f9cfad8d8e30063fa0762bc007e77 Mon Sep 17 00:00:00 2001 From: mikhail Date: Mon, 23 Mar 2020 22:00:18 +0300 Subject: [PATCH 05/16] Implemented Task1.java --- src/lesson4/GameXO.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lesson4/GameXO.java b/src/lesson4/GameXO.java index 31405f3..0b4141f 100644 --- a/src/lesson4/GameXO.java +++ b/src/lesson4/GameXO.java @@ -45,7 +45,9 @@ public void startGame(int fieldSize) { fillTab(tab); System.out.println("Игра крестики нолики. Вы играете за Х"); printTab(tab); - System.out.println("Для того, чтобы совершить ход введите номер строки" + + System.out.println("Для того, чтобы совершить" + + "" + + " ход введите номер строки" + "и номер столбца таблицы"); boolean inGame = true; Scanner in = new Scanner(System.in); From bc4e40f87163231ab9178555651c9ce4f5337b19 Mon Sep 17 00:00:00 2001 From: FedorSur Date: Thu, 26 Mar 2020 15:44:07 +0300 Subject: [PATCH 06/16] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BD=D0=B5=D0=BC=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D1=83=D0=B4=D1=80=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=81=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=BE=D0=B9?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=B1=D0=B5=D0=B4=D1=83=20=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=B2=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=20=D1=83=D0=BD=D0=B8=D0=B2=D0=B5=D1=80=D1=81=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson4/GameXO.java | 218 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 211 insertions(+), 7 deletions(-) diff --git a/src/lesson4/GameXO.java b/src/lesson4/GameXO.java index 0b4141f..569c6c3 100644 --- a/src/lesson4/GameXO.java +++ b/src/lesson4/GameXO.java @@ -39,6 +39,18 @@ private void fillTab(char[][] tab) { } } + private boolean IsDraw(char[][] tab) { + boolean draw = true; + for (int l = 0; l < tab.length; l++) { + for (int j = 0; j < tab.length; j++) { + if (tab[l][j] == EMPTY) + draw = false; + } + } + return draw; + + } + public void startGame(int fieldSize) { // TODO: 23.03.2020 *** fieldSize > 3, 4(WIN) char[][] tab = new char[fieldSize][fieldSize]; @@ -78,6 +90,11 @@ public void startGame(int fieldSize) { break; } // TODO: 23.03.2020 Ничья ??? + if (IsDraw(tab)) { + System.out.println("Ничья"); + break; + } + } else { System.out.println("Данный ход невозможен! Введите новые значения"); } @@ -92,23 +109,210 @@ public void startGame(int fieldSize) { //..... game ..... } - private boolean isVictory(char [][] tab, char player /*X, O*/) { + private boolean isVictory(char[][] tab, char player /*X, O*/) { // TODO: 23.03.2020 + int winningLength = tab.length - 1; + if (winningLength > 4) + winningLength = 4; + for (int x = 0; x < tab[0].length; x++) + for (int y = 0; y < tab.length; y++) + if (tab[y][x] == player) { + int winStreak; + for (int i = 1; i <= winningLength; i++) { + if (x - winningLength < 0 || x + winningLength >= tab.length) + break; + if (player != tab[y][x + i]) + break; + if (i == winningLength) + return true; + } + for (int i = 1; i <= winningLength; i++) { + if (x - winningLength < 0 || x - winningLength >= tab.length) + break; + if (player != tab[y][x - i]) + break; + if (i == winningLength) + return true; + } + + for (int i = 1; i <= winningLength; i++) { + if (y - winningLength < 0 || y - winningLength >= tab.length) + break; + if (player != tab[y - i][x]) + break; + if (i == winningLength) + return true; + } + for (int i = 0; i <= winningLength; i++) { + if (y + winningLength < 0 || y + winningLength >= tab.length) + break; + if (player != tab[y + i][x]) + break; + if (i == winningLength) + return true; + } + + for (int i = 1; i <= winningLength; i++) { + if (y + winningLength < 0 || y + winningLength >= tab.length || x + winningLength < 0 || x + winningLength >= tab.length) + break; + if (player != tab[y + i][x + i]) + break; + if (i == winningLength) + return true; + } + for (int i = 1; i <= winningLength; i++) { + if (y - winningLength < 0 || y - i >= tab.length || x + i < 0 || x + i >= tab.length) + break; + if (player != tab[y - i][x + i]) + break; + if (i == winningLength) + return true; + } + for (int i = 1; i <= winningLength; i++) { + if (y + winningLength < 0 || y + winningLength >= tab.length || x - winningLength < 0 || x - winningLength >= tab.length) + break; + if (player != tab[y + i][x - i]) + break; + if (i == winningLength) + return true; + } + for (int i = 1; i <= winningLength; i++) { + if (y - winningLength < 0 || y - winningLength >= tab.length || x - winningLength < 0 || x - winningLength >= tab.length) + break; + if (player != tab[y - i][x - i]) + break; + if (i == winningLength) + return true; + } + } return false; } + private int[] Danger(char[][] tab, char player /*X, O*/) { + // TODO: 23.03.2020 + int winningLength = tab.length - 1; + if (winningLength > 4) + winningLength = 4; + int[] arr = {-1, -1}; + for (int x = 0; x < tab[0].length; x++) + for (int y = 0; y < tab.length; y++) + if (tab[y][x] == player) { + int winStreak; + for (int i = 1; i <= winningLength - 1; i++) { + if (x - winningLength < 0 || x + winningLength >= tab.length) + break; + if (player != tab[y][x + i]) + break; + if (i == winningLength - 1) { + arr[0] = y; + arr[1] = x + winningLength; + return arr; + } + } + for (int i = 1; i <= winningLength - 1; i++) { + if (x - winningLength < 0 || x - winningLength >= tab.length) + break; + if (player != tab[y][x - i]) + break; + if (i == winningLength - 1) { + arr[0] = y; + arr[1] = x - winningLength; + return arr; + } + } + + for (int i = 1; i <= winningLength-1; i++) { + if (y - winningLength < 0 || y - winningLength >= tab.length) + break; + if (player != tab[y - i][x]) + break; + if (i == winningLength-1) { + arr[0] = y - winningLength; + arr[1] = x; + return arr; + } + } + for (int i = 0; i <= winningLength-1; i++) { + if (y + winningLength < 0 || y + winningLength >= tab.length) + break; + if (player != tab[y + i][x]) + break; + if (i == winningLength-1) { + arr[0] = y + winningLength; + arr[1] = x; + return arr; + } + } + + for (int i = 1; i <= winningLength-1; i++) { + if (y + winningLength < 0 || y + winningLength >= tab.length || x + winningLength < 0 || x + winningLength >= tab.length) + break; + if (player != tab[y + i][x + i]) + break; + if (i == winningLength-1) { + arr[0] = y + winningLength; + arr[1] = x + winningLength; + return arr; + } + } + for (int i = 1; i <= winningLength-1; i++) { + if (y - winningLength < 0 || y - i >= tab.length || x + i < 0 || x + i >= tab.length) + break; + if (player != tab[y - i][x + i]) + break; + if (i == winningLength-1) { + arr[0] = y - winningLength; + arr[1] = x + winningLength; + return arr; + } + } + for (int i = 1; i <= winningLength-1; i++) { + if (y + winningLength < 0 || y + winningLength >= tab.length || x - winningLength < 0 || x - winningLength >= tab.length) + break; + if (player != tab[y + i][x - i]) + break; + if (i == winningLength-1) { + arr[0] = y + winningLength; + arr[1] = x - winningLength; + return arr; + } + } + for (int i = 1; i <= winningLength-1; i++) { + if (y - winningLength < 0 || y - winningLength >= tab.length || x - winningLength < 0 || x - winningLength >= tab.length) + break; + if (player != tab[y - i][x - i]) + break; + if (i == winningLength-1) { + arr[0] = y - winningLength; + arr[1] = x - winningLength; + return arr; + } + } + } + return arr; + } + private void movePC(char[][] tab) { // TODO: 23.03.2020 smart strategy int len = tab.length; - for (int i = 0; i < len; i++) { - for (int j = 0; j < len; j++) { - if (tab[i][j] == EMPTY) { - tab[i][j] = DOT_O; - printTab(tab); - return; + int[] dan = Danger(tab,DOT_X); + int[] arr = {-1,-1}; + if(dan[0]==arr[0]&&dan[1]==arr[1]|| tab[dan[0]][dan[1]] == DOT_O ) { + for (int i = 0; i < len; i++) { + for (int j = 0; j < len; j++) { + if (tab[i][j] == EMPTY) { + tab[i][j] = DOT_O; + printTab(tab); + return; + } } } } + else{ + tab[dan[0]][dan[1]] = DOT_O; + printTab(tab); + return; + } } private boolean isValid(int x, int y, char[][] tab) { From 07ab608f05fc858246ca9aa1ca8f2a80aedafa3b Mon Sep 17 00:00:00 2001 From: levinMK23 Date: Thu, 26 Mar 2020 22:12:22 +0300 Subject: [PATCH 07/16] Lesson 5 --- src/lesson5/animals/Cat.java | 36 ++++++++++++++++++++ src/lesson5/animals/CatColor.java | 9 +++++ src/lesson5/animals/Test.java | 10 ++++++ src/lesson5/geometry/Main.java | 13 +++++++ src/lesson5/geometry/Point.java | 19 +++++++++++ src/lesson5/geometry/Vector.java | 36 ++++++++++++++++++++ src/lesson5/persons/Group.java | 56 +++++++++++++++++++++++++++++++ src/lesson5/persons/Student.java | 38 +++++++++++++++++++++ src/lesson5/persons/Teacher.java | 46 +++++++++++++++++++++++++ src/lesson5/persons/Test.java | 28 ++++++++++++++++ 10 files changed, 291 insertions(+) create mode 100644 src/lesson5/animals/Cat.java create mode 100644 src/lesson5/animals/CatColor.java create mode 100644 src/lesson5/animals/Test.java create mode 100644 src/lesson5/geometry/Main.java create mode 100644 src/lesson5/geometry/Point.java create mode 100644 src/lesson5/geometry/Vector.java create mode 100644 src/lesson5/persons/Group.java create mode 100644 src/lesson5/persons/Student.java create mode 100644 src/lesson5/persons/Teacher.java create mode 100644 src/lesson5/persons/Test.java diff --git a/src/lesson5/animals/Cat.java b/src/lesson5/animals/Cat.java new file mode 100644 index 0000000..667a375 --- /dev/null +++ b/src/lesson5/animals/Cat.java @@ -0,0 +1,36 @@ +package lesson5.animals; + +import java.util.Random; + +public class Cat { + + public static final String SPEACH = "MEOW"; + private static Random rnd = new Random(); + private String name; + private CatColor color; + private int age; + + public Cat(String name) { + age = 0; + this.name = name; + color = CatColor.values()[rnd.nextInt(CatColor.values().length)]; + } + + // Method + public void run() { + System.out.println("I'm is running"); + } + + public void say() { + System.out.println(SPEACH); + } + + @Override + public String toString() { + return "Cat{" + + "name='" + name + '\'' + + ", color=" + color + + ", age=" + age + + '}'; + } +} diff --git a/src/lesson5/animals/CatColor.java b/src/lesson5/animals/CatColor.java new file mode 100644 index 0000000..2219deb --- /dev/null +++ b/src/lesson5/animals/CatColor.java @@ -0,0 +1,9 @@ +package lesson5.animals; + +public enum CatColor { + WHITE, + BLACK, + GRAY, + BROUN, + PINK +} diff --git a/src/lesson5/animals/Test.java b/src/lesson5/animals/Test.java new file mode 100644 index 0000000..d19b04e --- /dev/null +++ b/src/lesson5/animals/Test.java @@ -0,0 +1,10 @@ +package lesson5.animals; + +public class Test { + public static void main(String[] args) { + Cat cat = new Cat("Vaska"); + cat.run(); + cat.say(); + System.out.println(cat); + } +} diff --git a/src/lesson5/geometry/Main.java b/src/lesson5/geometry/Main.java new file mode 100644 index 0000000..5d15675 --- /dev/null +++ b/src/lesson5/geometry/Main.java @@ -0,0 +1,13 @@ +package lesson5.geometry; + +public class Main { + + + public static void main(String[] args) { + System.out.println(new Vector(new Point(1, 1), new Point(3, 5))); + for (int i = 0; i < 5; i++) { + System.out.println(new Vector()); + } + System.out.println(Vector.vectorCounter); + } +} diff --git a/src/lesson5/geometry/Point.java b/src/lesson5/geometry/Point.java new file mode 100644 index 0000000..e3d8e80 --- /dev/null +++ b/src/lesson5/geometry/Point.java @@ -0,0 +1,19 @@ +package lesson5.geometry; + +// SOLID +// single response +public class Point { + + double x, y; + + Point(int x, int y) { + // x - переменная функции + this.x = x; + this.y = y; + } + + @Override + public String toString() { + return String.format("(%f; %f)", x, y); + } +} diff --git a/src/lesson5/geometry/Vector.java b/src/lesson5/geometry/Vector.java new file mode 100644 index 0000000..f83ec2f --- /dev/null +++ b/src/lesson5/geometry/Vector.java @@ -0,0 +1,36 @@ +package lesson5.geometry; + +public class Vector { + + static int vectorCounter = 0; + Point a, b; // Fields (Свойства, поля) + double x, y; + int id; + // классовые перемнные + + // constructor + Vector(Point x, Point y) { + a = x; b = y; + vectorCounter++; + id = vectorCounter; + this.x = y.x - x.x; + this.y = y.y - x.y; + } + + Vector() { + vectorCounter++; + id = vectorCounter; + } + + Vector add(Vector other) { + return null; + } + + @Override + public String toString() { + return "v" + id + "{" + + "a=" + a + + ", b=" + b + + '}'; + } +} diff --git a/src/lesson5/persons/Group.java b/src/lesson5/persons/Group.java new file mode 100644 index 0000000..a6495b2 --- /dev/null +++ b/src/lesson5/persons/Group.java @@ -0,0 +1,56 @@ +package lesson5.persons; + +import java.util.ArrayList; + +public class Group { + + private static int counter = 0; + private int id; + + @Override + public String toString() { + return "Group{" + + "id=" + id + + '}'; + } + + public Group() { + counter++; + id = counter; + students = new ArrayList<>(); + teachers = new ArrayList<>(); + } + + public void addStudent(Student student) { + students.add(student); + student.setGroup(this); + } + + public void addTeacher(Teacher teacher) { + teachers.add(teacher); + // TODO: 3/26/2020 set group on teacher + if (!teacher.getGroups().contains(this)) { + teacher.selectGroup(this); + } + } + + public Group(ArrayList students, ArrayList teachers) { + this.students = students; + this.teachers = teachers; + } + + public Group(ArrayList students) { + this.students = students; + } + + private ArrayList students; + private ArrayList teachers; + + public ArrayList getStudents() { + return students; + } + + public ArrayList getTeachers() { + return teachers; + } +} diff --git a/src/lesson5/persons/Student.java b/src/lesson5/persons/Student.java new file mode 100644 index 0000000..ede701d --- /dev/null +++ b/src/lesson5/persons/Student.java @@ -0,0 +1,38 @@ +package lesson5.persons; + +import java.util.ArrayList; + +public class Student { + + class Type { + int state; + } + + private String fio; + private Group group; + + public Student(String fio) { + this.fio = fio; + } + + public void showListOfMates() { + ArrayList mates = new ArrayList<>(group.getStudents()); + mates.remove(this); + System.out.println(mates); + } + + @Override + public String toString() { + return "Student{" + + "fio='" + fio + '\'' + + '}'; + } + + public void showListOfTeachers() { + System.out.println(group.getTeachers()); + } + + public void setGroup(Group group) { + this.group = group; + } +} diff --git a/src/lesson5/persons/Teacher.java b/src/lesson5/persons/Teacher.java new file mode 100644 index 0000000..d85817a --- /dev/null +++ b/src/lesson5/persons/Teacher.java @@ -0,0 +1,46 @@ +package lesson5.persons; + +import java.util.ArrayList; + +public class Teacher { + + private String fio; + private ArrayList groups; + + public Teacher(String fio) { + this.fio = fio; + groups = new ArrayList<>(); + } + + public void showGroupList() { + System.out.println(groups); + } + + public void showStudentListByGroup(Group group) { + if (groups.contains(group)) { + int groupPosition = groups.indexOf(group); + // a[pos] + System.out.println(group + " " + groups.get(groupPosition).getStudents()); + } + } + + @Override + public String toString() { + return "Teacher{" + + "fio='" + fio + '\'' + + '}'; + } + + public ArrayList getGroups() { + return groups; + } + + public void selectGroup(Group group) { + groups.add(group); + // TODO: 3/26/2020 add teacher to group + if (!group.getTeachers().contains(this)) { + group.addTeacher(this); + } + } + +} diff --git a/src/lesson5/persons/Test.java b/src/lesson5/persons/Test.java new file mode 100644 index 0000000..88ae371 --- /dev/null +++ b/src/lesson5/persons/Test.java @@ -0,0 +1,28 @@ +package lesson5.persons; + +public class Test { + public static void main(String[] args) { + Group g1 = new Group(); + Group g2 = new Group(); + Teacher t1 = new Teacher("Oleg Ivanovich"); + Teacher t2 = new Teacher("Aleksei Anatolievich"); + Student s1 = new Student("S1"); + Student s2 = new Student("S2"); + Student s3 = new Student("S3"); + Student s4 = new Student("S4"); + g1.addTeacher(t1); + g1.addTeacher(t2); + g1.addStudent(s1); + g1.addStudent(s2); + g2.addStudent(s3); + g2.addStudent(s4); + t1.selectGroup(g2); + t1.showGroupList(); + t1.showStudentListByGroup(g1); + t1.showStudentListByGroup(g2); + s2.showListOfMates(); + s2.showListOfTeachers(); + s4.showListOfMates(); + s4.showListOfTeachers(); + } +} From a2630bcfb0c50aa4c1f0877c203a6245ddc3af69 Mon Sep 17 00:00:00 2001 From: levinMK23 Date: Thu, 26 Mar 2020 23:38:02 +0300 Subject: [PATCH 08/16] Lesson 5 --- src/lesson5/hometask/Cat.java | 61 ++++++++++++++++++++++++++++ src/lesson5/hometask/Population.java | 54 ++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 src/lesson5/hometask/Cat.java create mode 100644 src/lesson5/hometask/Population.java diff --git a/src/lesson5/hometask/Cat.java b/src/lesson5/hometask/Cat.java new file mode 100644 index 0000000..33d3143 --- /dev/null +++ b/src/lesson5/hometask/Cat.java @@ -0,0 +1,61 @@ +package lesson5.hometask; + +import java.util.ArrayList; + +public class Cat { + + enum Sex { + MAN, + WOMAN + } + + private String name; + private Sex sex; + // for Adam and Eva mother = null, father = null + private Cat mother, father; + private ArrayList children; + + public String getName() { + return name; + } + + public Cat getMother() { + return mother; + } + + public Cat getFather() { + return father; + } + + public Sex getSex() { + return sex; + } + + public Cat(String name, Sex sex) { + this.name = name; + this.sex = sex; + children = new ArrayList<>(); + } + + public Cat(Sex sex) { + this.sex = sex; + children = new ArrayList<>(); + } + + public ArrayList getChildren() { + return children; + } + + public void makeChild(Cat otherCat) { + // TODO: 3/26/2020 + /* No man-man, woman-woman + * */ + // if man trying make child with man kill him ))) + } + + @Override + public String toString() { + // TODO: 3/26/2020 + return "Cat{}"; + } +} diff --git a/src/lesson5/hometask/Population.java b/src/lesson5/hometask/Population.java new file mode 100644 index 0000000..61525e2 --- /dev/null +++ b/src/lesson5/hometask/Population.java @@ -0,0 +1,54 @@ +package lesson5.hometask; + +public class Population { + + private Cat adam = new Cat("Adam", Cat.Sex.MAN); + private Cat eva = new Cat("Eva", Cat.Sex.WOMAN); + + public Population() { + for (int i = 0; i < 10; i++) { + adam.makeChild(eva); + } + for (Cat cat : adam.getChildren()) { + for (Cat cat1 : adam.getChildren()) { + if (!cat.getSex().equals(cat1.getSex())) { + deepPopulationIncrease(cat1, cat, 5); + } + } + } + } + + public void deepPopulationIncrease(Cat cat1, Cat cat2, int depth) { + if (depth <= 0) { + return; + } + if (!cat1.getSex().equals(cat2.getSex())) { + cat1.makeChild(cat2); + cat1.makeChild(cat2); + Cat firstChild = cat1.getChildren().get(0); + Cat secondChild = cat1.getChildren().get(1); + deepPopulationIncrease(firstChild, secondChild, depth - 1); + } + } + + public void printPopulationTree() { + // TODO: 3/26/2020 +// Adam : { +// children : { +// Cat1 : { +// children : { +// Cat3, +// Cat4, +// Cat5 +// } +// }, +// Cat6 : { +// children : { +// Cat7, +// Cat8 +// } +// } +// } +// } + } +} From be1ac7ebb7619aa5b1233444d73efda7040db611 Mon Sep 17 00:00:00 2001 From: FedorSur Date: Mon, 30 Mar 2020 15:14:03 +0300 Subject: [PATCH 09/16] homework5 done --- src/lesson5/homework/Test.java | 17 ++++++++++++++++ src/lesson5/homework/Worker.java | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/lesson5/homework/Test.java create mode 100644 src/lesson5/homework/Worker.java diff --git a/src/lesson5/homework/Test.java b/src/lesson5/homework/Test.java new file mode 100644 index 0000000..358243c --- /dev/null +++ b/src/lesson5/homework/Test.java @@ -0,0 +1,17 @@ +package lesson5.homework; + +public class Test { + public static void main(String[] args) { + Worker[] w = new Worker[5]; + w[0] = new Worker("Ivanov Ivan", "Engineer", "ivivan@mailbox.com", "892312312", 30000, 30); + w[1] = new Worker("Ivahov Ivan", "Engineer", "ivhvan@mailbox.com", "892312312", 10000, 10); + w[2] = new Worker("Ivapov Ivan", "Engineer", "ivpvan@mailbox.com", "892312312", 50000, 20); + w[3] = new Worker("Ivamov Ivan", "Engineer", "ivmvan@mailbox.com", "892312312", 20000, 70); + w[4] = new Worker("Ivabov Ivan", "Engineer", "ivbvan@mailbox.com", "892312312", 80000, 60); + for (int i = 0; i < 5; i++) { + if(w[i].age>40){ + w[i].Info(); + } + } + } +} diff --git a/src/lesson5/homework/Worker.java b/src/lesson5/homework/Worker.java new file mode 100644 index 0000000..73d2f7e --- /dev/null +++ b/src/lesson5/homework/Worker.java @@ -0,0 +1,33 @@ +package lesson5.homework; + +import lesson5.persons.Group; + +import java.util.ArrayList; + +public class Worker { +//ФИО, должность, email, телефон, зарплата, возраст; + String fio; + String position; + String email; + String phone; + int paycheck; + int age; + + public Worker(String fio, String position, String email,String phone, int paycheck, int age) { + this.fio = fio; + this.position = position; + this.email = email; + this.phone = phone; + this.paycheck = paycheck; + this.age = age; + } + public void Info(){ + System.out.println("ФИО сотрудника - " + fio); + System.out.println("Должность сотрудника - " + position); + System.out.println("Email- " + email); + System.out.println("Tелефон - " + phone); + System.out.println("Зарплата - " + paycheck); + System.out.println("Возраст - "+ age); + } + +} From 5a0901dd23bb4e31416eecbb5bc2059faf8e4e3f Mon Sep 17 00:00:00 2001 From: levinMK23 Date: Mon, 30 Mar 2020 23:06:03 +0300 Subject: [PATCH 10/16] Lesson 6 --- .idea/misc.xml | 3 +- .idea/vcs.xml | 6 ++ src/lesson5/hometask/AbstractValue.java | 18 ++++++ src/lesson5/hometask/RefValue.java | 18 ++++++ src/lesson5/hometask/TextValue.java | 13 ++++ src/lesson5/hometask/Value.java | 5 ++ src/lesson5/hometask/Wrapper.java | 15 +++++ src/lesson6/animals/Animal.java | 61 +++++++++++++++++++ src/lesson6/animals/Bengal.java | 15 +++++ src/lesson6/animals/Bird.java | 14 +++++ src/lesson6/animals/Cat.java | 15 +++++ src/lesson6/animals/Dog.java | 14 +++++ src/lesson6/animals/Main.java | 17 ++++++ src/lesson6/ext/A.java | 18 ++++++ src/lesson6/ext/B.java | 20 ++++++ src/lesson6/ext/C.java | 20 ++++++ src/lesson6/ext/Test.java | 17 ++++++ src/lesson6/interfaces/ConsoleLogger.java | 9 +++ src/lesson6/interfaces/FileLogger.java | 55 +++++++++++++++++ src/lesson6/interfaces/Logger.java | 5 ++ src/lesson6/interfaces/Main.java | 8 +++ src/lesson6/interfaces/ReadWriter.java | 23 +++++++ src/lesson6/interfaces/Reader.java | 5 ++ src/lesson6/interfaces/Writer.java | 5 ++ src/lesson6/values/AbstractParameter.java | 14 +++++ src/lesson6/values/Main.java | 46 ++++++++++++++ src/lesson6/values/MultipleTextParameter.java | 10 +++ src/lesson6/values/SingleTextParameter.java | 9 +++ 28 files changed, 476 insertions(+), 2 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 src/lesson5/hometask/AbstractValue.java create mode 100644 src/lesson5/hometask/RefValue.java create mode 100644 src/lesson5/hometask/TextValue.java create mode 100644 src/lesson5/hometask/Value.java create mode 100644 src/lesson5/hometask/Wrapper.java create mode 100644 src/lesson6/animals/Animal.java create mode 100644 src/lesson6/animals/Bengal.java create mode 100644 src/lesson6/animals/Bird.java create mode 100644 src/lesson6/animals/Cat.java create mode 100644 src/lesson6/animals/Dog.java create mode 100644 src/lesson6/animals/Main.java create mode 100644 src/lesson6/ext/A.java create mode 100644 src/lesson6/ext/B.java create mode 100644 src/lesson6/ext/C.java create mode 100644 src/lesson6/ext/Test.java create mode 100644 src/lesson6/interfaces/ConsoleLogger.java create mode 100644 src/lesson6/interfaces/FileLogger.java create mode 100644 src/lesson6/interfaces/Logger.java create mode 100644 src/lesson6/interfaces/Main.java create mode 100644 src/lesson6/interfaces/ReadWriter.java create mode 100644 src/lesson6/interfaces/Reader.java create mode 100644 src/lesson6/interfaces/Writer.java create mode 100644 src/lesson6/values/AbstractParameter.java create mode 100644 src/lesson6/values/Main.java create mode 100644 src/lesson6/values/MultipleTextParameter.java create mode 100644 src/lesson6/values/SingleTextParameter.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 049adb9..e0844bc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,6 @@ - + \ 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/lesson5/hometask/AbstractValue.java b/src/lesson5/hometask/AbstractValue.java new file mode 100644 index 0000000..88394a6 --- /dev/null +++ b/src/lesson5/hometask/AbstractValue.java @@ -0,0 +1,18 @@ +package lesson5.hometask; + +public class AbstractValue { + + T value; + + public AbstractValue(T value) { + this.value = value; + } + + public T getValue() { + return value; + } + + public void setValue(T value) { + this.value = value; + } +} diff --git a/src/lesson5/hometask/RefValue.java b/src/lesson5/hometask/RefValue.java new file mode 100644 index 0000000..436790f --- /dev/null +++ b/src/lesson5/hometask/RefValue.java @@ -0,0 +1,18 @@ +package lesson5.hometask; + +import java.math.BigInteger; +import java.util.List; + +public class RefValue extends Value { + + List value; + + public RefValue(List value) { + this.value = value; + } + + @Override + List getValue() { + return value; + } +} diff --git a/src/lesson5/hometask/TextValue.java b/src/lesson5/hometask/TextValue.java new file mode 100644 index 0000000..0a90375 --- /dev/null +++ b/src/lesson5/hometask/TextValue.java @@ -0,0 +1,13 @@ +package lesson5.hometask; + +public class TextValue extends Value{ + String value; + + public TextValue(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/src/lesson5/hometask/Value.java b/src/lesson5/hometask/Value.java new file mode 100644 index 0000000..cb6f271 --- /dev/null +++ b/src/lesson5/hometask/Value.java @@ -0,0 +1,5 @@ +package lesson5.hometask; + +public abstract class Value { + abstract Object getValue(); +} diff --git a/src/lesson5/hometask/Wrapper.java b/src/lesson5/hometask/Wrapper.java new file mode 100644 index 0000000..c887c51 --- /dev/null +++ b/src/lesson5/hometask/Wrapper.java @@ -0,0 +1,15 @@ +package lesson5.hometask; + +import java.math.BigInteger; +import java.util.Collections; + +public class Wrapper { + static T getValue(T object) { + return (T) object; + } + + public static void main(String[] args) { + AbstractValue txt = new AbstractValue<>(new TextValue("123")); + System.out.println(txt.getValue().getValue()); + } +} diff --git a/src/lesson6/animals/Animal.java b/src/lesson6/animals/Animal.java new file mode 100644 index 0000000..e511344 --- /dev/null +++ b/src/lesson6/animals/Animal.java @@ -0,0 +1,61 @@ +package lesson6.animals; + +public abstract class Animal { + + private String color; + private String name; + private int age, stamina; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public int getStamina() { + return stamina; + } + + public void setStamina(int stamina) { + this.stamina = stamina; + } + + public void setColor(String color) { + this.color = color; + } + + public String getColor() { + return color; + } + + public Animal(String name) { + // this -> Cat + this.name = name; + age = 0; + stamina = 100; + } + + public void eat() { + stamina += 20; + } + + public void sleep() { + stamina = 100; + } + + public abstract void say(); + + public void jump() { + stamina--; + } +} diff --git a/src/lesson6/animals/Bengal.java b/src/lesson6/animals/Bengal.java new file mode 100644 index 0000000..09b06cc --- /dev/null +++ b/src/lesson6/animals/Bengal.java @@ -0,0 +1,15 @@ +package lesson6.animals; + +public class Bengal extends Cat { + + public Bengal(String name) { + super(name); + //cat this = bengal this + setColor("Orange"); + } + + @Override + public void eat() { + setStamina(getStamina() + 10); + } +} diff --git a/src/lesson6/animals/Bird.java b/src/lesson6/animals/Bird.java new file mode 100644 index 0000000..5f4344b --- /dev/null +++ b/src/lesson6/animals/Bird.java @@ -0,0 +1,14 @@ +package lesson6.animals; + +public class Bird extends Animal { + + public Bird(String name) { + super(name); + } + + @Override + public void say() { + System.out.println("CHIK CHIRIK"); + } + +} diff --git a/src/lesson6/animals/Cat.java b/src/lesson6/animals/Cat.java new file mode 100644 index 0000000..75e0a04 --- /dev/null +++ b/src/lesson6/animals/Cat.java @@ -0,0 +1,15 @@ +package lesson6.animals; + +public class Cat extends Animal { + + public Cat(String name) { + super(name); + // this -> Bengal + } + + //ctrl + O + @Override + public void say() { + System.out.println("MEOW"); + } +} diff --git a/src/lesson6/animals/Dog.java b/src/lesson6/animals/Dog.java new file mode 100644 index 0000000..880bcb0 --- /dev/null +++ b/src/lesson6/animals/Dog.java @@ -0,0 +1,14 @@ +package lesson6.animals; + +public class Dog extends Animal { + + public Dog(String name) { + super(name); + } + + @Override + public void say() { + System.out.println("WOW"); + } + +} diff --git a/src/lesson6/animals/Main.java b/src/lesson6/animals/Main.java new file mode 100644 index 0000000..e0f6563 --- /dev/null +++ b/src/lesson6/animals/Main.java @@ -0,0 +1,17 @@ +package lesson6.animals; + +import lesson6.ext.A; +import lesson6.ext.C; + +public class Main { + public static void main(String[] args) { + Cat cat = new Cat("Name"); + Animal cat1 = new Cat("Name1"); + Animal bengal = new Bengal("Sfinx"); + System.out.println(cat.getColor()); + System.out.println(bengal.getColor()); + A a = new C(1,2,3); + // cat.getName() = "3"; + // Cat cat2 = new Animal("Oleg"); + } +} diff --git a/src/lesson6/ext/A.java b/src/lesson6/ext/A.java new file mode 100644 index 0000000..980373b --- /dev/null +++ b/src/lesson6/ext/A.java @@ -0,0 +1,18 @@ +package lesson6.ext; + +public class A { + + int a; + + public A(int a) { + this.a = a; + System.out.println("A " + this); + } + + @Override + public String toString() { + return "A{" + + "a=" + a + + '}'; + } +} diff --git a/src/lesson6/ext/B.java b/src/lesson6/ext/B.java new file mode 100644 index 0000000..11b53c2 --- /dev/null +++ b/src/lesson6/ext/B.java @@ -0,0 +1,20 @@ +package lesson6.ext; + +public class B extends A { + + int b; + + public B(int a, int b) { + super(a); + this.b = b; + System.out.println("B" + this); + } + + @Override + public String toString() { + return "B{" + + "b=" + b + + ", a=" + a + + '}'; + } +} diff --git a/src/lesson6/ext/C.java b/src/lesson6/ext/C.java new file mode 100644 index 0000000..a17951e --- /dev/null +++ b/src/lesson6/ext/C.java @@ -0,0 +1,20 @@ +package lesson6.ext; + +public class C extends B { + + int c; + public C(int a, int b, int c) { + super(a, b); + this.c = c; + System.out.println("C" + this); + } + + @Override + public String toString() { + return "C{" + + "c=" + c + + ", b=" + b + + ", a=" + a + + '}'; + } +} diff --git a/src/lesson6/ext/Test.java b/src/lesson6/ext/Test.java new file mode 100644 index 0000000..01a1480 --- /dev/null +++ b/src/lesson6/ext/Test.java @@ -0,0 +1,17 @@ +package lesson6.ext; + +public class Test { + public static void main(String[] args) { + A a = new C(1,2,3); + Class c = a.getClass(); + while (true) { + System.out.println(c.getSimpleName()); + if (c.equals(Object.class)) { + System.out.println(c.getSuperclass()); + break; + } + c = c.getSuperclass(); + } + System.out.println(a); + } +} diff --git a/src/lesson6/interfaces/ConsoleLogger.java b/src/lesson6/interfaces/ConsoleLogger.java new file mode 100644 index 0000000..a02ba5b --- /dev/null +++ b/src/lesson6/interfaces/ConsoleLogger.java @@ -0,0 +1,9 @@ +package lesson6.interfaces; + +public class ConsoleLogger implements Logger { + + @Override + public void log(String tag, String message) { + System.out.println(tag + ": " + message); + } +} diff --git a/src/lesson6/interfaces/FileLogger.java b/src/lesson6/interfaces/FileLogger.java new file mode 100644 index 0000000..740fd69 --- /dev/null +++ b/src/lesson6/interfaces/FileLogger.java @@ -0,0 +1,55 @@ +package lesson6.interfaces; + +import java.io.*; + +public class FileLogger implements Logger { + + private String path; + private File out; + private PrintWriter printer; + + public FileLogger() { + path = "log.txt"; + out = new File(path); + if (!out.exists()) { + try { + out.createNewFile(); + printer = new PrintWriter(new FileOutputStream(out, true)); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + try { + printer = new PrintWriter(new FileOutputStream(out, true)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + } + + public FileLogger(String path) { + this.path = path; + out = new File(path); + if (!out.exists()) { + try { + out.createNewFile(); + printer = new PrintWriter(new FileOutputStream(out, true)); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + try { + printer = new PrintWriter(new FileOutputStream(out, true)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + } + + @Override + public void log(String tag, String message) { + printer.println(tag + ": " + message); + printer.flush(); + } +} diff --git a/src/lesson6/interfaces/Logger.java b/src/lesson6/interfaces/Logger.java new file mode 100644 index 0000000..38838ed --- /dev/null +++ b/src/lesson6/interfaces/Logger.java @@ -0,0 +1,5 @@ +package lesson6.interfaces; + +public interface Logger { + void log(String tag, String message); +} diff --git a/src/lesson6/interfaces/Main.java b/src/lesson6/interfaces/Main.java new file mode 100644 index 0000000..324efaf --- /dev/null +++ b/src/lesson6/interfaces/Main.java @@ -0,0 +1,8 @@ +package lesson6.interfaces; + +public class Main { + public static void main(String[] args) { + Logger log = new FileLogger(); + log.log("test", "message1"); + } +} diff --git a/src/lesson6/interfaces/ReadWriter.java b/src/lesson6/interfaces/ReadWriter.java new file mode 100644 index 0000000..733fb89 --- /dev/null +++ b/src/lesson6/interfaces/ReadWriter.java @@ -0,0 +1,23 @@ +package lesson6.interfaces; + +// SoLid +// Liskov substitution FAIL +// Single response +// Bad example +public class ReadWriter implements Reader, Writer { + + @Override + public int read() { + return 0; + } + + @Override + public void write(int value) { + + } + + public static void main(String[] args) { + Writer writer = new ReadWriter(); + Reader reader = new ReadWriter(); + } +} diff --git a/src/lesson6/interfaces/Reader.java b/src/lesson6/interfaces/Reader.java new file mode 100644 index 0000000..13faf77 --- /dev/null +++ b/src/lesson6/interfaces/Reader.java @@ -0,0 +1,5 @@ +package lesson6.interfaces; + +public interface Reader { + int read(); +} diff --git a/src/lesson6/interfaces/Writer.java b/src/lesson6/interfaces/Writer.java new file mode 100644 index 0000000..78ba99a --- /dev/null +++ b/src/lesson6/interfaces/Writer.java @@ -0,0 +1,5 @@ +package lesson6.interfaces; + +public interface Writer { + void write(int value); +} diff --git a/src/lesson6/values/AbstractParameter.java b/src/lesson6/values/AbstractParameter.java new file mode 100644 index 0000000..3f0ed9f --- /dev/null +++ b/src/lesson6/values/AbstractParameter.java @@ -0,0 +1,14 @@ +package lesson6.values; + +public class AbstractParameter { + + private T value; + + public T getValue() { + return value; + } + + public void setValue(T value) { + this.value = value; + } +} diff --git a/src/lesson6/values/Main.java b/src/lesson6/values/Main.java new file mode 100644 index 0000000..693bd74 --- /dev/null +++ b/src/lesson6/values/Main.java @@ -0,0 +1,46 @@ +package lesson6.values; + +import java.util.ArrayList; +import java.util.List; + +public class Main { + + List parameterList = new ArrayList<>(); + + public void addToParamList(AbstractParameter parameter) { + parameterList.add(parameter); + } + + public void setParamValue(AbstractParameter param, Object value) { + parameterList.get(parameterList.indexOf(param)).setValue(value); + } + + public void showAllParamValues() { + for(AbstractParameter parameter : parameterList) { + System.out.println(parameter.getValue()); + } + } + + public static T funcName(T param) { + return param; + } + + public static void main(String[] args) { + funcName("new ArrayList<>()"); + List list = new ArrayList<>(); + list.add("123"); list.add("124"); + AbstractParameter parameter = new MultipleTextParameter(list); + System.out.println(parameter.getValue().getClass()); + parameter.setValue(list); + System.out.println(parameter.getValue()); + parameter.setValue(1); + AbstractParameter parameter1 = new SingleTextParameter("123"); + System.out.println(parameter1.getValue()); + Main main = new Main(); + main.addToParamList(parameter); + main.addToParamList(parameter1); + main.setParamValue(parameter1, "New String"); + main.showAllParamValues(); + //System.out.println(); + } +} diff --git a/src/lesson6/values/MultipleTextParameter.java b/src/lesson6/values/MultipleTextParameter.java new file mode 100644 index 0000000..7047c3a --- /dev/null +++ b/src/lesson6/values/MultipleTextParameter.java @@ -0,0 +1,10 @@ +package lesson6.values; + +import java.util.List; + +public class MultipleTextParameter extends AbstractParameter{ + + public MultipleTextParameter(List values) { + setValue(values); + } +} diff --git a/src/lesson6/values/SingleTextParameter.java b/src/lesson6/values/SingleTextParameter.java new file mode 100644 index 0000000..e9de80d --- /dev/null +++ b/src/lesson6/values/SingleTextParameter.java @@ -0,0 +1,9 @@ +package lesson6.values; + +public class SingleTextParameter extends AbstractParameter { + + public SingleTextParameter(String value) { + setValue(value); + } + +} From 29e74a0478f62e4f236b02305b751acdbf9e228a Mon Sep 17 00:00:00 2001 From: FrodoSur <48412710+FrodoSur@users.noreply.github.com> Date: Thu, 2 Apr 2020 15:40:51 +0300 Subject: [PATCH 11/16] Add files via upload --- Animals.java | 35 +++++++++++++++++++++++++++++++++++ Cat.java | 11 +++++++++++ Dog.java | 11 +++++++++++ test.java | 6 ++++++ 4 files changed, 63 insertions(+) create mode 100644 Animals.java create mode 100644 Cat.java create mode 100644 Dog.java create mode 100644 test.java diff --git a/Animals.java b/Animals.java new file mode 100644 index 0000000..4a32b95 --- /dev/null +++ b/Animals.java @@ -0,0 +1,35 @@ +public class Animals { + protected String name; + protected int runLimit = 0; + protected float jumpLimit = 0f; + protected int swimLimit = 0; + + public Animals(String name) { + this.name = name; + } + + public void info() { + System.out.println("name: " + name ); + } + public void run(int i){ + boolean a= false; + if(i Date: Thu, 2 Apr 2020 15:41:35 +0300 Subject: [PATCH 12/16] Create homework6 --- src/homework6 | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/homework6 diff --git a/src/homework6 b/src/homework6 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/homework6 @@ -0,0 +1 @@ + From b953b3d39f544790e5e339fd25a401b975c2ef8f Mon Sep 17 00:00:00 2001 From: levinmk23 Date: Thu, 2 Apr 2020 21:57:05 +0300 Subject: [PATCH 13/16] Lesson 7 --- src/lesson7/Example1.java | 29 +++++++++ src/lesson7/InnerClassFabric.java | 43 +++++++++++++ src/lesson7/PerformanceTest.java | 31 +++++++++ src/lesson7/StringCompressor.java | 100 ++++++++++++++++++++++++++++++ src/lesson7/StringExamples.java | 21 +++++++ 5 files changed, 224 insertions(+) create mode 100644 src/lesson7/Example1.java create mode 100644 src/lesson7/InnerClassFabric.java create mode 100644 src/lesson7/PerformanceTest.java create mode 100644 src/lesson7/StringCompressor.java create mode 100644 src/lesson7/StringExamples.java diff --git a/src/lesson7/Example1.java b/src/lesson7/Example1.java new file mode 100644 index 0000000..3e3c759 --- /dev/null +++ b/src/lesson7/Example1.java @@ -0,0 +1,29 @@ +package lesson7; + +public class Example1 { + + public static void main(String[] args) { + + class A { + int a; + } + + class B extends A{ + + } + + A a = new B(); + System.out.println(a.getClass()); + // a.a; a принадлежит В!!! + foo(1L); + // OOP!!! + // Stream_API + // + lambda + // SQL, NoSQL (Mongo, Firebase) + // concurrent + } + + static void foo(Object object) { + System.out.println(object.getClass()); + } +} diff --git a/src/lesson7/InnerClassFabric.java b/src/lesson7/InnerClassFabric.java new file mode 100644 index 0000000..4ea6985 --- /dev/null +++ b/src/lesson7/InnerClassFabric.java @@ -0,0 +1,43 @@ +package lesson7; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class InnerClassFabric { + + private int a; + + static public InnerClass1 getInnerClass1Instance(int a) { + return new InnerClass1(a); + } + + static public InnerClass2 getInnerClass2Instance(int a) { + return new InnerClass2(a); + } + + private static class InnerClass1 { + int b; + + private InnerClass1(int b) { + // a = 3; + this.b = b; + } + } + + private static class InnerClass2 { + int b; + + private InnerClass2(int b) { + // a = 3; + this.b = b; + } + } + + public static void main(String[] args) { + // InnerClassFabric outerClass = new InnerClassFabric(1); + // InnerClassFabric.InnerClass innerClass = outerClass.new InnerClass(2); + InnerClass1 instance = InnerClassFabric.getInnerClass1Instance(5); + + } + +} diff --git a/src/lesson7/PerformanceTest.java b/src/lesson7/PerformanceTest.java new file mode 100644 index 0000000..7ba356f --- /dev/null +++ b/src/lesson7/PerformanceTest.java @@ -0,0 +1,31 @@ +package lesson7; + +public class PerformanceTest { + + public static void stringPerformance() { + String s = ""; + for (int i = 0; i < 100000; i++) { + s += 'a'; + } + } + + public static void stringBuilderPerformance() { + StringBuilder s = new StringBuilder(); + s.insert(4, "asfasg"); + s.append("sagasg"); + for (int i = 0; i < 100000; i++) { + s.append('a'); + } + } + + public static void main(String[] args) { + long start = System.currentTimeMillis(); + stringPerformance(); + long end = System.currentTimeMillis(); + System.out.println(end - start + "ms."); + start = System.currentTimeMillis(); + stringBuilderPerformance(); + end = System.currentTimeMillis(); + System.out.println(end - start + "ms."); + } +} diff --git a/src/lesson7/StringCompressor.java b/src/lesson7/StringCompressor.java new file mode 100644 index 0000000..2c210a8 --- /dev/null +++ b/src/lesson7/StringCompressor.java @@ -0,0 +1,100 @@ +package lesson7; + +public class StringCompressor { + + private String data, compressedData; + + public StringCompressor(String data) { + this.data = data; + compressedData = data; + } + + public String decompress(String compressedString) { + // a135(f)4(r) если цифр более 1 то число надо собрать + // 1) d = ""; d = "5" + d; 135 если не цифра, то число собрано + // + char[] c = compressedString.toCharArray(); + StringBuilder value = new StringBuilder(); + StringBuilder result = new StringBuilder(); + for (int i = 0; i < c.length; i++) { + if (Character.isDigit(c[i])) { + value.append(c[i]); + } else { + if (c[i] == '(') { + //123(sym) + int len = Integer.parseInt(value.toString()); + char sym = c[i + 1]; + for (int j = 0; j < len; j++) { + result.append(sym); + } + i += 2; + value = new StringBuilder(); + } else { + result.append(c[i]); + } + } + } + return result.toString(); + } + + public String compress() { + // abc -> 1(a)2(b)3(c), abbc -> a2(b)c + // посчитаем подряд идущие одинаковые буквы + char[] chars = data.toCharArray(); + int cnt = 1; + char sym = ' '; + StringBuilder cD = new StringBuilder(); + for (int i = 0; i < chars.length - 1; i++) { + if (chars[i] == chars[i + 1]) { // ArrayIndexOut + sym = chars[i]; + cnt++; + if (i == chars.length - 2) { + cD.append(cnt) + .append('(') + .append(sym) + .append(')'); + } + } else { + if (cnt > 1) { + // cnt(sym) + cD.append(cnt) + .append('(') + .append(sym) + .append(')'); + cnt = 1; + } else { + // chars[i] + cD.append(chars[i]); + cnt = 1; + } + } + } + if (chars.length <= 1) { + return data; + } else if (chars[chars.length - 1] != chars[chars.length - 2]) { + cD.append(chars[chars.length - 1]); + } + return cD.toString(); + } + + public boolean isGood() { + return compressedData.length() < data.length(); + } + + public static void main(String[] args) { + System.out.println( + new StringCompressor("aaaaaaacccdfffff") + .compress()); + System.out.println( + new StringCompressor("aabbcc") + .compress()); + System.out.println( + new StringCompressor("abcdeeefffffggrgrgrggr") + .compress()); + StringCompressor compressor = new StringCompressor("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + System.out.println(compressor.compress()); + System.out.println(compressor.isGood()); + System.out.println(compressor.decompress("15(e)6(f)x")); + } + +} diff --git a/src/lesson7/StringExamples.java b/src/lesson7/StringExamples.java new file mode 100644 index 0000000..2c8698f --- /dev/null +++ b/src/lesson7/StringExamples.java @@ -0,0 +1,21 @@ +package lesson7; + +import java.util.Arrays; + +public class StringExamples { + public static void main(String[] args) { + String s = "mama mil;a ramU!!!!"; + // [mama, mila, ramu] + s = s.toLowerCase() + .replaceAll("[^a-z ]", ""); + System.out.println(s); + String [] words = s.split(" +"); + System.out.println(Arrays.toString(words)); + System.out.println(Arrays.toString("abc, cde, efg".split(", +"))); + System.out.println("aaaabcdbcd".indexOf("bcd")); + System.out.println("aaaabcdbcd".lastIndexOf("bcd")); + System.out.println("aaaabcdbcd".indexOf("bcde")); + System.out.println("123@gmail.com".matches("[a-zA-Z0-9]+@{1}[a-zA-Z0-9]+\\.[a-zA-Z0-9]+")); + + } +} From e01197fa9fdb39ee1f71d31d12999a1852261a79 Mon Sep 17 00:00:00 2001 From: levinmk23 Date: Thu, 2 Apr 2020 22:01:07 +0300 Subject: [PATCH 14/16] Lesson 7 --- src/lesson7/StringExamples.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lesson7/StringExamples.java b/src/lesson7/StringExamples.java index 2c8698f..f812d2c 100644 --- a/src/lesson7/StringExamples.java +++ b/src/lesson7/StringExamples.java @@ -17,5 +17,6 @@ public static void main(String[] args) { System.out.println("aaaabcdbcd".indexOf("bcde")); System.out.println("123@gmail.com".matches("[a-zA-Z0-9]+@{1}[a-zA-Z0-9]+\\.[a-zA-Z0-9]+")); + } } From 719aa74e6d32c95fbe1ae1e7a5c58283b3610f2e Mon Sep 17 00:00:00 2001 From: levinmk23 Date: Mon, 6 Apr 2020 21:12:21 +0300 Subject: [PATCH 15/16] Lesson 7 --- src/lesson8/ListenerTest.java | 52 ++++++++++++++++ src/lesson8/Window.java | 110 ++++++++++++++++++++++++++++++++++ src/lesson8/empty.jpg | Bin 0 -> 907 bytes src/lesson8/o.jpg | Bin 0 -> 3258 bytes src/lesson8/x.jpg | Bin 0 -> 3765 bytes 5 files changed, 162 insertions(+) create mode 100644 src/lesson8/ListenerTest.java create mode 100644 src/lesson8/Window.java create mode 100644 src/lesson8/empty.jpg create mode 100644 src/lesson8/o.jpg create mode 100644 src/lesson8/x.jpg diff --git a/src/lesson8/ListenerTest.java b/src/lesson8/ListenerTest.java new file mode 100644 index 0000000..4bcbf16 --- /dev/null +++ b/src/lesson8/ListenerTest.java @@ -0,0 +1,52 @@ +package lesson8; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class ListenerTest extends JFrame { + public ListenerTest() throws HeadlessException { + setDefaultCloseOperation(EXIT_ON_CLOSE); + setLocation(500, 400); + setSize(300, 300); + setResizable(false); + JPanel panel = new JPanel(new GridLayout(3, 3)); + JTextArea txt = new JTextArea(); + JButton btn = new JButton(); + JCheckBox chk = new JCheckBox("in upper case"); + JLabel lbl = new JLabel(); + addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + System.out.println(e); + } + }); + txt.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + int symbolCount = txt.getText().length(); + lbl.setText(String.valueOf(symbolCount)); + } + }); + chk.addActionListener(actionEvent -> { + lbl.setText(""); + System.out.println(chk.isSelected()); + System.out.println(actionEvent.paramString()); + }); + btn.addActionListener(action -> { + if (chk.isSelected()) { + lbl.setText(txt.getText().toUpperCase()); + } else { + lbl.setText(txt.getText()); + } + }); + panel.add(txt); panel.add(btn); + panel.add(chk); panel.add(lbl); + add(panel); + setVisible(true); + } + + public static void main(String[] args) { + new ListenerTest(); + } +} diff --git a/src/lesson8/Window.java b/src/lesson8/Window.java new file mode 100644 index 0000000..0db6b7c --- /dev/null +++ b/src/lesson8/Window.java @@ -0,0 +1,110 @@ +package lesson8; + +import javax.swing.*; +import java.awt.*; + +public class Window extends JFrame { + + private JPanel getPanelWithBorderLayout() { + JPanel panel = new JPanel(new BorderLayout()); + panel.add(new JButton("OK"), BorderLayout.WEST); + panel.add(new JTextArea(), BorderLayout.CENTER); + panel.add(new JButton("OK"), BorderLayout.EAST); + panel.add(new JButton("OK"), BorderLayout.NORTH); + panel.add(new JButton("OK"), BorderLayout.SOUTH); + return panel; + } + + public JPanel getPanelWithFlowLayout() { + JPanel panel = new JPanel(new FlowLayout()); + panel.add(new JButton("OK")); + panel.add(new JTextArea("asfasgasgasg")); + panel.add(new JButton("OK")); + panel.add(new JButton("OK")); + panel.add(new JButton("OK")); + return panel; + } + + public JPanel getPanelWithGridLayout(int row, int col) { + JPanel panel = new JPanel(new GridLayout(row, col)); + panel.add(new JButton("OK")); + panel.add(new JTextArea("asfasgasgasg")); + panel.add(new JButton("OK")); + panel.add(new JButton("OK")); + panel.add(new JButton("OK")); + return panel; + } + + private final ImageIcon imageX = new ImageIcon("src/lesson8/x.jpg"); + private final ImageIcon imageO = new ImageIcon("src/lesson8/o.jpg"); + private final ImageIcon imageEmpty = new ImageIcon("src/lesson8/empty.jpg"); + private int cnt = 0; + + public Window() throws HeadlessException { + setDefaultCloseOperation(EXIT_ON_CLOSE); + setLocation(500, 400); + setSize(300, 300); + setResizable(false); + JPanel panel = new JPanel(new GridLayout(3, 3)); + JButton[][] buttons = new JButton[3][3]; + System.out.println(imageX); + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + buttons[i][j] = new JButton(); + buttons[i][j].setIcon(imageEmpty); + JButton copy = buttons[i][j]; + copy.addActionListener(action -> { + copy.setIcon(imageX); + copy.setEnabled(false); + cnt++; + copy.setDisabledIcon(imageX); + movePC(buttons); + if (cnt == 9) { + JFrame alert = new JFrame("кто то победил или ничья"); + alert.setLocation(500, 400); + alert.setSize(300, 100); + JPanel alertPanel = new JPanel(new FlowLayout()); + JButton newGame = new JButton("new game"); + newGame.addActionListener(a -> { + this.dispose(); + new Window(); + alert.dispose(); + }); + JButton close = new JButton("close"); + close.addActionListener(a -> { + dispose(); + alert.dispose(); + }); + alertPanel.add(newGame); + alertPanel.add(close); + alert.add(alertPanel); + alert.setResizable(false); + alert.setVisible(true); + } + }); + panel.add(buttons[i][j]); + } + } + add(panel); + setVisible(true); + } + + private void movePC(JButton[][] buttons) { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (buttons[i][j].isEnabled()) { + buttons[i][j].setIcon(imageO); + buttons[i][j].setEnabled(false); + buttons[i][j].setDisabledIcon(imageO); + cnt++; + return; + } + } + } + } + + public static void main(String[] args) { + /* Window win = */ + new Window(); + } +} diff --git a/src/lesson8/empty.jpg b/src/lesson8/empty.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac3826d462c078b8770d647bd5bbd79aa0a908ed GIT binary patch literal 907 zcmex= z&EU+y#K;IjP{7Q}3<7K{EX=IzZ0zhH%)!ac$-%+J!OqUb%f-db0|e}xeEhsTd>}T+ z5Ri6|E+FFJVCMj-APxLKz#z!Mkiw9{%&5e`B*@4t$oT&VgFMi!tUw=uJOu@eOw25- zY(OV*aRU`>6#zP)nVAXbSXLGmpz2znJOhg$tB|6hBb#twBD+$dh*9Ijg&fLG8xM*G zUHqV8oK)1r$t5N(At|M*rmmr>WnyY(ZeeNV?BeR??&0Yb91<+v*#~fzWVs-^OvvRzW@073*;|G24;x2;66k1mmttz zOu#r`VF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bam zA37zO}huxKqH6BleE= z00;yEym$lPQUEo(NM9rX96t`|0stV$+mi&qycLKy{tWIIU<>epK-=?Ifce4OApn7Z z`Jn<(=ynPU2@44d!UUmEm?#V;EW!(@keIlrh}iae`z71Qw@>k=h#*vOyW)Qf?t4H& z5byzfz#uh%PXYv%0C8IZRi0LU9?>?`uK@9ZA^ZY7NibnvLG=!vd@z`gCzc-q;Z?`* z_5p|lzvOQQhXkZfdqdTNr48dV^90pxDw<`S`l%X5mqHSRV6t*MTd)Ut2;djR)&S%b^b8&TZzwC1bdG&9;e%C|8!XqN1ZX_lp-^AWZ!QIKadoMfZ z{)627g2JL_#m`GhE2~~tzp1IMt8XE;wzYrg==?|;7##XM{AFa6GClKkc5eRL!gm^d zZT$yhgSq*0n+pVh|AF-v*}ri~@VNMRcL0HIbAk9GcnOw(@c(8YAbIFC)H_&8%`je2 z+9orvqFG4Y$cZX*DWo4Jt6@yhq-~@9N%r4?CH!Axe}VmrYZMRxgLsz*mH-gI*3X@J zbp-^9&C4@E+Q8m;2ip^)Mx@)PKz1^{i>fm0y_ChxyuPDA8O}dVAD&Bw70O z!33Q4Q$Ah_%uCO*@(Yk9&?5(B=!E4TT!7!3ideFW-b!S+vE62(yw`4K`5Jyu&alj@ zyF1@CZU!s;WG@60yo70XZMs&+1-!`#vX>9aRx-!hDm#6Pgc`3@rpg&k-2FCYs#f|$ z_;;ZWr(zoTaKEJs>oEIVT2GIabDK4sc6{OeII^zsiOo?X12#_}ppn6k&e;(Rc}4p9 zQqDa+;vJzn=UneXI)p8ihwnq%w(95bE7IH9jRQH;f$kwK`+Z*z1Xww_vs9N6Jk>{; zoh&E6PowEL_*;vDGAXglrym*nE7I_0=hif>=|&>+pc^jnBfjoAICx-T&6~zSB+j(H zE^@~A!Hy8Rnfxvh`iC^sk1mEK7f66G5frwp`EXk_gLbpJ`ii+pm9fH=GHQ4Oc<#iZ z)w{MGy2M=8Kr>$CttoZ>1WOgmM&y4BZ*(Vq{o>{jm@MsmCh3$QI8LvlpoO{Qxf)!( zhm48hggbnfFD5A_MIsR+Z?zK6dMoQII$=BMb&jjyq=wHc8;FMp5ITUC)6(gU5n)!f z=7P_6&b1qF9YKZJPh}-}nZ55Vk4b0k$27;p>Y#Pw{n5e23tT`Vlsc6%t42JP5@KlC z(N_>>l-j@2OS_EQvSN;L0SJp}#yaGSB)2{R^|@b3YL=P3S6f*h@7UX=asDJUL(DN1g6JI;(}DKQ&78tVI236|i1nAwH;b^l7@9!UfG;fAQRW8SX&z!Aq13fC@G zj(6#7EyGejd}Mf(OsH&#(&jKcSAFRL^dV(zc%4${t^^^76xn4O!`?B^=%{B(u^fn0 z4r^mlk(qg2xuzFRenr-Ob<+--IHzP!ObEd~eyTbKWBF$pyDk})ax@Eg9!{)dr%#iy z0~8TX6dL}m`#LFWsMc!F^5?w=-VuD3kv#hoyx6VU`8Z%Z*}A+tpG13df#d=f8ui(r zD~J&*{<^0BlAHL)mt}Jw&xEV^yf7MEUT=%J#{~qoINgn^eTb`Ft0{Lz+QOz&qfb3) zQLIzjd{M48`s_fb)@tMQCxb`Y92JZeX6iYfo`JwMF%&UdAU%dNN9bbl*g_NaWO{PR zHIe-byEEr1+v9C5y3~!7B9IzcgLjU{MrRJ3UCSNv^PBlJT)xayXGOOy`B&m$^tVlr z@yl+fZ@*ZMWNDdck#ikQ$yDq3e4O68Ix|TRyHyk`{)HXOy>QsTSh-lB5RZI3uxX6hcLSMMf;OWS zy&FVnrd2$heDPevGj}r52jZjhy{qr1%X%kutu-W)_+CMUVC*YB`V4<9@*6%(;rF2q zmG`-vFfI^~j@?VmVbn2GDU90ldBuwx(VAez{;!6+V;HqivI(n#XS4-cc-{=*3yKn3 zQhLE;VtrIZNTYkBklvi?_`~9i&xYmjdn)>|rJcV8=f(0*{0QcVc_?jD#rg3-b>V2! zxl$V=PyMh}@*o4Jo!@j2fou8I(!}Qp92m}k*Al?YGG2SC;R1b#i)q~5f?mjxd7DzlYA#qkumqs{kX+awl$m-Kyac+ zZ$>!Vix@sypR|14q5Qy+HG*)&G`~ZHYUcuVEHN|m=j`8-|dVKfo7 zUVe70sX`p#*>X#SqYBd|;4xE0k>!RLS;r7PcVNbI|ZjqaITU1TMQugw?V@(CKiuZG* zXvx@gL?8mE@GQr4bPsZPMLq497a|+|Mtv+qNo7W$35A);!O+utlRX)blUt&TR3l0{ zu^cs%-li-^G&gqgL_N`LO6wUnKu&0+rmh5?=)d!6B2HtSu%J(Y63>e#dcxQi6f3w% z`bp}_V*xyHD$2DF9;NYhM&pj7#xOA`>8gv&dFjvTYk~7WHb~)beqY_eUYPul_8iJsxM4=&vT}XlYY}4sp;YsDfyfl3NcXWjp?(&N2O2`7mSqGg5gObrN zF+_S>_obkoA-Ru?F^^Q${z+lxkS%uKkf9Ps>=`Vg`c96P$!69c%sjn`@_~0*b5}d? zl^@tj2UP3^V)sQ}IVBm6vR1i0bweoNan)kB!}_Mha4iZ!^;C_^4Zjy`^?DLM2v@V| zAG0f5ih5X?up)hRFhg$!kwT_k8*bMZjeIjrCYob!S{^TmS&SZmHxl*49a7>)$tzXj zvBW1_04o~X=eaIMt>K6{v-R4G?_XUnSeh`^3kzqhsz|;gmH8OE2 zLdBSd#j?$WPjWI*Ugf^D6pv2Bi)DmIDg(KKajb>aOR3C!B-h3N2E$E3h z&HY~ZYBVFnvLVRwl|5*@`M$~_WnInedAC1~N^f4C_i3Wa3=b|5X{*UfqVj{3pMG!D zx;Cxrb_1#VsFTp2Se*qQH~Tp%wqjt-)bezhh(T;PoT%HKePzl<#H9C6)N cNtN>skPOiol){0!|Md4ieg2=G81Bg50YS+aYXATM literal 0 HcmV?d00001 diff --git a/src/lesson8/x.jpg b/src/lesson8/x.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01a89c8360fea8501f11cb97ae87238548d7bf7b GIT binary patch literal 3765 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 literal 0 HcmV?d00001 From 4f7c4892d9802bbd3b3d2d19568a817c8db8435c Mon Sep 17 00:00:00 2001 From: FedorSur Date: Wed, 8 Apr 2020 23:51:54 +0300 Subject: [PATCH 16/16] homework 7 done --- src/lesson7/Cat.java | 27 +++++++++++++++++++++++++++ src/lesson7/MainClass.java | 15 +++++++++++++++ src/lesson7/Plate.java | 18 ++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 src/lesson7/Cat.java create mode 100644 src/lesson7/MainClass.java create mode 100644 src/lesson7/Plate.java diff --git a/src/lesson7/Cat.java b/src/lesson7/Cat.java new file mode 100644 index 0000000..abe14bc --- /dev/null +++ b/src/lesson7/Cat.java @@ -0,0 +1,27 @@ +package lesson7; + +public class Cat { + + private String name; + private boolean hunger = false; + private int appetite; + public Cat(String name, int appetite) { + this.name = name; + this.appetite = appetite; + } + public void eat(Plate p) { + if(appetite< p.food) { + p.decreaseFood(appetite); + hunger = true; + } + } + public void HungerInfo(){ + if(hunger){ + System.out.println("Котик сыт"); + } + else { + System.out.println("Котик голоден"); + } + } + +} diff --git a/src/lesson7/MainClass.java b/src/lesson7/MainClass.java new file mode 100644 index 0000000..c77de4e --- /dev/null +++ b/src/lesson7/MainClass.java @@ -0,0 +1,15 @@ +package lesson7; +public class MainClass { + + public static void main(String[] args) { + Plate plate = new Plate(100); + Cat[] cat = new Cat[28]; + for (int i = 0; i < 28; i++) { + cat[i] = new Cat("Barsik", (int)(Math.random()*10)); + cat[i].eat(plate); + System.out.print(i+")"); + cat[i].HungerInfo(); + } + } + +} diff --git a/src/lesson7/Plate.java b/src/lesson7/Plate.java new file mode 100644 index 0000000..8308d3d --- /dev/null +++ b/src/lesson7/Plate.java @@ -0,0 +1,18 @@ +package lesson7; + +public class Plate { + public int food; + public Plate(int food) { + this.food = food; + } + public void decreaseFood(int n) { + food -= n; + } + public void increaseFood(int n){ + food +=n; + } + public void info() { + System.out.println("plate: " + food); + } + +}