Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Консольная игра. 
:(
    Опции темы
Derron
Дата 6.10.2011, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.9.2011

Репутация: нет
Всего: нет



Вот читал я читал книжки по Java и мне захотелось что-то покнопить  smile

Решил воплотить вот какую задачку: 

Компьютер загадывает число от 0 до 100, а вам нужно его угадать. 
Если вы не угадываете, он подсказывает Больше он загадал или меньше. 

Над кодом я сидел часа полтора. Пользовался исключительно Эккелем и Мозгом smile
Код

import java.util.*;

public class Number {
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        Random rd = new Random();
        int i = rd.nextInt(100);
        System.out.println("Я загадал число от 0 до 100, угадай его!");
        end:
        for( ; true ; ){
            int ans = sc.nextInt();
                if(ans == i){
                    System.out.println("Ты угадал!!!");
                    break end;
                }
                else
                in:
                while(ans != i){
                    if(ans < 0 || ans > 100){
                        System.out.println("Я загадал число от 0 до 100!");
                        break in;
                    }
                    if(ans > i){
                        System.out.println("Нет, загадал чило меньше!");
                        break in;
                    }
                    if(ans < i){
                        System.out.println("Нет, я загадал чило Больше!");
                        break in;
                    }
                }
        }
    }
}



Подскажите, с точки зрения языка, эта задача решена правильно? То, что она работает правильно, еще не означает что она правильно написана. 

И я бы очень хотел посмотреть на другие варианты решения этой задачи.
PM MAIL   Вверх
toxx
Дата 6.10.2011, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 1
Всего: 13



Код

import java.util.*;
public class Number {
   
    public static void main(String[] args) { 
        number();
    }
    static void number() {
        boolean isEnd = false;
        int i = new Random().nextInt(100);
        System.out.println("Я загадал число от 0 до 100, угадай его!");
        do {
            int ans = new Scanner(System.in).nextInt();
            if (ans < 0 || ans > 100) {
                System.out.println("Я загадал число от 0 до 100!");
            }
            else if (ans == i) {
                System.out.println("Ты угадал!!!");
                isEnd = true;
            }
            else if (ans > i) {
                System.out.println("Нет, загадал чило меньше!");
            }
            else if (ans < i) {
                System.out.println("Нет, я загадал чило Больше!");
            }
        } while (!isEnd);
    }
}

Можно обойтись одним do while или while, с 1го взгляда сделал так... nextInt( ) от 0 до n - 1 число генерит =) так что если числа от 0 до 100 включая то некстИнт(101) и знак  >=100 добавить =)

Это сообщение отредактировал(а) toxx - 6.10.2011, 23:24
PM MAIL   Вверх
Derron
Дата 6.10.2011, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.9.2011

Репутация: нет
Всего: нет



Спасибо огромное, я изначально хотел что бы программа примерно так и выглядела, но не смог разобраться с  do-while, что бы работал как мне нужноsmile Буду иметь в своих закромах интересный примерsmile
PM MAIL   Вверх
Derron
Дата 7.10.2011, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.9.2011

Репутация: нет
Всего: нет



Помогите теперь придумать игрушку подобной сложности, но что бы там нужно было использовать массивы, хочу еще над ними поколдоватьsmile
PM MAIL   Вверх
GVCH
Дата 7.10.2011, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 29.9.2011

Репутация: нет
Всего: нет



Цитата(Derron @ 7.10.2011,  00:01)
Помогите теперь придумать игрушку подобной сложности, но что бы там нужно было использовать массивы, хочу еще над ними поколдоватьsmile

Легко.

Простая игра в слова.

Введите с консоли какоенибуть слова например WORLD
Далее переведите переменную типа стринг в массив
String s = "WORLD"
StringBuffer sb = new StringBuffer(s);
далее sb глядя по первым и последним символам вбивайте слова
ну и соответсвенно глядите за правилами игры.
Ну и например можно чтобы не повторялись слова тоже заносить их в массив и проверять не вводили ли такое раньше
единственное правило которое можно опустить ето проверять слово на правильность потомучто базы слов вам неоткудо пока достать =)
PM MAIL   Вверх
dorogoyIV
Дата 7.10.2011, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



на, повтори, сделай такую же...


Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  MAZ.JAR 126,42 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.