Task 12 — Игра Пьяница

Моделирование игры через очереди и коллекции.

Edit on GitHub

Задание

Моделирование игры через очереди и коллекции. Документация собрана по исходному коду этой практики.

Решение

Полный код решения по этой практике:

Исходные файлы решения

  • Task12/Drunkard.java

Task12/Drunkard.java

Task12/Drunkard.java
package Task12;

import java.util.*;

public class Drunkard {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Ведите 5 карт для первого игрока: ");
        Scanner s = new Scanner(System.in);
        Scanner r = new Scanner(System.in);
        int t1 = s.nextInt();
        System.out.println("Ведите 5 карт для второго игрока: ");
        int t2 = r.nextInt();
        int[] b1 = new int[5];
        int[] b2 = new int[5];
        while (t1 > 0) {
            for (int i = b1.length - 1; i >= 0; i--) {
                b1[i] = t1 % 10;
                t1 = t1 / 10;
            }
        }
        while (t2 > 0) {
            for (int i = b2.length - 1; i >= 0; i--) {
                b2[i] = t2 % 10;
                t2 = t2 / 10;
            }
        }
        int count = 0;
        while (b1.length != 0 && b2.length != 0 && count < 106) {
            int card1 = b1[0];
            int card2 = b2[0];
            if ((card1 > card2 || (card1 == 0 && card2 == 9)) && (card1!=9&&card2!=0)) {
                int[] newb1 = new int[b1.length + 1];
                System.arraycopy(b1, 1, newb1, 0, b1.length - 1);
                newb1[newb1.length - 2] = card1;
                newb1[newb1.length - 1] = card2;
                b1 = newb1;
                int[] newb2 = new int[b2.length - 1];
                System.arraycopy(b2, 1, newb2, 0, b2.length - 1);
                b2 = newb2;
                count += 1;
                for(int i =0; i<b2.length;i++)
                {
                    System.out.println(b2[i]);
                }
                System.out.println("==========================");
            } else {
                int[] newb2 = new int[b2.length + 1];
                System.arraycopy(b2, 1, newb2, 0, b2.length - 1);
                newb2[newb2.length - 2] = card2;
                newb2[newb2.length - 1] = card1;
                b2 = newb2;
                int[] newb1 = new int[b1.length - 1];
                System.arraycopy(b1, 1, newb1, 0, b1.length - 1);
                b1 = newb1;
                count += 1;
            }
        }
        if (count == 106) {
            System.out.println("botva");
        }
        if (b2.length == 0) {
            System.out.println("first " + count);
        } else {
            System.out.println("second " + count);
        }
        //Удаление переменной из массива
        /*
        int index = 0;
        int[] newArray = new int[b1.length-1];
        System.arraycopy(b1,0,newArray,0,index);
        System.arraycopy(b1, index+1,newArray,index,b1.length-index-1);
        b1=newArray;
        for(int i= 0; i<b1.length;i++) {
            System.out.println(b1[i]);
        }
         */
    }
}

Описание

В этом модуле используется 1 Java-файлов. Ключевые сущности: Drunkard.

tip

Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами.

Вывод

Task 12 — Игра Пьяница документирует реальное решение из исходного кода.