Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Распределение команд в Walls (Java Help)

proficus

Старожил
Пользователь
Баллы
103
Добрый вечер народ связался с такой небольшой проблемой в плане распределения команд в игре валлс.Как он распределяет
wutCO4kl5I4.jpg

Как мне нужно чтобы он распределял
RIAtSNcpkn8.jpg

(Рисовал в паинте)
Суть заключается в том что каждый игрок,нажавший кнопку кидался в следующую по цвету команду,а мне надо чтобы допустим сначала красные,потом синие,потом зеленые и желтые
http://yadi.sk/d/Vx1soY228-8v0 - Ссылка на файл
Название файла SignWall.java
В общем вот что было
Код:
while (itr2.hasNext()){
            Player player = itr2.next();
            if (this.progress.equalsIgnoreCase("started")){
                if (players.get(player) == "red"){
                    Sign sign  = (Sign) this.signLocations.get(red + 3).getBlock().getState();
                    sign.setLine(0, ChatColor.DARK_RED + player.getName());
                    sign.update();
                    red++;
                }
                else if (players.get(player) == "blue"){
                    Sign sign  = (Sign) this.signLocations.get(blue + 3).getBlock().getState();
                    sign.setLine(1, ChatColor.DARK_BLUE + player.getName());
                    sign.update();
                    blue++;
                }
                else if (players.get(player) == "green"){
                    Sign sign  = (Sign) this.signLocations.get(green + 3).getBlock().getState();
                    sign.setLine(2, ChatColor.DARK_GREEN + player.getName());
                    sign.update();
                    green++;
                }
                else if (players.get(player) == "yellow"){
                    Sign sign  = (Sign) this.signLocations.get(yellow + 3).getBlock().getState();
                    sign.setLine(3, ChatColor.YELLOW + player.getName());
                    sign.update();
                    yellow++;
                }
            }
            else {
                Sign sign = (Sign) this.signLocations.get(red + 3).getBlock().getState();
                sign.setLine(blue, player.getName() + "");
                if (blue == 3){
                    blue = 0;
                    red++;
                }
                else {
                    blue++;
                }
                sign.update();
            }
        }
212 строка

Код:
while (itr2.hasNext()){
            Player player = itr2.next();
            if (this.progress.equalsIgnoreCase("started")){
            if (red<3){
                    Sign sign  = (Sign) this.signLocations.get(red + 3).getBlock().getState();
                    sign.setLine(0, ChatColor.DARK_RED + player.getName());
                    sign.update();
                    red++;
                }
                    else if (blue<3){
                    Sign sign  = (Sign) this.signLocations.get(blue + 3).getBlock().getState();
                    sign.setLine(1, ChatColor.DARK_BLUE + player.getName());
                    sign.update();
                    blue++;
                }
                else if (green<3){
                    Sign sign  = (Sign) this.signLocations.get(green + 3).getBlock().getState();
                    sign.setLine(2, ChatColor.DARK_GREEN + player.getName());
                    sign.update();
                    green++;
                }
                else if (yellow<3){
                    Sign sign  = (Sign) this.signLocations.get(yellow + 3).getBlock().getState();
                    sign.setLine(3, ChatColor.YELLOW + player.getName());
                    sign.update();
                    yellow++;
                }
            }
            else {
                Sign sign = (Sign) this.signLocations.get(red + 3).getBlock().getState();
                sign.setLine(blue, player.getName() + "");
                if (blue == 3){
                    blue = 0;
                    red++;
                }
                else {
                    blue++;
                }
                sign.update();
            }
        }
Вот что я сделал,но ничего к сожалению не вышло и просто статус игры был "Restarting"
Много конечно описал,но думаю чтобы было понятно
Буду благодарен тому человеку,кто сможет помочь решить мою проблему
 
Обычный алгоритм для поиска минимального значения - ищешь команду, в которой меньше человек и закидываешь туда человечка.
Это самое элементарное, а не то убожество с условиями, что написано выше.
 
Это предположения были.Ну напиши если можешь,как правильно,ибо я не допираю чё то,несколько вариантов попробовал а оно не алё
 
Это предположения были.Ну напиши если можешь,как правильно,ибо я не допираю чё то,несколько вариантов попробовал а оно не алё

Банальный алгоритм нахождения наименьшего элемента из нескольких, если ты такое не можешь сделать сам, то это очень плохо. Это самые элементарные основы.
 
Вот это гк.... А ведь определение минимального значения это 3 строки, в некоторых случаях чуть больше...
 

Поделиться этой страницей

Назад
Верх