- 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
Select Case Figure mod 6
...
Case chsQueen 'Ферзь
Picture.Line (X + 0.45 * Side, Y + 0.55 * Side)-(X + 0.5 * Side, Y + 0.15 * Side), Border
Picture.Line (X + 0.55 * Side, Y + 0.55 * Side)-(X + 0.5 * Side, Y + 0.15 * Side), Border
Picture.Circle (X + 0.5 * Side, Y + 0.15 * Side), 0.08 * Side, Border
Picture.Line (X + 0.45 * Side, Y + 0.55 * Side)-(X + 0.3 * Side, Y + 0.25 * Side), Border
Picture.Line (X + 0.35 * Side, Y + 0.6 * Side)-(X + 0.3 * Side, Y + 0.25 * Side), Border
Picture.Circle (X + 0.3 * Side, Y + 0.25 * Side), 0.08 * Side, Border
Picture.Line (X + 0.55 * Side, Y + 0.55 * Side)-(X + 0.7 * Side, Y + 0.25 * Side), Border
Picture.Line (X + 0.65 * Side, Y + 0.6 * Side)-(X + 0.7 * Side, Y + 0.25 * Side), Border
Picture.Circle (X + 0.7 * Side, Y + 0.25 * Side), 0.08 * Side, Border
Picture.Line (X + 0.65 * Side, Y + 0.6 * Side)-(X + 0.85 * Side, Y + 0.35 * Side), Border
Picture.Line (X + 0.73 * Side, Y + 0.65 * Side)-(X + 0.85 * Side, Y + 0.35 * Side), Border
Picture.Circle (X + 0.85 * Side, Y + 0.35 * Side), 0.08 * Side, Border
Picture.Line (X + 0.35 * Side, Y + 0.6 * Side)-(X + 0.15 * Side, Y + 0.35 * Side), Border
Picture.Line (X + 0.27 * Side, Y + 0.65 * Side)-(X + 0.15 * Side, Y + 0.35 * Side), Border
Picture.Circle (X + 0.15 * Side, Y + 0.35 * Side), 0.08 * Side, Border
Picture.Line (X + 0.27 * Side, Y + 0.65 * Side)-(X + 0.27 * Side, Y + 0.8 * Side), Border
Picture.Line (X + 0.73 * Side, Y + 0.65 * Side)-(X + 0.73 * Side, Y + 0.8 * Side), Border
Picture.Circle (X + 0.5 * Side, Y + 0.35 * Side), 0.5 * Side, Border, 1.35 * Pi, 1.65 * Pi
Call FloodFill(Picture.hdc, X + 0.5 * Side, Y + 0.5 * Side, Border)
Picture.Circle (X + 0.5 * Side, Y + 1.24 * Side), 0.5 * Side, Border, 0.35 * Pi, 0.65 * Pi
Picture.Circle (X + 0.5 * Side, Y + 1.1 * Side), 0.5 * Side, Border, 0.35 * Pi, 0.65 * Pi
Picture.Line (X + 0.73 * Side, Y + 0.68 * Side)-(X + 0.65 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.73 * Side, Y + 0.77 * Side)-(X + 0.65 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.27 * Side, Y + 0.68 * Side)-(X + 0.35 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.27 * Side, Y + 0.77 * Side)-(X + 0.35 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.4 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.63 * Side), Border
Picture.Line (X + 0.4 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.72 * Side), Border
Picture.Line (X + 0.6 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.63 * Side), Border
Picture.Line (X + 0.6 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.72 * Side), Border
Let Picture.FillColor = Border
Call FloodFill(Picture.hdc, X + 0.5 * Side, Y + 0.7 * Side, Border)
Call FloodFill(Picture.hdc, X + 0.73 * Side, Y + 0.7 * Side, Border)
Call FloodFill(Picture.hdc, X + 0.31 * Side, Y + 0.68 * Side, Border)
Let Picture.FillColor = Fill
...
End Select
Пишу свои шахматы, с блекджеком и не без них.
Вот, набацал алгоритм векторного рисования ферзя.
Только на это ушло около получаса времени чистого с примесями (подстройки, мать их).
Чую нутром, лучше забить и вырвать клипарт из интернета.
Плюс за множество вызовов функций вместо использования полигонов.
Плюс за X+... и за Y+... вместо translate matrix.
Плюс за switch вместо реализации интерфейса (ведь визуальный барсик умеет ООП, да?)
Плюс за время, потраченное на не самую приоритетную задачу.
Алсо, плюс за выбор ЯП.
Скажу одно: еще учусь. Да, только полгода назад пересел с QBasic на умеющий ООП VB6, параллельно подучивая Паскаль и тоскливо поглядывая на Си. Ну привык делать все по старинке.
А за "вредные" советы отдельный плюс. Вы склонили меня все же взять для изображения фигур клипарт с Википедии и перейти к собственно логике.
Впрочем, вижу, этого и не требуется. Удачи в учебе/работе.
И за добрые пожелания отдельное спасибо.
И вам удачи. Вот. :3
Соглашусь, на 1С код бы выглядел ужаснее
Привет, ПРОМТ, прощай, здравый смысл.
А если уж очень хочется векторного фидонета интерфейса - используйте C# + WPF/Silverlight - как раз для этого и создан.
Про саму яву ничего не скажу, ибо не программировал. Но видел код под программиста, до этого на нём писавшего - он страдал явным паттернизмом головного мозга (QuickNick, это камень в твой огород), так что лучше не стоит )
Начал учить Хацкил, и попал в дурку.
Вот тут человеку начали советовать языки. Я же чётко понимаю что это глупости. Можно и на бейсике их написать (и я видел шахматы еще НА ТОМ basice), если достаточно знаний.
А можно и с Хацкилом ничего не сделать, как показывает нам пример fai.
Но все же, что проще для перехода с Бейсика-Паскаля: Питон или Си? С:
Проще, наверно таки питон (но, возможно, только потому, что я его ни разу в жизни не видел :) )
Я считаю, что С/C++ надо изучить хотя бы поверхностно, потому что от них отпочковалась целая ветка языков.
Но надо ещё учитывать область применения - писать на C скрипты автоматизации - по меньшей мере бессмысленно.
А почему это не было планом А? :)
Но одна лень теперь другой сильнее.
В любой нормальной GUI-библиотеке (VB6 к таким не относится) есть функция отрисовки растра в нужном месте области рисования. Вот в .NET, куча функций DrawImage: http://msdn.microsoft.com/en-us/library/system.drawing.graphics.aspx
А векторные изображения можно отрисовать в Inkscape и затем вывести любой библиотекой отрисовки SVG. Или просто взять готовые SVG'шки с Wikimedia Commons.
Фронтэнд и красивый гуй - дело десятое.
вместе посчитаем кол-во магических цифр.
а насчет топика - я бы эти чудо-цифры вынес в отдельный файл и получил бы svg