Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 06.04.2015
Сообщений: 29

Игра дает больше попыток чем должна. Не могу найти ошибку

06.04.2019, 18:28. Показов 1391. Ответов 2

Студворк — интернет-сервис помощи студентам
Игра дает больше попыток чем должна. В программе задано 10 попыток, но позволяет провести 12 (


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Main {
    public static void main(String[] args) {
        Game game = new Game("movies.txt");// считывание из файла
        System.out.println("Start the Movie Game");
        System.out.println("You have 10 attempts");
        System.out.println("Use only latin letters");
        System.out.println("It's your movie:" + game.maskMovie()); // вывод рандомно выбраной и замаскированной строки
        while (!game.isGameFail() && !game.isGameWon()){
            game.compare();
        }
        if(game.isGameFail()) System.out.println("You are lose!");
        if(game.isGameWon()) System.out.println("You are Won!");
        System.out.println("Thanks for your game");
 
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
 
public class Movies {
    // Class representing a file with movies
    private ArrayList<String> movieArray;
 
    public Movies(String filename){
        File movieFile = new File(filename); // попытка открыть файл
        try {
            movieArray = new ArrayList(); // создали аррей лист
            Scanner movieScanner = new Scanner(movieFile); // отсканировали файл
            while (movieScanner.hasNextLine()) {
                String movieLine = movieScanner.nextLine();
                movieArray.add(movieLine); // заполнили аррей лист
            }
        }
        catch(FileNotFoundException e){
            System.out.println("File not found !");
        }
    }
 
    public String movieRandom(){
        return movieArray.get(Random.random(movieArray.size())); // выбрали рандомный элемент (фильм)
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Scanner;
import java.lang.String;
 
public class Game {
    private String movieString;
    private int attempts;
    private boolean gameWon, gameFail;
    private String pastSymbols;
 
    public Game(String filename){
        Movies movies = new Movies(filename);
        movieString = movies.movieRandom(); // рандомный фильм
        gameWon = false;
        gameFail = false;
        attempts = 1;
        pastSymbols = "";
    }
 
    public String maskMovie(){
        String maskMovieRandom = movieString.replaceAll("[a-zA-Z]", "*"); // заменили в рандом элементе буквы звездочками
        return maskMovieRandom;
    }
 
    public String compare(){
        System.out.println("Give me a latter:");
        Scanner inputScanner = new Scanner(System.in);// сканирование буквы введенной пользователем
        String latter = inputScanner.nextLine();
        String resultMovieStringRight;
        try {
            int index = movieString.indexOf(latter);
            pastSymbols += movieString.charAt(index);
            String movieStringRight = movieString.format("[a-zA-Z&&[^%s]]", pastSymbols);
            resultMovieStringRight = movieString.replaceAll(movieStringRight, "*");
            System.out.println(resultMovieStringRight);
            attempts++;
            return resultMovieStringRight;
        }
        catch(Exception e){
            System.out.println("This letter is not here");
            attempts++;
            return null;
        }
    }
 
    public boolean isGameFail() {
        if(attempts > 10 && !movieString.equals(compare())) gameFail = true;
        return gameFail;
    }
 
    public boolean isGameWon() {
        if(attempts <= 10 && movieString.equals(compare())) gameWon = true;
        return gameWon;
    }
}
Java
1
2
3
4
5
6
public class Random {
    public static int random(int max){
        int randomIndex = 1 + (int) (Math.random() * max);
        return randomIndex;
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2019, 18:28
Ответы с готовыми решениями:

Не могу найти ошибку в программе (игра)
Всем привет! Очень сильно прошу о помощи! - туплю 3 день, пытаюсь сам допереть, но, наверное, либо глаз замылился, либо я чего-то...

При решении уравнения маткад даёт ошибку: величина должна быть скаляром
Посмотрите пожалуйста код и условие задачи, все ли правильной мной сделано.... Необходимо найти и построить график зависимости Kz от t. ...

Не могу найти ошибку!! В чем дело?
Программа должна последовательно выделять слова в предложении, у которых наибольшее кол-во гласных букв. Вот код программы ...

2
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
06.04.2019, 18:45
Лучший ответ Сообщение было отмечено Dnepranin как решение

Решение

movieString.equals(compare())) => compare() - ты снова вызываешь метод этот и всё заново

так и в методе gameFail()
1
1 / 1 / 0
Регистрация: 06.04.2015
Сообщений: 29
06.04.2019, 19:06  [ТС]
ArtemFM
Перенес определение resultMovieStringRight в класс и все заработало.
Но можно ли как то в таких случаях использовать то что возвращает другой метод ?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Scanner;
import java.lang.String;
 
public class Game {
    private String movieString;
    private int attempts;
    private boolean gameWon, gameFail;
    private String pastSymbols;
    private String resultMovieStringRight;
 
    public Game(String filename){
        Movies movies = new Movies(filename);
        movieString = movies.movieRandom(); // рандомный фильм
        gameWon = false;
        gameFail = false;
        attempts = 1;
        pastSymbols = "";
    }
 
    public String maskMovie(){
        String maskMovieRandom = movieString.replaceAll("[a-zA-Z]", "*"); // заменили в рандом элементе буквы звездочками
        return maskMovieRandom;
    }
 
    public String compare(){
        System.out.println("Give me a latter:");
        Scanner inputScanner = new Scanner(System.in);// сканирование буквы введенной пользователем
        String latter = inputScanner.nextLine();
        try {
            int index = movieString.indexOf(latter);
            pastSymbols += movieString.charAt(index);
            String movieStringRight = movieString.format("[a-zA-Z&&[^%s]]", pastSymbols);
            resultMovieStringRight = movieString.replaceAll(movieStringRight, "*");
            System.out.println(resultMovieStringRight);
            attempts++;
            return resultMovieStringRight;
        }
        catch(Exception e){
            System.out.println("This letter is not here");
            attempts++;
            return null;
        }
    }
 
    public boolean isGameFail() {
        if(attempts > 10 && !movieString.equals(resultMovieStringRight)) gameFail = true;
        return gameFail;
    }
 
    public boolean isGameWon() {
        if(attempts <= 10 && movieString.equals(resultMovieStringRight)) gameWon = true;
        return gameWon;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2019, 19:06
Помогаю со студенческими работами здесь

Не могу найти ошибку!В чем неисправность?
писали такую прогу переводит из 1 системы счисления в другую а он ошибка да ошибка посмотрите подскажите что да как!

В чём ошибка? Никак не могу найти ошибку
https://pp.vk.me/c614926/v614926630/dadf/F_B_-fPWAMo.jpg

Сервер не даёт доступ к базе больше чем одному пользователю
Обновил на сервере и на компах 1С до версии 8.3.9.1818. На сервере две базы, к каждой из них можно подключить только один комп, второй...

мне нужно решение: выбивает ошибку игра кубики должна быть
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include&lt;time.h&gt; using namespace std; void...

простенькое приложение выдает ошибку не могу найти в чем дело
Помогите пожалуйста. Вторые сутки воюю с простеньким приложением Maven+Servlet Tomkat приложение в прикрепленном архиве. скрипт базы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru