private void grid_pc_CellClick(object sender, DataGridViewCellEventArgs e) { grid_pc.ClearSelection(); if (mode != Mode.PlayUser) { return; //если не наш ход } Статус status = sea_pc.Выстрел(new Точка(e.ColumnIndex, e.RowIndex)); switch (status) { case Статус.неизвестно: case Статус.мимо: mode = Mode.PlayComp; break; case Статус.ранил: case Статус.убил: mode = Mode.PlayUser; break; case Статус.победил: mode = Mode.Finish; WinUser(); break; } // while (mode == Mode.PlayComp) CompFight(); //стреляет комп }
public Статус Fight(out Точка target) { //do //{ // target = new Точка( // rand.Next(0, Море.размер_моря.x), // rand.Next(0, Море.размер_моря.y)); //} while (sea.КартаПопаданий(target) != Статус.неизвестно); if (modeDanger) { target = FightDanger(); } else { target = FightShapes(); } Статус status = sea.Выстрел(target); switch (status) { case Статус.мимо: map[target.x, target.y] = 1; break; case Статус.ранил: map[target.x, target.y] = 2; modeDanger = true; break; case Статус.убил: case Статус.победил: map[target.x, target.y] = 2; int len = markKilledShip(target); //если попали в корабль shipLength[len]--; //уменьшаем его длину modeDanger = false; break; } //return sea.Выстрел(target); return(status); }
private void CompFight() { Точка point; Статус status = mission.Fight(out point); switch (status) { case Статус.неизвестно: case Статус.мимо: mode = Mode.PlayUser; break; case Статус.ранил: case Статус.убил: mode = Mode.PlayComp; break; case Статус.победил: mode = Mode.Finish; WinComp(); break; } }
} //Протокол с ошибкой public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document23176( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Fld25582RRef ,_Fld25583RRef ,_Fld25586RRef ,_Fld25587RRef ,_Fld25588 ,_Fld25589 ,_Fld25590 ,_Fld25591 ,_Fld25592 ,_Fld25593 ,_Fld25594 ,_Fld25595 ,_Fld25596RRef ,_Fld25597) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@ЦиклОбмена ,@Тип ,@УчетнаяЗапись ,@Статус ,@Тема ,@ТекстПисьма ,@ИдентификаторСообщения ,@ДатаТранспорта ,@Важность ,@Кодировка ,@ОтКогоАдрес ,@ОтКогоПредставление ,@Основание ,@ПротоколСОшибкой)" ; } else { Команда.CommandText = @" Update _Document23176 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Fld25582RRef = @ЦиклОбмена ,_Fld25583RRef = @Тип ,_Fld25586RRef = @УчетнаяЗапись ,_Fld25587RRef = @Статус ,_Fld25588 = @Тема ,_Fld25589 = @ТекстПисьма ,_Fld25590 = @ИдентификаторСообщения ,_Fld25591 = @ДатаТранспорта ,_Fld25592 = @Важность ,_Fld25593 = @Кодировка ,_Fld25594 = @ОтКогоАдрес ,_Fld25595 = @ОтКогоПредставление ,_Fld25596RRef = @Основание ,_Fld25597 = @ПротоколСОшибкой Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Тип", Тип.Ключ()); Команда.Parameters.AddWithValue("Статус", Статус.Ключ()); Команда.Parameters.AddWithValue("Тема", Тема); Команда.Parameters.AddWithValue("ТекстПисьма", ТекстПисьма); Команда.Parameters.AddWithValue("ИдентификаторСообщения", ИдентификаторСообщения); Команда.Parameters.AddWithValue("ДатаТранспорта", ДатаТранспорта); Команда.Parameters.AddWithValue("Важность", Важность); Команда.Parameters.AddWithValue("Кодировка", Кодировка); Команда.Parameters.AddWithValue("ОтКогоАдрес", ОтКогоАдрес); Команда.Parameters.AddWithValue("ОтКогоПредставление", ОтКогоПредставление); Команда.Parameters.AddWithValue("Основание", Основание.Ссылка); Команда.Parameters.AddWithValue("ПротоколСОшибкой", ПротоколСОшибкой); Команда.ExecuteNonQuery(); } } }
public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference23118( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld23678RRef ,_Fld23679RRef ,_Fld23680RRef ,_Fld23683 ,_Fld23684 ,_Fld23685 ,_Fld23686 ,_Fld23687 ,_Fld23688) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@Тип ,@Статус ,@Организация ,@Содержание ,@ДатаСообщения ,@ДатаОтправки ,@Идентификатор ,@ИдентификаторОснования ,@Ретроконверсия)" ; } else { Команда.CommandText = @" Update _Reference23118 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld23678RRef = @Тип ,_Fld23679RRef = @Статус ,_Fld23680RRef = @Организация ,_Fld23683 = @Содержание ,_Fld23684 = @ДатаСообщения ,_Fld23685 = @ДатаОтправки ,_Fld23686 = @Идентификатор ,_Fld23687 = @ИдентификаторОснования ,_Fld23688 = @Ретроконверсия Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Код", Код); Команда.Parameters.AddWithValue("Наименование", Наименование); Команда.Parameters.AddWithValue("Тип", Тип.Ключ()); Команда.Parameters.AddWithValue("Статус", Статус.Ключ()); Команда.Parameters.AddWithValue("Организация", Организация.Ссылка); Команда.Parameters.AddWithValue("Содержание", Содержание); Команда.Parameters.AddWithValue("ДатаСообщения", ДатаСообщения); Команда.Parameters.AddWithValue("ДатаОтправки", ДатаОтправки); Команда.Parameters.AddWithValue("Идентификатор", Идентификатор); Команда.Parameters.AddWithValue("ИдентификаторОснования", ИдентификаторОснования); Команда.Parameters.AddWithValue("Ретроконверсия", етроконверсия); Команда.ExecuteNonQuery(); } } }
} //Номер основной поставки1с public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document23146( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld24224 ,_Fld24225RRef ,_Fld24226RRef ,_Fld24227RRef ,_Fld24229 ,_Fld24230 ,_Fld24231 ,_Fld24232 ,_Fld24233 ,_Fld24234 ,_Fld24235 ,_Fld24236 ,_Fld24237 ,_Fld24238 ,_Fld24239 ,_Fld24240 ,_Fld24241 ,_Fld24242 ,_Fld24243 ,_Fld24244 ,_Fld24245 ,_Fld24246 ,_Fld24247 ,_Fld24248RRef ,_Fld24249 ,_Fld24250 ,_Fld24251 ,_Fld24252 ,_Fld24253RRef ,_Fld24254RRef ,_Fld24255 ,_Fld24256 ,_Fld24257 ,_Fld24258RRef ,_Fld24259RRef ,_Fld24260 ,_Fld24261 ,_Fld24262 ,_Fld24263RRef ,_Fld24264 ,_Fld24265) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ИдентификаторДокументооборота ,@ТипЗаявления ,@Статус ,@УчетнаяЗапись ,@ИНН ,@КПП ,@ПолноеНаименование ,@КраткоеНаименование ,@ПризнакУполномоченногоПредставителя ,@ПризнакКрупнейшегоНалогоплательщика ,@ПризнакОбособленногоПодразделения ,@АдресЮридический ,@АдресФактический ,@РегНомерПФР ,@РегНомерФСС ,@ТелефонОсновной ,@ТелефонДополнительный ,@ЭлектроннаяПочта ,@ВладелецЭЦПФамилия ,@ВладелецЭЦПИмя ,@ВладелецЭЦПОтчество ,@ВладелецЭЦПДолжность ,@ВладелецЭЦППодразделение ,@ВладелецЭЦПВидДокумента ,@ВладелецЭЦПНомерДокумента ,@ВладелецЭЦПСерияДокумента ,@ВладелецЭЦПДатаВыдачиДокумента ,@ВладелецЭЦПКемВыданДокумент ,@ВладелецЭЦПТип ,@ТипКриптопровайдера ,@ПутьКонтейнерЗакрытогоКлюча ,@Комментарий ,@СтатусКомментарий ,@СпецоператорСвязи ,@Организация ,@ДатаОтправкиЗаявления ,@ДатаПолученияОтвета ,@ДатаСозданияУчетнойЗаписи ,@Ответственный ,@ДополнительныйКодФСС ,@НомерОсновнойПоставки1с)" ; } else { Команда.CommandText = @" Update _Document23146 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld24224 = @ИдентификаторДокументооборота ,_Fld24225RRef = @ТипЗаявления ,_Fld24226RRef = @Статус ,_Fld24227RRef = @УчетнаяЗапись ,_Fld24229 = @ИНН ,_Fld24230 = @КПП ,_Fld24231 = @ПолноеНаименование ,_Fld24232 = @КраткоеНаименование ,_Fld24233 = @ПризнакУполномоченногоПредставителя ,_Fld24234 = @ПризнакКрупнейшегоНалогоплательщика ,_Fld24235 = @ПризнакОбособленногоПодразделения ,_Fld24236 = @АдресЮридический ,_Fld24237 = @АдресФактический ,_Fld24238 = @РегНомерПФР ,_Fld24239 = @РегНомерФСС ,_Fld24240 = @ТелефонОсновной ,_Fld24241 = @ТелефонДополнительный ,_Fld24242 = @ЭлектроннаяПочта ,_Fld24243 = @ВладелецЭЦПФамилия ,_Fld24244 = @ВладелецЭЦПИмя ,_Fld24245 = @ВладелецЭЦПОтчество ,_Fld24246 = @ВладелецЭЦПДолжность ,_Fld24247 = @ВладелецЭЦППодразделение ,_Fld24248RRef = @ВладелецЭЦПВидДокумента ,_Fld24249 = @ВладелецЭЦПНомерДокумента ,_Fld24250 = @ВладелецЭЦПСерияДокумента ,_Fld24251 = @ВладелецЭЦПДатаВыдачиДокумента ,_Fld24252 = @ВладелецЭЦПКемВыданДокумент ,_Fld24253RRef = @ВладелецЭЦПТип ,_Fld24254RRef = @ТипКриптопровайдера ,_Fld24255 = @ПутьКонтейнерЗакрытогоКлюча ,_Fld24256 = @Комментарий ,_Fld24257 = @СтатусКомментарий ,_Fld24258RRef = @СпецоператорСвязи ,_Fld24259RRef = @Организация ,_Fld24260 = @ДатаОтправкиЗаявления ,_Fld24261 = @ДатаПолученияОтвета ,_Fld24262 = @ДатаСозданияУчетнойЗаписи ,_Fld24263RRef = @Ответственный ,_Fld24264 = @ДополнительныйКодФСС ,_Fld24265 = @НомерОсновнойПоставки1с Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Номер", Номер); Команда.Parameters.AddWithValue("ИдентификаторДокументооборота", ИдентификаторДокументооборота); Команда.Parameters.AddWithValue("ТипЗаявления", ТипЗаявления.Ключ()); Команда.Parameters.AddWithValue("Статус", Статус.Ключ()); Команда.Parameters.AddWithValue("ИНН", ИНН); Команда.Parameters.AddWithValue("КПП", КПП); Команда.Parameters.AddWithValue("ПолноеНаименование", ПолноеНаименование); Команда.Parameters.AddWithValue("КраткоеНаименование", КраткоеНаименование); Команда.Parameters.AddWithValue("ПризнакУполномоченногоПредставителя", ПризнакУполномоченногоПредставителя); Команда.Parameters.AddWithValue("ПризнакКрупнейшегоНалогоплательщика", ПризнакКрупнейшегоНалогоплательщика); Команда.Parameters.AddWithValue("ПризнакОбособленногоПодразделения", ПризнакОбособленногоПодразделения); Команда.Parameters.AddWithValue("АдресЮридический", АдресЮридический); Команда.Parameters.AddWithValue("АдресФактический", АдресФактический); Команда.Parameters.AddWithValue("РегНомерПФР", егНомерПФР); Команда.Parameters.AddWithValue("РегНомерФСС", егНомерФСС); Команда.Parameters.AddWithValue("ТелефонОсновной", ТелефонОсновной); Команда.Parameters.AddWithValue("ТелефонДополнительный", ТелефонДополнительный); Команда.Parameters.AddWithValue("ЭлектроннаяПочта", ЭлектроннаяПочта); Команда.Parameters.AddWithValue("ВладелецЭЦПФамилия", ВладелецЭЦПФамилия); Команда.Parameters.AddWithValue("ВладелецЭЦПИмя", ВладелецЭЦПИмя); Команда.Parameters.AddWithValue("ВладелецЭЦПОтчество", ВладелецЭЦПОтчество); Команда.Parameters.AddWithValue("ВладелецЭЦПДолжность", ВладелецЭЦПДолжность); Команда.Parameters.AddWithValue("ВладелецЭЦППодразделение", ВладелецЭЦППодразделение); Команда.Parameters.AddWithValue("ВладелецЭЦПНомерДокумента", ВладелецЭЦПНомерДокумента); Команда.Parameters.AddWithValue("ВладелецЭЦПСерияДокумента", ВладелецЭЦПСерияДокумента); Команда.Parameters.AddWithValue("ВладелецЭЦПДатаВыдачиДокумента", ВладелецЭЦПДатаВыдачиДокумента); Команда.Parameters.AddWithValue("ВладелецЭЦПКемВыданДокумент", ВладелецЭЦПКемВыданДокумент); Команда.Parameters.AddWithValue("ВладелецЭЦПТип", ВладелецЭЦПТип.Ключ()); Команда.Parameters.AddWithValue("ТипКриптопровайдера", ТипКриптопровайдера.Ключ()); Команда.Parameters.AddWithValue("ПутьКонтейнерЗакрытогоКлюча", ПутьКонтейнерЗакрытогоКлюча); Команда.Parameters.AddWithValue("Комментарий", Комментарий); Команда.Parameters.AddWithValue("СтатусКомментарий", СтатусКомментарий); Команда.Parameters.AddWithValue("СпецоператорСвязи", СпецоператорСвязи.Ключ()); Команда.Parameters.AddWithValue("ДатаОтправкиЗаявления", ДатаОтправкиЗаявления); Команда.Parameters.AddWithValue("ДатаПолученияОтвета", ДатаПолученияОтвета); Команда.Parameters.AddWithValue("ДатаСозданияУчетнойЗаписи", ДатаСозданияУчетнойЗаписи); Команда.Parameters.AddWithValue("ДополнительныйКодФСС", ДополнительныйКодФСС); Команда.Parameters.AddWithValue("НомерОсновнойПоставки1с", НомерОсновнойПоставки1с); Команда.ExecuteNonQuery(); } } }
private void ShowPcFight(Точка place, Статус status) { //ShowFight(grid_pc, place, status); GridComp.ShowFight(place, status); }
private void ShowUserFight(Точка place, Статус status) { //ShowFight(grid_user, place, status); GridUser.ShowFight(place, status); }