Didart

Memory Game

Oct 21st, 2021
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.stream.Collectors;
  5.  
  6. public class MemoryGame {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         List<String> sequenceOfElements = Arrays.stream(scanner.nextLine().split("\\s+")).collect(Collectors.toList());
  11.  
  12.         int twinElement = 0;
  13.         String input = scanner.nextLine();
  14.         while (!input.equals("end")) {
  15.             twinElement++;
  16.             String[] element = input.split("\\s+");
  17.             int firstDigit = Integer.parseInt(element[0]);
  18.             int secondDigit = Integer.parseInt(element[1]);
  19.             boolean isValid = checkIsValid(sequenceOfElements, firstDigit, secondDigit, twinElement);
  20.             if (isValid) {
  21.                 checkAndRemove(sequenceOfElements, firstDigit, secondDigit);
  22.             }
  23.             if (sequenceOfElements.isEmpty()) {
  24.                 System.out.printf("You have won in %d turns!%n", twinElement);
  25.                 return;
  26.             }
  27.             input = scanner.nextLine();
  28.         }
  29.         System.out.println("Sorry you lose :(");
  30.         System.out.println(String.join(" ", sequenceOfElements));
  31.     }
  32.  
  33.     private static void checkAndRemove(List<String> numberSequence, int numberOne, int numberTwo) {
  34.         if (numberSequence.get(numberOne).equals(numberSequence.get(numberTwo))) {
  35.             System.out.printf("Congrats! You have found matching elements - %s!%n", numberSequence.get(numberOne));
  36.             String currentElement = numberSequence.get(numberOne);
  37.             for (int i = 0; i < numberSequence.size(); i++) {
  38.                 if (numberSequence.get(i).equals(currentElement)) {
  39.                     numberSequence.remove(i);
  40.                     i = -1;
  41.                 }
  42.             }
  43.         } else {
  44.             System.out.println("Try again!");
  45.         }
  46.     }
  47.  
  48.     private static boolean checkIsValid(List<String> numberSequence, int numberOne, int numberTwo, int moves) {
  49.         if ((numberOne == numberTwo) ||
  50.                 (numberOne < 0) ||
  51.                 (numberTwo < 0) ||
  52.                 (numberOne >= numberSequence.size()) ||
  53.                 (numberTwo >= numberSequence.size())) {
  54.             numberSequence.add(numberSequence.size() / 2, "-" + moves + "a");
  55.             numberSequence.add(numberSequence.size() / 2 + 1, "-" + moves + "a");
  56.             System.out.println("Invalid input! Adding additional elements to the board");
  57.             return false;
  58.         }
  59.         return true;
  60.     }
  61. }
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment