- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
package islands.general.playerlist;
import islands.general.player.Player;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Список игроков.
*
* @author Григорий
*/
public class PlayerList implements Externalizable, Iterable<Player> {
private static final long serialVersionUID = -8237639142683577971L;
private static final Player[] emptyPlayerArray = new Player[0];
private List<Player> list;
private int maxIndex;
public PlayerList() {
this(emptyPlayerArray);
}
public PlayerList(Player... players) {
list = new ArrayList<Player>();
maxIndex = 0;
for (int i = 0; i < players.length; i++) {
Player player = players[i];
add(player);
}
}
/**
* Добавить нового игрока в конец списка.
*
* @param player новый игрок
* @return индекс нового игрока
*/
public final int add(Player player) {
list.add(maxIndex, player);
return maxIndex++;
}
/**
* Установить нового игрока по указанному индексу.
*
* @param index индекс для установки
* @param player новый игрок
*/
public void set(int index, Player player) {
list.set(index, player);
}
/**
* Возвратить количество игроков.
*
* @return количество игроков
*/
public int getLength() {
return maxIndex;
}
/**
* Возвратить игрока по указанному индексу.
*
* @param index индекс игрока
* @return игрок
*/
public Player get(int index) {
return list.get(index);
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeInt(maxIndex);
for (int i = 0; i < maxIndex; i++) {
list.get(i).writeExternal(out);
}
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
maxIndex = in.readInt();
for (int i = 0; i < maxIndex; i++) {
Player player = new Player();
player.readExternal(in);
list.add(player);
}
}
@Override
public Iterator<Player> iterator() {
return list.iterator();
}
}
scriptin 27.05.2013 23:03 # −1
И еще мне кажется, что конструктор много лишних движений делает.
Dougrinch 27.05.2013 23:26 # 0
1. если честно, то для чего был создан класс уже не помню, т.к. чтение/запись есть всего в паре мест...так что можно было бы хранить непосредственно List<Player> где надо
2. вроде, это была крайне странная попытка инкапсулировать List<Player>
Lure Of Chaos 28.05.2013 07:56 # +3
Lowezar 28.05.2013 13:40 # +7
"В Кривом побережье зеленый дуб,
Золотой кругооборот на объеме дуба"...
Dougrinch 28.05.2013 14:48 # −1
defecate-plusplus 28.05.2013 14:58 # +2
и да, все-все-все исходники в utf-8?
Dougrinch 28.05.2013 15:06 # +1
2. по поводу будущего у нас в команде разные мнения...лично мое в том что такое крайне маловероятно и не стоит ради этого портить текущие комментарии (естественно, я говорю не про данный гк, а про те немногие места, где комментарии действительно нужны)
defecate-plusplus 28.05.2013 15:14 # 0
комменты в нашем коде изначально и строго английские, пусть корявые, но тем не менее
как и названия переменных - нет никаких shchetchik'ов, ломающих неокрепшие мозги
vistefan 28.05.2013 15:31 # +2
Я так люблю переключать раскладку
Я так люблю переключать раскладку
Dougrinch 28.05.2013 15:32 # −6
eth0 28.05.2013 17:02 # +2
roman-kashitsyn 28.05.2013 15:22 # +2
Правду не спрячешь - текст, относящийся к программированию, при прочих равных короче и яснее, если он на английском. Зато русский отлично подходит для поэзии.
Да, не все коллеги поддерживают моё мнение по этому поводу, только самые опытные.
Наш тимлид, кстати, фанат Source Inside, который не может в utf-8 (древняя версия у него).
tir 28.05.2013 16:27 # +1
> Хоть finded и readed и режут глаза, уж лучше так, что коверкать русский англицизмами
Т. е. лучше коверкать английский язык? :) У всех разный уровень английского. Два человека могут прочитать одну и туже фразу и абсолютно по разному ее перевести. Пример, guy - для кого-то приятель, а для кого-то ...; busket - для кого-то корзина, а для кого-то хер пойми что.
> Да, не все коллеги поддерживают моё мнение по этому поводу, только самые опытные.
"только самые опытные" - типа, кто пишет на родном языке лошок? ;)
defecate-plusplus 28.05.2013 16:40 # +3
если у кого плохой уровень английского настолько, что не может выразить обезличенной фразой из 3-5 слов, что делает его непонятный код, то 1) он не сможет прочитать и понять ничего в инете, даже в msdn с его simple english, т.е. его уровень как программиста крайне низок, 2) код, который обязан быть самодокументированным, уже представляет собой адскую кашу из nom_tsikl и nomer_polubloka (и мне, блять, доводилось такое видеть!), что будет крайне мерзко
какой вывод можно сделать? - либо человек ошибся с профессией, либо человеку есть куда и зачем прогрессировать, знание английского хотя бы на среднем уровне еще никому не вредило
! но кстати, есть же 1с
tir 28.05.2013 21:14 # 0
Про то, что надо прогрессировать - соглашусь.
vistefan 28.05.2013 16:41 # +3
tir 28.05.2013 21:14 # −2
vistefan 29.05.2013 13:40 # 0
tir 29.05.2013 13:46 # 0
Вот и не пойму: это возрастная особенность или нет?
inkanus-gray 29.05.2013 15:28 # 0
Lowezar 29.05.2013 19:47 # +1
inkanus-gray 29.05.2013 22:11 # 0
defecate-plusplus 29.05.2013 22:59 # +5
если кто учил раньше немецкий, монгольский или финский, те ходили в "начинающие" группы по английскому, кто был более уверен в своих силах - в "продолжающие"
экзамен (он же шёл в госы, насколько я помню), также отличался сложностью для разных выбранных уровней
roman-kashitsyn 29.05.2013 23:32 # +2
defecate-plusplus 29.05.2013 23:37 # 0
хотя в том же церн'е да, английский основной рабочий
roman-kashitsyn 29.05.2013 23:41 # 0
eth0 30.05.2013 17:54 # +1
defecate-plusplus 30.05.2013 18:07 # +2
группа в ~25-30 человек (1-2 курс же еще) всё равно делится пополам
если большинство, например, запишут себя в начинающие, то занятия в обеих будут проводиться по программе начинающих, преподам в целом всё равно как раз в неделю проводить занятия
вроде бы для особо желающих факультативно кафедра английского проводила "углубленные" (читай, полезные) занятия - не помню, бесплатно или нет - но я туда почему-то не ходил, на первых 2 курсах хватало физики с матаном, чтобы ебануться
Lowezar 28.05.2013 21:56 # 0
serpinski 28.05.2013 13:48 # +7
Аминь.