Сыграем в крестики-нолики в Autodesk Inventor под Autodesk Vault?
Каким образом обучение конечного пользователя можно сделать менее болезненным и более прозрачным? Конечно, превратив обучение в игру!
Иногда требуется довольно длительное время для того, чтобы пользователь набил руку в операции получения/возврата. Либо администратору необходимо обкатать жизненный цикл или пользовательское взаимодействие на конкретной сборке.
Специально для таких случаев разработана следующая параметрическая сборка в Autodesk Inventor.
Поместив её в хранилище, можно проиграть следующие ситуации и «пощупать» инструменты:
- Получение/выдача файлов и сборок
- Редакции
- Жизненные циклы
- Согласование
- И т.д., на что хватит фантазии
Состояние доски содержится в параметрах сборки:
- f1-f9 – состояния ячеек, могут принимать значения «x», «o» или «_» для пустой ячейки.
- NextPlayer – определяет сторону, которая осуществит следующий ход («x», «o»).
- NextField – поле, куда будет осуществлен следующий ход игроком NextPlayer. Принимает значения 1-9, при пустой доске сбрасывается в 0.
- FlushBoard – флаг очистки доски. Только по нему отрабатывает правило «FlushBoard».
Теперь о правилах, которые управляют поведением сборки.
- Главное правило, «TicTacToe»:
- 'Получаем состояние доски
- a=f1+f2+f3+f4+f5+f6+f7+f8+f9
- c=NextField
- MessageBox.Show("Доска полна, очищаем", "Title")
- FlushBoard=True
- iLogicVb.RunRule("FlushBoard")
- InventorVb.DocumentUpdate()
- Else
- 'Заполняем доску
- i=1
- For Each letter In a
- If i=NextField Then
- If letter="_" Then
- letter=NextPlayer
- Parameter("f"+CStr(NextField)) = NextPlayer
- 'Сменить следующую сторону
- If NextPlayer="x" Then
- NextPlayer="o"
- Else NextPlayer="x"
- End If
- Else
- If NextField = 0 Then
- MessageBox.Show("Доска очищена!", "Title")
- Else MessageBox.Show("Попробуете сделать ход на пустое поле", "Title")
- End If
- End If
- End If
- Select Case letter
- Case "_"
- Component.Visible("tic:"+CStr(i))=False
- Component.Visible("tac:"+CStr(i))=False
- i+=1
- Case "o"
- Component.Visible("tic:"+CStr(i))=False
- Component.Visible("tac:"+CStr(i))=True
- i+=1
- Case "x"
- Component.Visible("tic:"+CStr(i))=True
- Component.Visible("tac:"+CStr(i))=False
- i+=1
- End Select
- Next
- InventorVb.DocumentUpdate()
- iLogicVb.RunRule("CheckLine")
- End If
- Очистка доски «FlushBoard»:
- If FlushBoard Then
- MessageBox.Show("Чистим доску", "Title")
- f1="_"
- f2="_"
- f3="_"
- f4="_"
- f5="_"
- f6="_"
- f7="_"
- f8="_"
- f9="_"
- NextField=0
- FlushBoard=False
- End If
- Проверка наличия линии «CheckLine». Реализовано «в лоб»
- If f1+f2+f3="xxx" Or
- f4+f5+f6="xxx" Or
- f7+f8+f9="xxx" Or
- f1+f4+f7="xxx" Or
- f2+f5+f8="xxx" Or
- f3+f6+f9="xxx" Or
- f1+f5+f9="xxx" Or
- f3+f5+f7="xxx" Then
- MessageBox.Show("Крестики выиграли!", "Title")
- End If
- If f1+f2+f3="ooo" Or
- f4+f5+f6="ooo" Or
- f7+f8+f9="ooo" Or
- f1+f4+f7="ooo" Or
- f2+f5+f8="ooo" Or
- f3+f6+f9="ooo" Or
- f1+f5+f9="ooo" Or
- f3+f5+f7="ooo" Then
- MessageBox.Show("Нолики выиграли!", "Title")
- End If
- Правило «ShowForm» на вызов «Панели управления» при открытии документа:
Смотрите видео с описанием и использованием сборки в Autodesk Vault: http://www.youtube.com/watch?v=uQzHY-TjZ-0.
Архив сборки доступен в Google Drive: tic-tac-toe.zip.
Источник: статья написана специально для ADN Open CIS по мотивам http://zippybytes.blogspot.com/2013/11/lets-play-tic-tac-toe-in-autodesk.html.
Автор перевода: Дмитрий Емельянов
Обсуждение: http://adn-cis.org/forum/index.php?topic=310
Опубликовано 06.11.2013Отредактировано 06.11.2013 в 11:16:39