ainoneko / ssyp18-ws09

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

====== README ====== Created Monday 09 July 2018

====== Мастерская 9. "Решение головоломок с помощью системы верификации или "Марсоход для козы"" ======

===== Promela и Spin =====

==== Задачи о переправе ====

=== "Лёгкие люди" ===

Переправиться должны 5 человек разного веса (10, 20, 30, 40 и 50 кг). Грузоподъёмность лодки — 60 кг. Однако при загрузке менее 30 кг лодку уносит течением.

Файл спецификации: lh2.pml

=== "Львы_и_террористы" ===

Переправиться должны три скромных льва и три диких террориста. Лодка двухместная. Львы не умеют управлять лодкой, а террористы начинают душить львов, если оказываются в большинстве.

Файл спецификации: Львы_и_террористы.pml

=== "Медленные бабушки" ===

Через ветхий мост тёмной ночью должны перейти четыре бабушки, которые имею разную максимальную скорость. Самая быстрая переходит мост за 1 минуту, остальные — за 2, 5 и 10 минут. Через 27 минут начинается показ очередной серии популярного фильма, но который им надо успеть. У них есть один фонарик, с которым могут идти не более двух бабушек.

Файл спецификации: через_мост.pml

=== Пример спецификации: Миссионеры и каннибалы ===

Переправиться должны три миссионера и три каннибала. Лодка двухместная. Все участники умеют управлять лодкой, а каннибалы нападают на миссионеров, если оказываются в большинстве.

Файл спецификации: river_cannibals.pml

=== Проверка спецификаций из командной строки === Файл run_spin.sh : {{{code: lang="sh" linenumbers="True" #!/bin/bash

if [ "$1" == "" ]; then echo "Usage: $0 file.pml" else # ECHO ON set -x spin -a $1 gcc -DBFS -w -o pan pan.c ./pan spin -t $1 fi }}}

Запуск: ./run_spin.sh ИМЯ_СПЕЦИФИКАЦИИ.pml

Для Windows: файл run_spin.bat : {{{code: lang="sh" linenumbers="True" REM SET UTF-8 chcp 65001 ECHO ON spin -a %1 gcc -DBFS -w -o pan.exe pan.c pan.exe spin -t %1 }}}

(Параметр -DBFS обеспечивает поиск самого короткого пути, ведущего к целевой конфигурации. )

=== Графический интерфейс ispin.tcl === Файл: ispin.tcl

==== C ====

=== Программа, cпрашивающая у пользователя его имя и приветствующая его === Файл: hello_comp/main.c

=== Программа, загадывающая число от 1 до 100 (можно изменить в #define) и отвечающая на попытки пользователя === Файл: number_guesser/main.c

=== Программа, угадывающая загаданное пользователем число от 1 до 100 (можно изменить в #define) === Файл: prog_guesser/main.c

=== Программа, тестирующая готовность пользователя завести шиншиллу === Файл: chay/main.c

=== Программа, загадывающая букву английского алфавита и отвечающая на попытки пользователя === Файл: guess_letter/main.c

==== Javascript ====

Ученики создали картинки для игр, используя программу Krita (бесплатный растровый графический редактор с открытым кодом).

=== Игра-кликер === Веб-страница, показывающая картинку, меняющуюся на другую после нескольких кликов.

Файлы: clicker_game/ clicker.html images/ egg_1.png egg_2.png egg_3.png chi_2.png

=== Игра "Шиншилла, ловец еды" ===

Игра основана на туториале по созданию двумерных игр. ( Исходный туториал (на английском): https://jlongster.com/Making-Sprite-based-Games-with-Canvas Перевод на русский: https://habr.com/post/184666/ Исходный репозиторий: https://github.com/jlongster/canvas-game-bootstrap )

Файлы: food_catcher/ index.html css/ app.css img/ sprites.png try_bg.png js/ app.js input.js resources.js sprite.js

About


Languages

Language:Shell 89.4%Language:JavaScript 7.0%Language:C 2.0%Language:HTML 1.3%Language:CSS 0.4%Language:Batchfile 0.0%