"Восьмяшки"

Салют, друзья!

Пару дней назад я подумал, что одним чтением лекций и решением типовых задач сыт не будешь. Во всяком случае, полученные знания нужно не просто отрабатывать на «кошках», но и куда-то направлять.

Конечно же, мне захотелось сделать игру ^_^.
Немного поразмыслив, нашёл наиболее доступной тему двумерных массивов («Пятнашки», 2048, Тетрис, да хоть змейку запускай!).

Восьмяшки, Console

Остановился на «Пятнашках» (благо, вырос на этой игре. Знаю, что и как там работает).
В общем, решение принято, код начал писаться. Перво-наперво всё опробовал в консоли. Поле 2х2 собирать для теста, конечно же, не комильфо. Слишком часто выпадают тупиковые комбинации. А вот 3х3 уже приятнее (кстати, именно из-за размеров поля было принято название игры). В процессе столкнулся с потоками (Наконец-то! Мы столкнулись лицом к лицу с врагом. Оказывается, их можно укротить и научить работать тебе на благо. Я счастлив)).

Работа с библиотекой SWING

Чуть позже просмотрел возможности библиотеки SWING и успешно облачил игру в какой-ни какой интерфейс.
Теперь в игре доступен выбор поля. Тест показал, что игра без проблем обрабатывает все ошибки. А при работе с полем 3х3 даёт 100% ответ на вопрос «Решается ли задача?».

К сожалению, примера кода под рукой не было. Пришлось всю логику писать самому. Возможно наличие велосипедов (если таковые есть, тыкните меня в них носом, пожалуйста).
Так же у меня огромные вопросы по чистоте и удобочитаемости кода. Очень хочется, чтобы меня если и не благодарили за чистый код, то уж точно не проклинали за мусор)))
И конечно же — наличие комментариев — где их не хватает?

Если у вас есть рекомендации/пожелания по коду — дайте знать. Если вы хотите присоединиться к проекту — дайте знать.

С удовольствием объединюсь с кем-нибудь для работы над этим и другими проектами.

ссылка на GitHub
  • ,

Как не заглядывать в решенные задачи(help.javarush)?

Вообщем много заглядываю в Help Javarush, и смотрю решение задач, потому что во многих задачах в условии дается то чего нет в лекциях, даже бывает в поисковиках тяжело найти. Как с этим бороться?)

18 Уровень дается мне очень тяжко уже 2 задача а я решить не могу подскажите что не так

18 Уровень дается мне очень тяжко уже 2 задача а я решить не могу подскажите что не так

package com.javarush.test.level18.lesson10.home09;

/* Файлы и исключения
Читайте с консоли имена файлов
Если файла не существует (передано неправильное имя файла), то
перехватить исключение FileNotFoundException,
вывести в консоль переданное неправильное имя файла и
завершить работу программы.
Закрыть потоки. Не использовать try-with-resources
Не используйте System.exit();
*/

import java.io.*;

public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        FileReader fileInputStream =null;
        try{
            while (true){
                fileInputStream = new FileReader(reader.readLine());
            }
        }catch (FileNotFoundException e){
            System.out.println("передано неправильное имя файла");
            fileInputStream.close();
            return;
        }
        finally
        {  reader.close();
        }


    }

    }

  • ,

package com.javarush.test.level09.lesson11.home04 HELP

package com.javarush.test.level09.lesson11.home04;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/* Конвертер дат
Ввести с клавиатуры дату в формате «08/18/2013»
Вывести на экран эту дату в виде «AUG 18, 2013».
Воспользоваться объектом Date и SimpleDateFormat.
*/

public class Solution {
    public static void main(String[] args) throws Exception {
       SimpleDateFormat date=new SimpleDateFormat("MM/dd/yyyy");
        System.out.println(date.format(new Date()));


       SimpleDateFormat newDateFormat=new SimpleDateFormat("MMM ", Locale.ENGLISH);
       SimpleDateFormat DateFormat= new SimpleDateFormat("dd, yyyy");
        System.out.print(newDateFormat.format(new Date()).toUpperCase()+DateFormat.format(new Date()));
    }
}

выводит в консоль в нужном виде:
01/13/2016
JAN 13, 2016
но сервер не принимает задачу.HELP
  • ,

package com.javarush.test.level05.lesson12.bonus03;

/* Задача по алгоритмам
Написать программу, которая:
1. вводит с консоли число N > 0
2. потом вводит N чисел с консоли
3. выводит на экран максимальное из введенных N чисел.
*/


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum = 0;

        System.out.println("<<Введите число больше чем 0>>");
        int max = Integer.parseInt(reader.readLine());
        if ( max > 0)
        {
            System.out.println("<<Введите " + max + " чисел/числа/число)>>");
            int[] list = new int[max];
            for (int z = 0; z < max; z++)
        {
            String s = reader.readLine();
            list[z] = Integer.parseInt(s);
        }
            Arrays.sort(list);
            maximum=list[list.length-1];
        System.out.println(maximum);
        }
        //если число <0 закончить работу
    else System.exit(0);
    }
}


работает правильно, сервер не принимает, уже долго весит нерешенная, убирал if/else все равно не принимает.help
  • ,

level18.lesson08.task03 что значит "Все методы оборачиваемого объекта"? Может кто-нибудь пояснить плиз?

Задачу сдал, код отработал, просто перопределены были далеко не все методы FileOutputStream-а.

/* AmigoOutputStream
1 Измените класс AmigoOutputStream так, чтобы он стал Wrapper-ом для класса FileOutputStream. Используйте наследование.
2 При вызове метода close() должны выполняться следующая последовательность действий:
2.1 вызвать метод flush()
2.2 дописать следующий текст [JavaRush © 2012-2013 All rights reserved.], используйте метод getBytes()
2.3 закрыть поток методом close()
*/

}
  • ,

Помогите, нужна мотивация!

Друзья, нужна мотивация!


Я сейчас на 17 уровне и после начала многонитиевости у меня пошли большие проблемы с учебой. Задания стали не только сложные, но и некоторые вообще не понятные для меня. Читаю комментарии, пишут что дальше будет еще сложнее. И как-то становится страшно…

Вот и я хочу узнать рецепт как сэтим справляться)
Может читать больше дополнитльной литературы, может как-то правильно уделять время.
Дело в том, что я занимаюсь по 4 часа в день с понедельника по пятницу. и Иногда читаю Шилдта. Раньше этого хватало, чтобы уверенно идти к завершению курса, но сейчас все поменялось.
Теорию я по смыслу понимаю, а вот когда дело доходит до задач по этой теме — начинаются проблемы. у меня уже «висит» пару десятков задач не решенных и смотря на другие я понимаю, что список пополниться и ими.

подскажите что мне делать)



См. также мои другие статьи:
История успеха спустя 1.5 года от начала обучения
Технические вопросы на собеседовании.
Как найти работу? Рассылка резюме
Профессиональное выгорание. Как устоять?
Английский для IT и для собеседования
Паттерн Command своими словами.
Паттерн Singleton своими словами.
Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA
Помогите, нужна мотивация!

Мои опросы:
На каком уровне устроились на первую работу?

Подписывайтесь на мой блог Паттерны Проектирования пишите в нем статьи!

Выбор файлов по маске. Проблема с русской кодировкой

Решил написать программу на Java, которая должна отбирать файлы по маске и копировать их в специальную папку(путь заранее известен). Однако столкнулся с трудностями.
Читаю файл, смотрю является ли он директорией, если да то начинаю смотреть его внутреннюю структуру, если нет, проверяю удовлетворяет ли он моей маске.
.indexOf — метод который проверяет входит ли маска в имя директории или файла.
Когда тестировал на каталогах с файлами и папками названными на английском языке — проблем не было, однако когда перешел на русские — возникли проблемы. Считывая название файла(на русском) компьютер выпадает что-то вроде:
«DirList=” Єг«мвҐв ЎЁ§­Ґб  Ё ¬Ґ­Ґ¤¦¬Ґ­в 
DirList=” Єг«мвҐв Јг¬ ­Ёв а­ле ­ гЄ
DirList=Programmnew
DirList=Њ®ЎЁ«м­®бвм а Ў®в­ЁЄ®ў
DirList=Њ®ЎЁ«м­®бвм бв㤥­в®ў»

Вопрос, как это можно решить?
  • ,

Вопросы по задачам

Уважаемые джаварашовцы!
Напоминаем, что для различного вида вопросов у нас есть отдельный сервис.
На этом же сайте предполагается обсуждение, постинг различных статей и переводов.
Постарайтесь не задавать вопросы по вашим неудачным решениям задач на этом сайте.


Особенно это касается тех, кто при регистрации не читает ни faq, ни стартовые сообщения, и продолжают создавать сотни топиков где можно и нельзя.

Ошибка при компиляции на сервере level05.lesson05.task04

Всем привет! Который раз уже пытаюсь отправить задачу на проверку, а мне приходит одно и тоже «Программа не компилириуется на сервере». Хотя в IDEA все компилируется.

package com.javarush.test.level05.lesson05.task04;

/* Создать три объекта типа Cat
В методе main создать три объекта типа Cat и заполнить их данными.
Использовать класс Cat из первой задачи. Класс Cat создавать не надо.
*/

import com.javarush.test.level05.lesson05.task01.Cat;

public class Solution {
    public static void main(String[] args) {
        //add your code here
        Cat cat1 = new Cat("Keks", 5, 5, 1000);
        Cat cat2 = new Cat("Maks", 6, 5, 666);
        Cat cat3 = new Cat("Vaska", 2, 7, 3000);




    }

    public static class Cat {

        public static int count = 0;
        private String name;
        private int age;
        private int weight;
        private int strength;

        public  Cat(String name, int age, int weight, int strength) {
            count++;

            this.name = name;
            this.age = age;
            this.weight = weight;
            this.strength = strength;
        }
    }
}