AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.12.2008, 13:32   #21  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Poleax Посмотреть сообщение
Это версия для 3 и 4?
Сорри. Самое главное забыл написать.
Это для Ax 3.0.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
За это сообщение автора поблагодарили: Poleax (2).
Старый 26.12.2008, 16:08   #22  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
miklenew
Пора для Ax 2009 делать, тады с меня ПИВО! То что я видел, мне понравилось!
Старый 29.12.2008, 10:27   #23  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
1. я так понял, сообщение про мат только одному игроку выдается? надо бы обоих поздравлять
2. пат вообще молчком происходит, хотя тоже финальный результат и надо бы всех порадовать.
3. для защиты от шаха можно закрыться какой-нибудь фигурой, но ничто не запрещает следующим ходом ее убрать, открыв короля на съедение.

---
Когда аксапта сможет сама играть?
Старый 29.12.2008, 14:33   #24  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Пешка -> Фигура
Добавлю своих 5 копеек:

По достижению пешкой 8-ой (для черных 1-ой) горизонтали она 'молча' (автоматически) превращается в ферзя (по правилам шахмат игрок определяет какую фигуру он выставляет на доску - не обязательно это должен быть ферзь) - в этом месте надо бы спросить у игрока в диалоговой форме какую фигуру он хочет выставить на доску: слона, коня, ладью или ферзя.

Как вариант ввести настройку: "Автоматическое превращение пешки в ферзя" при которой диалог не будет вызываться.
Старый 29.12.2008, 17:36   #25  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Взятие пешки на проходе
Цитата:
Сообщение от miklenew Посмотреть сообщение
Цитата:
Сообщение от Wamr Посмотреть сообщение
1. Возможен ход пешкой через битое поле без каких-либо последствий
Да взятие пешки на проходе. Есть такое. Сделал.
Интересный побочный эффект текущей реализации взятия пешки на проходе.
Classes\ChessItem\move():
X++:
//ход фигуры
boolean move(ChessMoveId _moveTo)
{
        ...
        pawnOnMove = this.checkCutPawnOnMove(_moveTo);
        if(pawnOnMove)
            if (typeFigure == ChessTypeFigure::Pawn || Box::yesNo("Вы можете взять пешку на проходе. Взять?" ,DialogButton::No) == DialogButton::Yes)
                if(this.cutPawnOnMove(_moveTo, pawnOnMove))
                    return true;
        ...
Порядок ходов партии:
1. Kg1-f3 d7-d5
2. Kf3-d4 e7-e5
При попытке хода конем с d4 на e6 получаем неожиданное предложение "Вы можете взять пешку на проходе. Взять?" - Да, и берём конем пешку на e5.
Миниатюры
Нажмите на изображение для увеличения
Название: chess.JPG
Просмотров: 457
Размер:	107.3 Кб
ID:	4118  
За это сообщение автора поблагодарили: miklenew (5).
Старый 29.12.2008, 21:14   #26  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Poleax Посмотреть сообщение
miklenew
Пора для Ax 2009 делать, тады с меня ПИВО! То что я видел, мне понравилось!
Думаю не скоро на 4-ку ключи нормальные никак не найду.
На английской версии сижу.
А ты говоришь 2009.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 29.12.2008, 21:34   #27  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от Wamr Посмотреть сообщение
1. я так понял, сообщение про мат только одному игроку выдается? надо бы обоих поздравлять
Не знаю.
Поидее кто делает шах, мат он то знает.
А тут какая-то штука будет вылетать.
Подумаю ещё.
Цитата:
Сообщение от Wamr Посмотреть сообщение
2. пат вообще молчком происходит, хотя тоже финальный результат и надо бы всех порадовать.
Сделал.
Цитата:
Сообщение от Wamr Посмотреть сообщение
3. для защиты от шаха можно закрыться какой-нибудь фигурой, но ничто не запрещает следующим ходом ее убрать, открыв короля на съедение.
Исправил.
Цитата:
Сообщение от Wamr Посмотреть сообщение
Когда аксапта сможет сама играть?
Не знаю надо мат часть почитать, как такие системы делают.
Скорее всего окажется выборка случайного значения из уже забитой базы.
А базу эту забивать время много надо.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 29.12.2008, 21:36   #28  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от petergunn Посмотреть сообщение
По достижению пешкой 8-ой (для черных 1-ой) горизонтали она 'молча' (автоматически) превращается в ферзя (по правилам шахмат игрок определяет какую фигуру он выставляет на доску - не обязательно это должен быть ферзь) - в этом месте надо бы спросить у игрока в диалоговой форме какую фигуру он хочет выставить на доску: слона, коня, ладью или ферзя.
Спасибо. Исправил.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 29.12.2008, 21:37   #29  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от petergunn Посмотреть сообщение
Интересный побочный эффект текущей реализации взятия пешки на проходе.
и берём конем пешку на e5.
Исправил.
Выкладываю обновление.
Файл с картинками chess_res.rar остался прежний.
Пару раз замечал, что доска у чёрных не переворачивается.
Но воспроизвести снова никак не получается.
Мож кто случайно сможет зафиксировать это, сообщите пожалуйста.
Вложения
Тип файла: rar chess 1.0 SP4. Build ING on 29.12.2008.rar (19.4 Кб, 87 просмотров)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.

Последний раз редактировалось miklenew; 29.12.2008 в 21:46.
Старый 30.12.2008, 10:24   #30  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
SP4 (29.12.2008)
Цитата:
Сообщение от miklenew Посмотреть сообщение
Цитата:
Сообщение от petergunn
... надо бы спросить у игрока в диалоговой форме какую фигуру он хочет выставить на доску: слона, коня, ладью или ферзя.
Спасибо. Исправил.
Если при выборе фигуры выставляемой на доску закрыть окно выбора по [x], то получим ошибку: "Метод 'ChessItem.label' должен быть перекрыт.". (т.к. переменная typeFigureNew получает значение ChessTypeFigure::Empty и далее создается экземпляр класса СhessItem)

Взятие пешки на проходе
Цитата:
Сообщение от miklenew Посмотреть сообщение
Цитата:
Сообщение от petergunn
Интересный побочный эффект текущей реализации взятия пешки на проходе.
и берём конем пешку на e5.
Исправил.
Выкладываю обновление.
Classes\ChessItem\move():
X++:
    ...
    if(typeFigure != ChessTypeFigure::Knight)
    {
        pawnOnMove = this.checkCutPawnOnMove(_moveTo);
        if(pawnOnMove)
            if (typeFigure == ChessTypeFigure::Pawn || Box::yesNo("Вы можете взять пешку на проходе. Взять?" ,DialogButton::No) == DialogButton::Yes)
                if(this.cutPawnOnMove(_moveTo, pawnOnMove))
        	    return true;
    }
    ...
Не, тут дело не в специфике фигуры коня. При текущей реализации пример на ту же тему но уже со слоном:
1. e2-e4 d7-d6
2.Cf1-c4 e7-e5
И при попытке хода слоном с c4 на e6 получается та же картина с диалогом и взятием пешки на e5 (см. картинку во вложении).

Тут дело в порядке проверки условий взятия на проходе - Вы сначала анализируете есть ли взятие на проходе и только потом смотрите что это за фигура. По правилам взять на проходе может только пешка - поэтому условие на проверку фигуры нужно поднять выше проверки взятия на проходе.

Если не возражаете, предложу такой вариант реализации кода:
X++:
    ...
    if( typeFigure == ChessTypeFigure::Pawn )
    {
        pawnOnMove = this.checkCutPawnOnMove(_moveTo);
        if( pawnOnMove )
        {
            if( Box::yesNo("Вы можете взять пешку на проходе. Взять?" ,DialogButton::No) == DialogButton::No )
            	return false ;

            if( this.cutPawnOnMove(_moveTo, pawnOnMove))
            	return true;
        }
    }
Миниатюры
Нажмите на изображение для увеличения
Название: chess_bishop.JPG
Просмотров: 535
Размер:	51.8 Кб
ID:	4121  
Старый 30.12.2008, 10:42   #31  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от petergunn Посмотреть сообщение
Если при выборе фигуры выставляемой на доску закрыть окно выбора по [x], то получим ошибку: "Метод 'ChessItem.label' должен быть перекрыт.". (т.к. переменная typeFigureNew получает значение ChessTypeFigure::Empty и далее создается экземпляр класса СhessItem)
Хулиганство всё это.
Ну да ладно попозже поставлю защиту.
Цитата:
Сообщение от petergunn Посмотреть сообщение
Взятие пешки на проходе
Не, тут дело не в специфике фигуры коня. При текущей реализации пример на ту же тему но уже со слоном:
Да, подзабыл я правила.
Надо было бы прочесть и саму что там по F1.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 30.12.2008, 17:34   #32  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вот с последними исправлениями.
Файл с картинками chess_res.rar остался прежний.
Вложения
Тип файла: rar chess 1.0 SP5. Build ING on 30.12.2008.rar (19.3 Кб, 80 просмотров)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 20.01.2009, 18:44   #33  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
SP5
a. Порядок ходов в партии:
1. g2-g3 h7-h6
2. Cf1-g2 h6-h5
3. b2-b4 g7-g6
4. b4-b5 c7-c5
5. b5:c6 a7-a6
При попытке взять пешку c6:d7 выскакивает infolog с текстом "Ошибка: Метод 'ChessItem.calcMoves' должен быть перекрыт."

b. Есть возможность сделать 2 хода в ситуации выбора фигуры при достижении последней горизонтали. (продолжая порядок ходов)
6. с6:b7 Kb8-c6
пытаемся взять пешкой b7 ладью черных на a8 - появляется окно с предложением выбрать фигуру. Не закрывая окна выбора возвращаемся к доске и делаем взятие слоном:
7.Cg2:c6
после этого в окне выбора фигур выбираем ферзя
8. b7:a8Ф
UPD: Картинка с конечной позицией на доске во вложении.

c. Не фиксируется ничейный результат после 3-кратного повторения позиции на доске.
d. В текущей реализации нотации партии двойной шах отображается как '+' (в печатных изданиях двойной шах обозначают '++' )
Миниатюры
Нажмите на изображение для увеличения
Название: 2move.JPG
Просмотров: 598
Размер:	55.9 Кб
ID:	4187  
Вложения
Тип файла: zip 2move.zip (136.0 Кб, 72 просмотров)

Последний раз редактировалось petergunn; 20.01.2009 в 18:52. Причина: добавлена картинка
Старый 25.01.2009, 22:53   #34  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от petergunn Посмотреть сообщение
Не фиксируется ничейный результат после 3-кратного повторения позиции на доске.
А повторения 3-x кратные должны быть и у черных и у белых одновременно?
Или только у одних достаточно.
А то уже не помню. Редкая ситуация.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 26.01.2009, 06:26   #35  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
И как записывается ничья? Так же как пат?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 27.01.2009, 08:20   #36  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от miklenew Посмотреть сообщение
А повторения 3-x кратные должны быть и у черных и у белых одновременно?
Или только у одних достаточно.
Могу ошибаться, но 3-х кратное повторение позиции фиксируется с учетом положения всех фигур (белых и черных) за некоторым исключением - позиции при которых было утеряно право взятия на проходе или возможность рокировки считаются различными.

Вот что нашел в правилах:
Цитата:
Троекратное повторение одной и той же позиции (не обязательно в течение трёх ходов подряд), причём в понятие позиции здесь входит расположение фигур, очерёдность хода и возможные ходы (в том числе право на рокировку и взятие на проходе для каждой стороны). Для фиксации ничьей игрок, заметивший троекратное повторение позиции, должен обратиться к судье.
Цитата:
Партия признается закончившейся вничью по заявлению игрока, за которым очередь хода, если одна и та же позиция повторилась не меньше трех раз (не обязательно повторением ходов):
- может возникнуть, если он сначала запишет свой ход на бланке и заявит арбитру о своем намерении сделать этот ход, или
- уже возникла и игрок, за которым очередь хода, требует ничью.

Позиции считаются одинаковыми, если за тем же самым игроком очередь хода, а фигуры того же самого типа и цвета занимают те же поля, и возможные ходы всех фигур обоих игроков те же самые.
Позиции не считаются одинаковыми, если в новой позиции пешка потеряла возможность взятия на проходе или если право на рокировку в данный момент или в будущем утрачено.
Цитата:
Сообщение от miklenew Посмотреть сообщение
И как записывается ничья? Так же как пат?
Хм... не думаю что эти понятия эквивалентны, 'пат' - это один из вариантов ничейного результата (так же как и 'мат' - один из вариантов достижения победы в партии).
В литературе по шахматам, которая в свое время попадалась, результат партии так и фиксировался: 'Ничья', 'Белые сдались', 'Черные сдались' (если в явном виде не было мата одной из сторон)
На игровых порталах результат фиксируется в очковом эквиваленте: 1-0 (победа белых), 1/2-1/2 (ничья), 0-1 (победа черных)

Последний раз редактировалось petergunn; 27.01.2009 в 08:26.
За это сообщение автора поблагодарили: miklenew (5).
Старый 27.01.2009, 08:56   #37  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Спасибо за информацию.
Цитата:
Сообщение от petergunn Посмотреть сообщение
На игровых порталах результат фиксируется в очковом эквиваленте: 1-0 (победа белых), 1/2-1/2 (ничья), 0-1 (победа черных)
Я имел ввиду как записывается последний ход.
Пат: сам_ход + "="
А ничья также?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 27.01.2009, 22:44   #38  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от petergunn Посмотреть сообщение
a. Порядок ходов в партии:
1. g2-g3 h7-h6
2. Cf1-g2 h6-h5
3. b2-b4 g7-g6
4. b4-b5 c7-c5
5. b5:c6 a7-a6
При попытке взять пешку c6:d7 выскакивает infolog с текстом "Ошибка: Метод 'ChessItem.calcMoves' должен быть перекрыт."

b. Есть возможность сделать 2 хода в ситуации выбора фигуры при достижении последней горизонтали. (продолжая порядок ходов)
6. с6:b7 Kb8-c6
пытаемся взять пешкой b7 ладью черных на a8 - появляется окно с предложением выбрать фигуру. Не закрывая окна выбора возвращаемся к доске и делаем взятие слоном:
7.Cg2:c6
после этого в окне выбора фигур выбираем ферзя
8. b7:a8Ф
UPD: Картинка с конечной позицией на доске во вложении.

c. Не фиксируется ничейный результат после 3-кратного повторения позиции на доске.
d. В текущей реализации нотации партии двойной шах отображается как '+' (в печатных изданиях двойной шах обозначают '++' )
Свежее обновление.
Правда 3-кратное повторение щас проверяется, как поиск 3-х одинаковых записей в истории ходов. Потом сделаю как должно. Пока никак не придумаю, как это сделать с минимальным написанием кода.
Вложения
Тип файла: rar chess 1.0 SP6. Build ING on 27.01.2009.rar (20.8 Кб, 89 просмотров)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 09.02.2009, 14:00   #39  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от miklenew Посмотреть сообщение
Свежее обновление.
Правда 3-кратное повторение щас проверяется, как поиск 3-х одинаковых записей в истории ходов. Потом сделаю как должно. Пока никак не придумаю, как это сделать с минимальным написанием кода.
Сделал.
Плюс добавил возможность подсоединить бота.
Если у кого есть желание написать оный.
Один уже есть.
Пока самого бота выкладывать не буду, дождусь пока создатель выложит его сам.
Вложения
Тип файла: rar chess 1.0 SP7. Build ING on 09.02.2009.rar (20.8 Кб, 100 просмотров)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.

Последний раз редактировалось miklenew; 09.02.2009 в 14:14.
Старый 20.02.2009, 10:10   #40  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Шахматный бот
Думает долго, ходит предсказуемо, эндшпиль играть не умеет.
Вложения
Тип файла: zip ChessBot.zip (31.9 Кб, 76 просмотров)
За это сообщение автора поблагодарили: miklenew (9), Artoodeetoo (1).
Теги
download, шахматы, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Куда пропадают лицензии в Ax3.0 SP3 KR2? falcon65 DAX: Администрирование 2 10.05.2007 09:55
Куда идёт запись при разноске журналов зарплат?! 3oppo DAX: Программирование 5 28.07.2005 12:09
SP2 куда делся HELP? Help! KMV DAX: Администрирование 11 17.02.2004 12:26
Вопрос совсем "зеленый". Куда приткнуть метод? Hobo DAX: Программирование 3 13.02.2004 18:07
Куда уходят данные? Oz DAX: Администрирование 4 30.01.2004 17:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:34.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.