Роман: смысл в том, чтобы сделать генерацию ID средствами самой базы данных. А как, это уже зависит от деталей: или в триггере, или в процедуре, используя сиквенс, или используя автоинкрементные поля таблицы... Что лучше я не скажу, но миграция данных - это процесс единоразовый, поэтому ко времени не столь критичен. Гораздо важнее обеспечить быстродействие при непосредственной работе с таблицей.
Daniel Sunrise: Ну включите правило "30 минут". Если будете уделять любому делю по крайней мере 30 минут в день, то через пять лет вы будете в этом вопросе экспертом. Плохо, конечно, что нельзя будет консультироваться по вопросам с преподавателями (хотя у меня друг преподает информатику и ведет спецкурс по робототехнике), но, с другой стороны, никто вам не помешает окружить себя нужными людьми, посещать дополнительные курсы, ходить по различным выставкам? Правильный ответ: никто, кроме вас. Если вы хотите этим заниматься, то занимайтесь.
Учитесь по специальности. В свободное время занимайтесь тем, что вам нравится. Еще лучше будет, если вы найдете какой-нибудь кружок/спецкурс в своем университете. Плюс никто не мешает перевестись. Если у вас не бюджетное место, конечно же.
Да ничего сложного. Есть спрайт покемона. Есть картинка с камеры. Рисуем картинку, поверх спрайт. Через гироскопы вычисляем, где спрайт находится в пространстве.
Алексей: Сделайте три джоба в БД для каждого периода обновления и задайте им соответствующие интервалы. Только учтите, что если джоб не успеет отработать за 30 секунд (для данного интервала, например, отработает за 50 секунд), то время следующего запуска будет смещаться.
В тотализаторе главное хорошая математическая модель. Ну и безопасность, если будете на реальные деньги играть. Простенький тотализатор можно написать на любом языке. Достаточно знать html/css/javascript (для обработки на стороне клиента) и какой-нибудь серверный язык (C#, PHP, etc.). Можно прикрутить базу данных к этому делу. Все зависит от того, насколько это все должно быть хорошо реализовано и насколько это все должно быть поддерживаемо, масштабируемо и обновляемо.
public class Publisher : IPublisher
{
Dictionary> channels;
public Publisher()
{
channels = new Dictionary>();
}
public void Subscribe(ISubscriber subscriber, string channel)
{
if (channels.ContainsKey(channel))
{
bool exist = channels[channel].Any(item => item.IdSubscriber == subscriber.IdSubscriber);
if (!exist)
{
channels[channel].Add(subscriber);
}
else
{
throw new Exception(String.Format("Элемент {0} уже подписан на канал {1}!", subscriber.IdSubscriber, channel));
}
}
else
{
channels.Add(channel, new List() { subscriber });
}
}
public void Unsubscribe(ISubscriber subscriber, string channel)
{
if (channels.ContainsKey(channel))
{
bool exist = channels[channel].Any(item => item.IdSubscriber == subscriber.IdSubscriber);
if (exist)
{
channels[channel].Remove(subscriber);
}
else
{
throw new Exception(String.Format("Элемент {0} не подписан на канал {1}!", subscriber.IdSubscriber, channel));
}
}
else
{
throw new Exception(String.Format("Канал {0} не существует!", channel));
}
}
public void Publish(string channel)
{
if (channels.ContainsKey(channel))
{
foreach (var subscriber in channels[channel])
{
//Здесь нужно передавать делегат на обрабатывающую функцию.
subscriber.Update();
}
}
}
}
Даниил Басманов: У меня есть список объектов, каждый из которых содержит в себе список делегатов разных функций. Мне нужно посчитать сколько раз заложенная в делегат функция встречается в списке объектов... Как-то так...
AtomKrieg: Да, я очередной джун, коих вы, судя по количеству желчи в вашем комментарии, повидали немало. Написали жалобу? Ваше право. Но заходить в тему и в своем комментарии тыкать моськой автора в его невежество вместо того, чтобы дать дельный совет или просто пройти мимо... Даже не знаю. Не с той ноги утром встали?
Предположим, что у нас есть две карты с особенностью "усилить все карты, кроме себя, в одном ряду". При выкладывании этих карт на игровое поле в одну линию, каждая карта будет усилена. Однако когда я перемещаю одну карту на другую линию, то бонус теряется. Причем теряется у обеих карт. Как обойти такое без пересчета каждой карты?
numOnPage - количество записей на странице, TotalNum - порядковый номер записи в возвращаемом запросе. Например, у нас по пять вещей на странице (numOnPage = 5). Нам необходимо узнать на какой странице будет вещь "Х", имеющая порядковый номер 7 (TotalNum = 7). По формуле получим 1 + 7/5 = 1 + 1 = 2. Ответ: на второй странице.