Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 12:22   #1
Vioc
Новичок
Джуниор
 
Регистрация: 05.12.2015
Сообщений: 2
По умолчанию Java. Не работает код

Подскажите, почему ход компа не осуществляется?

Код:
import java.util.Scanner;

public class gama {
    public static void main(String[] args) {

//user - число введенное пользователем
        int user = 0;
        
        int b=0//спичка игрока
                , h = 0, q = 0, c = 31;//число спичек
        //Правила игры
        System.out.print("Приветствую. Вы зашли в игру Бергсона. Правила: На столе лежит кучка спичек.");
        System.out.println("чем взял предыдущий игрок. Выигрывает тот, кто берет последнюю спичку");
        System.out.println("в кучке 31 спичка , бери первый");
        Scanner input = new Scanner(System.in); //ввод игроком числа спичек
        if (input.hasNextInt()) {
            while (h != 1) {
                user = input.nextInt();
                if (user >= 1 && user <= c - 1) {
                    c = c - user;
                    System.out.format("ты взял %d в кучке осталось %d\n", user, c);
                    System.out.print("ход компьютера\n");
                    h = 1;
                }
            }
        }
        while (c > 0) {
//ход компа

            if (q == 1) {
                System.out.println("ход компьютера");
                if (c <= (2 * user)) {
                    b = c;
                    c = c - b;
                } else {
                    if (((c - 1) / 3 <= (2 * user)) && c > 3) {
                        b = (c - 1) / 3;
                        c = c - b;
                    } else {
                        b = 2 * user;
                        c = c - b;
                    }
                }

                System.out.format("pc take %d \n", b);
                System.out.format("in bunch %d\n", c);
                if (c == 0)
                    System.out.println("Pc won");
                q = 0;
            }
            if (c != 0) {
                System.out.println("take match");
                Scanner user1 = new Scanner(System.in);
                if (user1.hasNextInt()) {
                    user = user1.nextInt();
                    if (user >= 1 && user <= 2 * b) {
                        c = c - user;
                        System.out.format("ты взял %d спичек", user);
                        System.out.format("в кучке осталось %d", c);
                        q = 1;

                    }
                    if (c == 0)
                        System.out.print("вы победили");
                }

            }
        }
    }
}
И как можно упростить?

Последний раз редактировалось Vioc; 06.12.2015 в 12:28.
Vioc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код на java Morreaw Общие вопросы по Java, Java SE, Kotlin 0 09.06.2015 09:23
Java Servlet не работает maomam PHP 1 17.11.2012 19:25
Java-скрипт НЕ работает _ВфТеу JavaScript, Ajax 5 19.07.2011 11:46
Код не работает в IE asdasdasdasd HTML и CSS 5 24.08.2010 19:36
Java Script - объясните почему не работает код. fidger JavaScript, Ajax 0 10.05.2009 18:01