├── README.md └── docs ├── .gitignore ├── README.md ├── slides ├── .gitignore ├── 00 - Course introduction.html ├── 01 - Introduction to Computational Thinking.html ├── 02 - Algorithms.html ├── 03 - Computability.html ├── 04 - Programming languages.html ├── 05 - Organising information - ordered structures.html ├── 06 - Brute-force algorithms.html ├── 07 - Organising information - unordered structures.html ├── 08 - Recursion.html ├── 09 - Divide and conquer algorithms.html ├── 10 - Dynamic programming algorithms.html ├── 11 - Organising information - trees.html ├── 12 - Backtracking algorithms.html ├── 13 - Organising information - graphs.html ├── 14 - Greedy algorithms.html ├── css │ ├── academicons.min.css │ ├── addon.css │ ├── billboard.min.css │ ├── bootstrap-theme.min.css │ ├── bootstrap.min.css │ ├── ccby.png │ ├── ctc.css │ ├── font-awesome.min.css │ ├── metricsgraphics.css │ ├── print │ │ ├── paper.css │ │ └── pdf.css │ ├── reveal.css │ ├── reveal.scss │ ├── stats.css │ └── theme │ │ ├── README.md │ │ ├── beige.css │ │ ├── black.css │ │ ├── blood.css │ │ ├── league.css │ │ ├── moon.css │ │ ├── night.css │ │ ├── serif.css │ │ ├── simple.css │ │ ├── sky.css │ │ ├── solarized.css │ │ ├── source │ │ ├── beige.scss │ │ ├── black.scss │ │ ├── blood.scss │ │ ├── league.scss │ │ ├── moon.scss │ │ ├── night.scss │ │ ├── serif.scss │ │ ├── simple.scss │ │ ├── sky.scss │ │ ├── solarized.scss │ │ └── white.scss │ │ ├── template │ │ ├── mixins.scss │ │ ├── settings.scss │ │ └── theme.scss │ │ └── white.css ├── fonts │ ├── FontAwesome.otf │ ├── academicons.eot │ ├── academicons.svg │ ├── academicons.ttf │ ├── academicons.woff │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── img │ ├── 6x6-square-board.png │ ├── ada.jpg │ ├── alice-01.png │ ├── alice-02.png │ ├── alice-03.png │ ├── alice-04.png │ ├── alice-05.png │ ├── alice-book-en.png │ ├── alice-book-it.jpg │ ├── alice-tree-01.png │ ├── alice-tree-02.png │ ├── alice-tree-03.png │ ├── alice-tree-04.png │ ├── alice-tree-05.png │ ├── alice-tree-06.png │ ├── alice-tree-07.png │ ├── alice-tree-08.png │ ├── alice-tree-09.png │ ├── alice-tree-10.png │ ├── alphago.png │ ├── analytical_engine.jpg │ ├── berezin.jpg │ ├── borges.jpg │ ├── bridges.png │ ├── calc-01.png │ ├── calc-02.png │ ├── calc-03.png │ ├── children.png │ ├── chomsky.jpg │ ├── citation.png │ ├── convex.jpg │ ├── david.png │ ├── decision.png │ ├── dh.png │ ├── dictionary.png │ ├── difference_engine.png │ ├── digraph.png │ ├── does-it-halt-algorithm.png │ ├── eniac.jpg │ ├── euler.jpg │ ├── fanhui.jpg │ ├── fib-tree.png │ ├── fib_dc-01.png │ ├── fib_dc-02.png │ ├── fib_dc-03.png │ ├── fib_dc-04.png │ ├── fib_dc-05.png │ ├── fib_dc-06.png │ ├── fib_dc-07.png │ ├── fib_dc-08.png │ ├── fib_dp-01.png │ ├── fib_dp-02.png │ ├── fib_dp-03.png │ ├── fib_dp-04.png │ ├── fib_dp-05.png │ ├── fib_dp-06.png │ ├── fibonacci.jpg │ ├── final-algorithm-01.png │ ├── final-algorithm-02.png │ ├── final-algorithm-03.png │ ├── final-algorithm-04.png │ ├── final-algorithm-05.png │ ├── final-algorithm-06.png │ ├── final-algorithm-07.png │ ├── final-algorithm-08.png │ ├── final-algorithm-09.png │ ├── flowline.png │ ├── four-glasses.png │ ├── go.jpg │ ├── graph.png │ ├── hands.jpg │ ├── hofstadter.jpg │ ├── holberton.jpg │ ├── hopper.png │ ├── input_output.png │ ├── insertion-01.png │ ├── insertion-02.png │ ├── insertion-03.png │ ├── insertion-04.png │ ├── insertion-05.png │ ├── insertion-06.png │ ├── japanese.png │ ├── kejie.png │ ├── knuth.jpg │ ├── languages.png │ ├── leesedol.jpg │ ├── library.jpg │ ├── list.png │ ├── machine.jpg │ ├── marquez.jpg │ ├── memo.png │ ├── merge-01.png │ ├── merge-02.png │ ├── merge-03.png │ ├── merge-04.png │ ├── merge-05.png │ ├── merge-06.png │ ├── merge-sort-01.png │ ├── merge-sort-02.png │ ├── merge-sort-03.png │ ├── merge-sort-04.png │ ├── merge-sort-05.png │ ├── merge-sort-06.png │ ├── merge-sort-07.png │ ├── merge-sort-08.png │ ├── merge-sort-09.png │ ├── merge-sort-10.png │ ├── meta.png │ ├── mindsets1.png │ ├── mindsets2.png │ ├── move-tree-01.png │ ├── move-tree-02.png │ ├── move-tree-03.png │ ├── move-tree-04.png │ ├── move-tree-05.png │ ├── move.png │ ├── opencitations.png │ ├── partial-algorithm-01.png │ ├── partial-algorithm-02.png │ ├── partial-algorithm-03.png │ ├── partial-algorithm-04.png │ ├── partial-algorithm-05.png │ ├── peg.png │ ├── position.png │ ├── post_office.png │ ├── problem.png │ ├── process.png │ ├── python-links.png │ ├── queue.png │ ├── recipe-ikea.png │ ├── recursion.png │ ├── resolution-01.png │ ├── resolution-02.png │ ├── set.png │ ├── setting.png │ ├── simple-algorithm.png │ ├── spar.png │ ├── stack.png │ ├── tdd.png │ ├── terminal.png │ ├── three-glasses.png │ ├── tree-01.png │ ├── tree-02.png │ ├── tree-03.png │ ├── tree-04.png │ ├── tree-05.png │ ├── tree-06.png │ ├── tree-07.png │ ├── tree-08.png │ ├── turing-machine-01.png │ ├── turing-machine-02.png │ ├── turing-machine-03.png │ ├── turing-machine-04.png │ ├── turing-machine-05.png │ ├── turing-machine-06.png │ ├── turing.jpg │ ├── vonneumann.png │ └── wrap.png ├── js │ ├── bootstrap.min.js │ ├── jquery.min.js │ ├── popper.min.js │ └── reveal.js ├── lib │ ├── css │ │ └── zenburn.css │ ├── font │ │ ├── league-gothic │ │ │ ├── LICENSE │ │ │ ├── league-gothic.css │ │ │ ├── league-gothic.eot │ │ │ ├── league-gothic.ttf │ │ │ └── league-gothic.woff │ │ └── source-sans-pro │ │ │ ├── LICENSE │ │ │ ├── source-sans-pro-italic.eot │ │ │ ├── source-sans-pro-italic.ttf │ │ │ ├── source-sans-pro-italic.woff │ │ │ ├── source-sans-pro-regular.eot │ │ │ ├── source-sans-pro-regular.ttf │ │ │ ├── source-sans-pro-regular.woff │ │ │ ├── source-sans-pro-semibold.eot │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ ├── source-sans-pro-semibold.woff │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ └── source-sans-pro.css │ └── js │ │ ├── classList.js │ │ ├── head.min.js │ │ └── html5shiv.js └── plugin │ ├── highlight │ └── highlight.js │ ├── markdown │ ├── example.html │ ├── example.md │ ├── markdown.js │ └── marked.js │ ├── math │ └── math.js │ ├── multiplex │ ├── client.js │ ├── index.js │ ├── master.js │ └── package.json │ ├── notes-server │ ├── client.js │ ├── index.js │ └── notes.html │ ├── notes │ ├── notes.html │ └── notes.js │ ├── print-pdf │ └── print-pdf.js │ ├── search │ └── search.js │ └── zoom-js │ └── zoom.js └── workshop ├── .gitignore ├── 0.json ├── 00_results.txt ├── 00_run_cannon_escape.py ├── README.md ├── group.py ├── john_doe.py ├── rooms ├── 1.json ├── 10.json ├── 100.json ├── 11.json ├── 12.json ├── 13.json ├── 14.json ├── 15.json ├── 16.json ├── 17.json ├── 18.json ├── 19.json ├── 2.json ├── 20.json ├── 21.json ├── 22.json ├── 23.json ├── 24.json ├── 25.json ├── 26.json ├── 27.json ├── 28.json ├── 29.json ├── 3.json ├── 30.json ├── 31.json ├── 32.json ├── 33.json ├── 34.json ├── 35.json ├── 36.json ├── 37.json ├── 38.json ├── 39.json ├── 4.json ├── 40.json ├── 41.json ├── 42.json ├── 43.json ├── 44.json ├── 45.json ├── 46.json ├── 47.json ├── 48.json ├── 49.json ├── 5.json ├── 50.json ├── 51.json ├── 52.json ├── 53.json ├── 54.json ├── 55.json ├── 56.json ├── 57.json ├── 58.json ├── 59.json ├── 6.json ├── 60.json ├── 61.json ├── 62.json ├── 63.json ├── 64.json ├── 65.json ├── 66.json ├── 67.json ├── 68.json ├── 69.json ├── 7.json ├── 70.json ├── 71.json ├── 72.json ├── 73.json ├── 74.json ├── 75.json ├── 76.json ├── 77.json ├── 78.json ├── 79.json ├── 8.json ├── 80.json ├── 81.json ├── 82.json ├── 83.json ├── 84.json ├── 85.json ├── 86.json ├── 87.json ├── 88.json ├── 89.json ├── 9.json ├── 90.json ├── 91.json ├── 92.json ├── 93.json ├── 94.json ├── 95.json ├── 96.json ├── 97.json ├── 98.json └── 99.json ├── run.py ├── support └── create_rooms.py └── workshop2425-slides.pdf /docs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/.gitignore -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Space for the GitHub pages of the course -------------------------------------------------------------------------------- /docs/slides/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/.gitignore -------------------------------------------------------------------------------- /docs/slides/css/academicons.min.css: -------------------------------------------------------------------------------- 1 | .ai-ul,.fa-ul{list-style-type:none}.ai-li,.fa-li{top:.14285714em;text-align:center}.ai-fw,.ai-li,.fa-fw,.fa-li{text-align:center}.ai.fa-pull-left,.fa.fa-pull-left{margin-right:.3em}@font-face{font-family:Academicons;src:url(../fonts/academicons.eot?v=1.8.0);src:url(../fonts/academicons.eot?v=1.8.0) format('embedded-opentype'),url(../fonts/academicons.ttf?v=1.8.0) format('truetype'),url(../fonts/academicons.woff?v=1.8.0) format('woff'),url(../fonts/academicons.svg?v=1.8.0#academicons) format('svg');font-weight:400;font-style:normal}.ai{display:inline-block;font:normal normal normal 14px/1 Academicons;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-lg,.fa-lg{line-height:.75em;vertical-align:-15%}.ai-academia:before{content:"\e800"}.ai-academia-square:before{content:"\e801"}.ai-acclaim:before{content:"\e802"}.ai-acclaim-square:before{content:"\e803"}.ai-acm:before{content:"\e804"}.ai-acm-square:before{content:"\e805"}.ai-ads:before{content:"\e806"}.ai-ads-square:before{content:"\e807"}.ai-arxiv:before{content:"\e808"}.ai-arxiv-square:before{content:"\e809"}.ai-biorxiv:before{content:"\e810"}.ai-biorxiv-square:before{content:"\e811"}.ai-ceur:before{content:"\e812"}.ai-ceur-box:before{content:"\e813"}.ai-courser:before{content:"\e814"}.ai-courser-square:before{content:"\e815"}.ai-dataverse:before{content:"\e816"}.ai-dataverse-box:before{content:"\e817"}.ai-dblp:before{content:"\e818"}.ai-dblp-square:before{content:"\e819"}.ai-depsy:before{content:"\e820"}.ai-depsy-square:before{content:"\e821"}.ai-doi:before{content:"\e822"}.ai-doi-square:before{content:"\e823"}.ai-dryad:before{content:"\e824"}.ai-dryad-square:before{content:"\e825"}.ai-figshare:before{content:"\e826"}.ai-figshare-square:before{content:"\e827"}.ai-google-scholar:before{content:"\e828"}.ai-google-scholar-square:before{content:"\e829"}.ai-ieee:before{content:"\e830"}.ai-ieee-square:before{content:"\e831"}.ai-impactstory:before{content:"\e832"}.ai-impactstory-square:before{content:"\e833"}.ai-inspire:before{content:"\e834"}.ai-inspire-square:before{content:"\e835"}.ai-mendeley:before{content:"\e836"}.ai-mendeley-square:before{content:"\e837"}.ai-open-access:before{content:"\e838"}.ai-open-access-square:before{content:"\e839"}.ai-orcid:before{content:"\e840"}.ai-orcid-square:before{content:"\e841"}.ai-osf:before{content:"\e842"}.ai-osf-square:before{content:"\e843"}.ai-overleaf:before{content:"\e844"}.ai-overleaf-square:before{content:"\e845"}.ai-philpapers:before{content:"\e846"}.ai-philpapers-square:before{content:"\e847"}.ai-piazza:before{content:"\e848"}.ai-piazza-square:before{content:"\e849"}.ai-publons:before{content:"\e850"}.ai-publons-square:before{content:"\e851"}.ai-pubmed:before{content:"\e852"}.ai-pubmed-square:before{content:"\e853"}.ai-researchgate:before{content:"\e854"}.ai-researchgate-square:before{content:"\e855"}.ai-scirate:before{content:"\e856"}.ai-scirate-square:before{content:"\e857"}.ai-springer:before{content:"\e858"}.ai-springer-square:before{content:"\e859"}.ai-zotero:before{content:"\e860"}.ai-zotero-square:before{content:"\e861"}.ai-lg{font-size:1.33333333em}.ai-2x{font-size:2em}.ai-3x{font-size:3em}.ai-4x{font-size:4em}.ai-5x{font-size:5em}.ai-fw{width:1.28571429em}.ai-ul{padding-left:0;margin-left:2.14285714em}.ai-ul>li{position:relative}.ai-li{position:absolute;left:-2.14285714em;width:2.14285714em}.ai-li.fa-lg{left:-1.85714286em}.ai-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.ai-pull-left{float:left}.ai-pull-right{float:right}.ai.fa-pull-right{margin-left:.3em}.fa-lg{font-size:1.33333333em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em}.fa-ul{padding-left:0;margin-left:2.14285714em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-right{margin-left:.3em} -------------------------------------------------------------------------------- /docs/slides/css/addon.css: -------------------------------------------------------------------------------- 1 | .stat-bar { 2 | border: 1px solid #000 !important; 3 | box-sizing: border-box; 4 | margin: 60px 0px; 5 | height: 30px; 6 | } 7 | 8 | .stat-bar .stat-section { 9 | float: left; 10 | height: 100%; 11 | position: relative; 12 | } 13 | .stat-bar .stat-one { 14 | width: 1%; 15 | background: #000; 16 | } 17 | .stat-bar .stat-one:after { 18 | content: "1%"; 19 | position: absolute; 20 | bottom: -30px; 21 | left: -2px; 22 | font-size: 12px; 23 | } 24 | 25 | .stat-bar .stat-two { 26 | width: 45%; 27 | background-image: url(../img/semsci2017/dotted.jpg); 28 | background-repeat: repeat; 29 | background-size: 150px auto; 30 | } 31 | 32 | .stat-bar .stat-two:after { 33 | content: "45% (after I4OC launch)"; 34 | position: absolute; 35 | bottom: -30px; 36 | left: 35%; 37 | font-size: 12px; 38 | } 39 | 40 | .stat-bar .stat-three { 41 | width: 1%; 42 | background: #fff; 43 | } 44 | 45 | .stat-bar .stat-three:after { 46 | content: "54%"; 47 | position: absolute; 48 | bottom: -30px; 49 | left:2500%; 50 | font-size: 12px; 51 | } 52 | 53 | .oc-blue { 54 | color: #2D22DE; 55 | } 56 | 57 | .oc-purple { 58 | color: #9931FC; 59 | } 60 | -------------------------------------------------------------------------------- /docs/slides/css/billboard.min.css: -------------------------------------------------------------------------------- 1 | .bb svg{font:10px sans-serif;-webkit-tap-highlight-color:transparent}.bb line,.bb path{fill:none;stroke:#000}.bb text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.bb-bars path,.bb-event-rect,.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid{shape-rendering:crispEdges}.bb-chart-arc path{stroke:#fff}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:gray;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-target.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused{opacity:.3!important}.bb-region{fill:#4682b4;fill-opacity:.1}.bb-brush .extent{fill-opacity:.1}.bb-legend-item{font-size:12px}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font:14px sans-serif}.bb-tooltip-container{z-index:1}.bb-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;opacity:.9;box-shadow:7px 7px 12px -9px #777}.bb-tooltip tr{border:1px solid #ccc}.bb-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#fff}.bb-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.bb-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.bb-tooltip td.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:none}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-arc .bb-gauge-value{fill:#000} -------------------------------------------------------------------------------- /docs/slides/css/ccby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/css/ccby.png -------------------------------------------------------------------------------- /docs/slides/css/print/pdf.css: -------------------------------------------------------------------------------- 1 | /** 2 | * This stylesheet is used to print reveal.js 3 | * presentations to PDF. 4 | * 5 | * https://github.com/hakimel/reveal.js#pdf-export 6 | */ 7 | 8 | * { 9 | -webkit-print-color-adjust: exact; 10 | } 11 | 12 | body { 13 | margin: 0 auto !important; 14 | border: 0; 15 | padding: 0; 16 | float: none !important; 17 | overflow: visible; 18 | } 19 | 20 | html { 21 | width: 100%; 22 | height: 100%; 23 | overflow: visible; 24 | } 25 | 26 | /* Remove any elements not needed in print. */ 27 | .nestedarrow, 28 | .reveal .controls, 29 | .reveal .progress, 30 | .reveal .playback, 31 | .reveal.overview, 32 | .fork-reveal, 33 | .share-reveal, 34 | .state-background { 35 | display: none !important; 36 | } 37 | 38 | h1, h2, h3, h4, h5, h6 { 39 | text-shadow: 0 0 0 #000 !important; 40 | } 41 | 42 | .reveal pre code { 43 | overflow: hidden !important; 44 | font-family: Courier, 'Courier New', monospace !important; 45 | } 46 | 47 | ul, ol, div, p { 48 | visibility: visible; 49 | position: static; 50 | width: auto; 51 | height: auto; 52 | display: block; 53 | overflow: visible; 54 | margin: auto; 55 | } 56 | .reveal { 57 | width: auto !important; 58 | height: auto !important; 59 | overflow: hidden !important; 60 | } 61 | .reveal .slides { 62 | position: static; 63 | width: 100%; 64 | height: auto; 65 | 66 | left: auto; 67 | top: auto; 68 | margin: 0 !important; 69 | padding: 0 !important; 70 | 71 | overflow: visible; 72 | display: block; 73 | 74 | -webkit-perspective: none; 75 | -moz-perspective: none; 76 | -ms-perspective: none; 77 | perspective: none; 78 | 79 | -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */ 80 | -moz-perspective-origin: 50% 50%; 81 | -ms-perspective-origin: 50% 50%; 82 | perspective-origin: 50% 50%; 83 | } 84 | 85 | .reveal .slides section { 86 | page-break-after: always !important; 87 | 88 | visibility: visible !important; 89 | position: relative !important; 90 | display: block !important; 91 | position: relative !important; 92 | 93 | margin: 0 !important; 94 | padding: 0 !important; 95 | box-sizing: border-box !important; 96 | min-height: 1px; 97 | 98 | opacity: 1 !important; 99 | 100 | -webkit-transform-style: flat !important; 101 | -moz-transform-style: flat !important; 102 | -ms-transform-style: flat !important; 103 | transform-style: flat !important; 104 | 105 | -webkit-transform: none !important; 106 | -moz-transform: none !important; 107 | -ms-transform: none !important; 108 | transform: none !important; 109 | } 110 | 111 | .reveal section.stack { 112 | margin: 0 !important; 113 | padding: 0 !important; 114 | page-break-after: avoid !important; 115 | height: auto !important; 116 | min-height: auto !important; 117 | } 118 | 119 | .reveal img { 120 | box-shadow: none; 121 | } 122 | 123 | .reveal .roll { 124 | overflow: visible; 125 | line-height: 1em; 126 | } 127 | 128 | /* Slide backgrounds are placed inside of their slide when exporting to PDF */ 129 | .reveal section .slide-background { 130 | display: block !important; 131 | position: absolute; 132 | top: 0; 133 | left: 0; 134 | width: 100%; 135 | z-index: -1; 136 | } 137 | 138 | /* All elements should be above the slide-background */ 139 | .reveal section>* { 140 | position: relative; 141 | z-index: 1; 142 | } 143 | 144 | /* Display slide speaker notes when 'showNotes' is enabled */ 145 | .reveal .speaker-notes-pdf { 146 | display: block; 147 | width: 100%; 148 | max-height: none; 149 | left: auto; 150 | top: auto; 151 | z-index: 100; 152 | } 153 | 154 | /* Display slide numbers when 'slideNumber' is enabled */ 155 | .reveal .slide-number-pdf { 156 | display: block; 157 | position: absolute; 158 | font-size: 14px; 159 | } 160 | 161 | -------------------------------------------------------------------------------- /docs/slides/css/stats.css: -------------------------------------------------------------------------------- 1 | div.diagram { 2 | max-width: 80%; 3 | } 4 | -------------------------------------------------------------------------------- /docs/slides/css/theme/README.md: -------------------------------------------------------------------------------- 1 | ## Dependencies 2 | 3 | Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup 4 | 5 | ## Creating a Theme 6 | 7 | To create your own theme, start by duplicating a ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source). It will be automatically compiled by Grunt from Sass to CSS (see the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js)) when you run `grunt css-themes`. 8 | 9 | Each theme file does four things in the following order: 10 | 11 | 1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)** 12 | Shared utility functions. 13 | 14 | 2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)** 15 | Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3. 16 | 17 | 3. **Override** 18 | This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding any selectors and styles you please. 19 | 20 | 4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)** 21 | The template theme file which will generate final CSS output based on the currently defined variables. 22 | -------------------------------------------------------------------------------- /docs/slides/css/theme/source/beige.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Beige theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | 15 | // Include theme-specific fonts 16 | @import url(../../lib/font/league-gothic/league-gothic.css); 17 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 18 | 19 | 20 | // Override theme settings (see ../template/settings.scss) 21 | $mainColor: #333; 22 | $headingColor: #333; 23 | $headingTextShadow: none; 24 | $backgroundColor: #f7f3de; 25 | $linkColor: #8b743d; 26 | $linkColorHover: lighten( $linkColor, 20% ); 27 | $selectionBackgroundColor: rgba(79, 64, 28, 0.99); 28 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); 29 | 30 | // Background generator 31 | @mixin bodyBackground() { 32 | @include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) ); 33 | } 34 | 35 | 36 | 37 | // Theme template ------------------------------ 38 | @import "../template/theme"; 39 | // --------------------------------------------- -------------------------------------------------------------------------------- /docs/slides/css/theme/source/black.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Black theme for reveal.js. This is the opposite of the 'white' theme. 3 | * 4 | * By Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | // Include theme-specific fonts 15 | @import url(../../lib/font/source-sans-pro/source-sans-pro.css); 16 | 17 | 18 | // Override theme settings (see ../template/settings.scss) 19 | $backgroundColor: #222; 20 | 21 | $mainColor: #fff; 22 | $headingColor: #fff; 23 | 24 | $mainFontSize: 38px; 25 | $mainFont: 'Source Sans Pro', Helvetica, sans-serif; 26 | $headingFont: 'Source Sans Pro', Helvetica, sans-serif; 27 | $headingTextShadow: none; 28 | $headingLetterSpacing: normal; 29 | $headingTextTransform: uppercase; 30 | $headingFontWeight: 600; 31 | $linkColor: #42affa; 32 | $linkColorHover: lighten( $linkColor, 15% ); 33 | $selectionBackgroundColor: lighten( $linkColor, 25% ); 34 | 35 | $heading1Size: 2.5em; 36 | $heading2Size: 1.6em; 37 | $heading3Size: 1.3em; 38 | $heading4Size: 1.0em; 39 | 40 | section.has-light-background { 41 | &, h1, h2, h3, h4, h5, h6 { 42 | color: #222; 43 | } 44 | } 45 | 46 | 47 | // Theme template ------------------------------ 48 | @import "../template/theme"; 49 | // --------------------------------------------- -------------------------------------------------------------------------------- /docs/slides/css/theme/source/blood.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Blood theme for reveal.js 3 | * Author: Walther http://github.com/Walther 4 | * 5 | * Designed to be used with highlight.js theme 6 | * "monokai_sublime.css" available from 7 | * https://github.com/isagalaev/highlight.js/ 8 | * 9 | * For other themes, change $codeBackground accordingly. 10 | * 11 | */ 12 | 13 | // Default mixins and settings ----------------- 14 | @import "../template/mixins"; 15 | @import "../template/settings"; 16 | // --------------------------------------------- 17 | 18 | // Include theme-specific fonts 19 | 20 | @import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic); 21 | 22 | // Colors used in the theme 23 | $blood: #a23; 24 | $coal: #222; 25 | $codeBackground: #23241f; 26 | 27 | $backgroundColor: $coal; 28 | 29 | // Main text 30 | $mainFont: Ubuntu, 'sans-serif'; 31 | $mainFontSize: 36px; 32 | $mainColor: #eee; 33 | 34 | // Headings 35 | $headingFont: Ubuntu, 'sans-serif'; 36 | $headingTextShadow: 2px 2px 2px $coal; 37 | 38 | // h1 shadow, borrowed humbly from 39 | // (c) Default theme by Hakim El Hattab 40 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); 41 | 42 | // Links 43 | $linkColor: $blood; 44 | $linkColorHover: lighten( $linkColor, 20% ); 45 | 46 | // Text selection 47 | $selectionBackgroundColor: $blood; 48 | $selectionColor: #fff; 49 | 50 | 51 | // Theme template ------------------------------ 52 | @import "../template/theme"; 53 | // --------------------------------------------- 54 | 55 | // some overrides after theme template import 56 | 57 | .reveal p { 58 | font-weight: 300; 59 | text-shadow: 1px 1px $coal; 60 | } 61 | 62 | .reveal h1, 63 | .reveal h2, 64 | .reveal h3, 65 | .reveal h4, 66 | .reveal h5, 67 | .reveal h6 { 68 | font-weight: 700; 69 | } 70 | 71 | .reveal p code { 72 | background-color: $codeBackground; 73 | display: inline-block; 74 | border-radius: 7px; 75 | } 76 | 77 | .reveal small code { 78 | vertical-align: baseline; 79 | } -------------------------------------------------------------------------------- /docs/slides/css/theme/source/league.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * League theme for reveal.js. 3 | * 4 | * This was the default theme pre-3.0.0. 5 | * 6 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 7 | */ 8 | 9 | 10 | // Default mixins and settings ----------------- 11 | @import "../template/mixins"; 12 | @import "../template/settings"; 13 | // --------------------------------------------- 14 | 15 | 16 | 17 | // Include theme-specific fonts 18 | @import url(../../lib/font/league-gothic/league-gothic.css); 19 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 20 | 21 | // Override theme settings (see ../template/settings.scss) 22 | $headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2); 23 | $heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15); 24 | 25 | // Background generator 26 | @mixin bodyBackground() { 27 | @include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) ); 28 | } 29 | 30 | 31 | 32 | // Theme template ------------------------------ 33 | @import "../template/theme"; 34 | // --------------------------------------------- -------------------------------------------------------------------------------- /docs/slides/css/theme/source/moon.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Solarized Dark theme for reveal.js. 3 | * Author: Achim Staebler 4 | */ 5 | 6 | 7 | // Default mixins and settings ----------------- 8 | @import "../template/mixins"; 9 | @import "../template/settings"; 10 | // --------------------------------------------- 11 | 12 | 13 | 14 | // Include theme-specific fonts 15 | @import url(../../lib/font/league-gothic/league-gothic.css); 16 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 17 | 18 | /** 19 | * Solarized colors by Ethan Schoonover 20 | */ 21 | html * { 22 | color-profile: sRGB; 23 | rendering-intent: auto; 24 | } 25 | 26 | // Solarized colors 27 | $base03: #002b36; 28 | $base02: #073642; 29 | $base01: #586e75; 30 | $base00: #657b83; 31 | $base0: #839496; 32 | $base1: #93a1a1; 33 | $base2: #eee8d5; 34 | $base3: #fdf6e3; 35 | $yellow: #b58900; 36 | $orange: #cb4b16; 37 | $red: #dc322f; 38 | $magenta: #d33682; 39 | $violet: #6c71c4; 40 | $blue: #268bd2; 41 | $cyan: #2aa198; 42 | $green: #859900; 43 | 44 | // Override theme settings (see ../template/settings.scss) 45 | $mainColor: $base1; 46 | $headingColor: $base2; 47 | $headingTextShadow: none; 48 | $backgroundColor: $base03; 49 | $linkColor: $blue; 50 | $linkColorHover: lighten( $linkColor, 20% ); 51 | $selectionBackgroundColor: $magenta; 52 | 53 | 54 | 55 | // Theme template ------------------------------ 56 | @import "../template/theme"; 57 | // --------------------------------------------- 58 | -------------------------------------------------------------------------------- /docs/slides/css/theme/source/night.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Black theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | // Include theme-specific fonts 15 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700); 16 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic); 17 | 18 | 19 | // Override theme settings (see ../template/settings.scss) 20 | $backgroundColor: #111; 21 | 22 | $mainFont: 'Open Sans', sans-serif; 23 | $linkColor: #e7ad52; 24 | $linkColorHover: lighten( $linkColor, 20% ); 25 | $headingFont: 'Montserrat', Impact, sans-serif; 26 | $headingTextShadow: none; 27 | $headingLetterSpacing: -0.03em; 28 | $headingTextTransform: none; 29 | $selectionBackgroundColor: #e7ad52; 30 | $mainFontSize: 30px; 31 | 32 | 33 | // Theme template ------------------------------ 34 | @import "../template/theme"; 35 | // --------------------------------------------- -------------------------------------------------------------------------------- /docs/slides/css/theme/source/serif.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * A simple theme for reveal.js presentations, similar 3 | * to the default theme. The accent color is brown. 4 | * 5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed. 6 | */ 7 | 8 | 9 | // Default mixins and settings ----------------- 10 | @import "../template/mixins"; 11 | @import "../template/settings"; 12 | // --------------------------------------------- 13 | 14 | 15 | 16 | // Override theme settings (see ../template/settings.scss) 17 | $mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; 18 | $mainColor: #000; 19 | $headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; 20 | $headingColor: #383D3D; 21 | $headingTextShadow: none; 22 | $headingTextTransform: none; 23 | $backgroundColor: #F0F1EB; 24 | $linkColor: #51483D; 25 | $linkColorHover: lighten( $linkColor, 20% ); 26 | $selectionBackgroundColor: #26351C; 27 | 28 | .reveal a { 29 | line-height: 1.3em; 30 | } 31 | 32 | 33 | // Theme template ------------------------------ 34 | @import "../template/theme"; 35 | // --------------------------------------------- 36 | -------------------------------------------------------------------------------- /docs/slides/css/theme/source/simple.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * A simple theme for reveal.js presentations, similar 3 | * to the default theme. The accent color is darkblue. 4 | * 5 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed. 6 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 7 | */ 8 | 9 | 10 | // Default mixins and settings ----------------- 11 | @import "../template/mixins"; 12 | @import "../template/settings"; 13 | // --------------------------------------------- 14 | 15 | 16 | 17 | // Include theme-specific fonts 18 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700); 19 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 20 | 21 | 22 | // Override theme settings (see ../template/settings.scss) 23 | $mainFont: 'Lato', sans-serif; 24 | $mainColor: #000; 25 | $headingFont: 'News Cycle', Impact, sans-serif; 26 | $headingColor: #000; 27 | $headingTextShadow: none; 28 | $headingTextTransform: none; 29 | $backgroundColor: #fff; 30 | $linkColor: #00008B; 31 | $linkColorHover: lighten( $linkColor, 20% ); 32 | $selectionBackgroundColor: rgba(0, 0, 0, 0.99); 33 | 34 | 35 | 36 | // Theme template ------------------------------ 37 | @import "../template/theme"; 38 | // --------------------------------------------- -------------------------------------------------------------------------------- /docs/slides/css/theme/source/sky.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Sky theme for reveal.js. 3 | * 4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | 15 | // Include theme-specific fonts 16 | @import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic); 17 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700); 18 | 19 | 20 | // Override theme settings (see ../template/settings.scss) 21 | $mainFont: 'Open Sans', sans-serif; 22 | $mainColor: #333; 23 | $headingFont: 'Quicksand', sans-serif; 24 | $headingColor: #333; 25 | $headingLetterSpacing: -0.08em; 26 | $headingTextShadow: none; 27 | $backgroundColor: #f7fbfc; 28 | $linkColor: #3b759e; 29 | $linkColorHover: lighten( $linkColor, 20% ); 30 | $selectionBackgroundColor: #134674; 31 | 32 | // Fix links so they are not cut off 33 | .reveal a { 34 | line-height: 1.3em; 35 | } 36 | 37 | // Background generator 38 | @mixin bodyBackground() { 39 | @include radial-gradient( #add9e4, #f7fbfc ); 40 | } 41 | 42 | 43 | 44 | // Theme template ------------------------------ 45 | @import "../template/theme"; 46 | // --------------------------------------------- 47 | -------------------------------------------------------------------------------- /docs/slides/css/theme/source/solarized.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Solarized Light theme for reveal.js. 3 | * Author: Achim Staebler 4 | */ 5 | 6 | 7 | // Default mixins and settings ----------------- 8 | @import "../template/mixins"; 9 | @import "../template/settings"; 10 | // --------------------------------------------- 11 | 12 | 13 | 14 | // Include theme-specific fonts 15 | @import url(../../lib/font/league-gothic/league-gothic.css); 16 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); 17 | 18 | 19 | /** 20 | * Solarized colors by Ethan Schoonover 21 | */ 22 | html * { 23 | color-profile: sRGB; 24 | rendering-intent: auto; 25 | } 26 | 27 | // Solarized colors 28 | $base03: #002b36; 29 | $base02: #073642; 30 | $base01: #586e75; 31 | $base00: #657b83; 32 | $base0: #839496; 33 | $base1: #93a1a1; 34 | $base2: #eee8d5; 35 | $base3: #fdf6e3; 36 | $yellow: #b58900; 37 | $orange: #cb4b16; 38 | $red: #dc322f; 39 | $magenta: #d33682; 40 | $violet: #6c71c4; 41 | $blue: #268bd2; 42 | $cyan: #2aa198; 43 | $green: #859900; 44 | 45 | // Override theme settings (see ../template/settings.scss) 46 | $mainColor: $base00; 47 | $headingColor: $base01; 48 | $headingTextShadow: none; 49 | $backgroundColor: $base3; 50 | $linkColor: $blue; 51 | $linkColorHover: lighten( $linkColor, 20% ); 52 | $selectionBackgroundColor: $magenta; 53 | 54 | // Background generator 55 | // @mixin bodyBackground() { 56 | // @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) ); 57 | // } 58 | 59 | 60 | 61 | // Theme template ------------------------------ 62 | @import "../template/theme"; 63 | // --------------------------------------------- 64 | -------------------------------------------------------------------------------- /docs/slides/css/theme/source/white.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * White theme for reveal.js. This is the opposite of the 'black' theme. 3 | * 4 | * By Hakim El Hattab, http://hakim.se 5 | */ 6 | 7 | 8 | // Default mixins and settings ----------------- 9 | @import "../template/mixins"; 10 | @import "../template/settings"; 11 | // --------------------------------------------- 12 | 13 | 14 | // Include theme-specific fonts 15 | @import url(../../lib/font/source-sans-pro/source-sans-pro.css); 16 | 17 | 18 | // Override theme settings (see ../template/settings.scss) 19 | $backgroundColor: #fff; 20 | 21 | $mainColor: #222; 22 | $headingColor: #222; 23 | 24 | $mainFontSize: 38px; 25 | $mainFont: 'Source Sans Pro', Helvetica, sans-serif; 26 | $headingFont: 'Source Sans Pro', Helvetica, sans-serif; 27 | $headingTextShadow: none; 28 | $headingLetterSpacing: normal; 29 | $headingTextTransform: uppercase; 30 | $headingFontWeight: 600; 31 | $linkColor: #2a76dd; 32 | $linkColorHover: lighten( $linkColor, 15% ); 33 | $selectionBackgroundColor: lighten( $linkColor, 25% ); 34 | 35 | $heading1Size: 2.5em; 36 | $heading2Size: 1.6em; 37 | $heading3Size: 1.3em; 38 | $heading4Size: 1.0em; 39 | 40 | section.has-dark-background { 41 | &, h1, h2, h3, h4, h5, h6 { 42 | color: #fff; 43 | } 44 | } 45 | 46 | 47 | // Theme template ------------------------------ 48 | @import "../template/theme"; 49 | // --------------------------------------------- -------------------------------------------------------------------------------- /docs/slides/css/theme/template/mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin vertical-gradient( $top, $bottom ) { 2 | background: $top; 3 | background: -moz-linear-gradient( top, $top 0%, $bottom 100% ); 4 | background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) ); 5 | background: -webkit-linear-gradient( top, $top 0%, $bottom 100% ); 6 | background: -o-linear-gradient( top, $top 0%, $bottom 100% ); 7 | background: -ms-linear-gradient( top, $top 0%, $bottom 100% ); 8 | background: linear-gradient( top, $top 0%, $bottom 100% ); 9 | } 10 | 11 | @mixin horizontal-gradient( $top, $bottom ) { 12 | background: $top; 13 | background: -moz-linear-gradient( left, $top 0%, $bottom 100% ); 14 | background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) ); 15 | background: -webkit-linear-gradient( left, $top 0%, $bottom 100% ); 16 | background: -o-linear-gradient( left, $top 0%, $bottom 100% ); 17 | background: -ms-linear-gradient( left, $top 0%, $bottom 100% ); 18 | background: linear-gradient( left, $top 0%, $bottom 100% ); 19 | } 20 | 21 | @mixin radial-gradient( $outer, $inner, $type: circle ) { 22 | background: $outer; 23 | background: -moz-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 24 | background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) ); 25 | background: -webkit-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 26 | background: -o-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 27 | background: -ms-radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 28 | background: radial-gradient( center, $type cover, $inner 0%, $outer 100% ); 29 | } -------------------------------------------------------------------------------- /docs/slides/css/theme/template/settings.scss: -------------------------------------------------------------------------------- 1 | // Base settings for all themes that can optionally be 2 | // overridden by the super-theme 3 | 4 | // Background of the presentation 5 | $backgroundColor: #2b2b2b; 6 | 7 | // Primary/body text 8 | $mainFont: 'Lato', sans-serif; 9 | $mainFontSize: 36px; 10 | $mainColor: #eee; 11 | 12 | // Vertical spacing between blocks of text 13 | $blockMargin: 20px; 14 | 15 | // Headings 16 | $headingMargin: 0 0 $blockMargin 0; 17 | $headingFont: 'League Gothic', Impact, sans-serif; 18 | $headingColor: #eee; 19 | $headingLineHeight: 1.2; 20 | $headingLetterSpacing: normal; 21 | $headingTextTransform: uppercase; 22 | $headingTextShadow: none; 23 | $headingFontWeight: normal; 24 | $heading1TextShadow: $headingTextShadow; 25 | 26 | $heading1Size: 3.77em; 27 | $heading2Size: 2.11em; 28 | $heading3Size: 1.55em; 29 | $heading4Size: 1.00em; 30 | 31 | // Links and actions 32 | $linkColor: #13DAEC; 33 | $linkColorHover: lighten( $linkColor, 20% ); 34 | 35 | // Text selection 36 | $selectionBackgroundColor: #FF5E99; 37 | $selectionColor: #fff; 38 | 39 | // Generates the presentation background, can be overridden 40 | // to return a background image or gradient 41 | @mixin bodyBackground() { 42 | background: $backgroundColor; 43 | } -------------------------------------------------------------------------------- /docs/slides/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /docs/slides/fonts/academicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/academicons.eot -------------------------------------------------------------------------------- /docs/slides/fonts/academicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/academicons.ttf -------------------------------------------------------------------------------- /docs/slides/fonts/academicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/academicons.woff -------------------------------------------------------------------------------- /docs/slides/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/slides/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/slides/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/slides/img/6x6-square-board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/6x6-square-board.png -------------------------------------------------------------------------------- /docs/slides/img/ada.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/ada.jpg -------------------------------------------------------------------------------- /docs/slides/img/alice-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-01.png -------------------------------------------------------------------------------- /docs/slides/img/alice-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-02.png -------------------------------------------------------------------------------- /docs/slides/img/alice-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-03.png -------------------------------------------------------------------------------- /docs/slides/img/alice-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-04.png -------------------------------------------------------------------------------- /docs/slides/img/alice-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-05.png -------------------------------------------------------------------------------- /docs/slides/img/alice-book-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-book-en.png -------------------------------------------------------------------------------- /docs/slides/img/alice-book-it.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-book-it.jpg -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-01.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-02.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-03.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-04.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-05.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-06.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-07.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-08.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-09.png -------------------------------------------------------------------------------- /docs/slides/img/alice-tree-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alice-tree-10.png -------------------------------------------------------------------------------- /docs/slides/img/alphago.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/alphago.png -------------------------------------------------------------------------------- /docs/slides/img/analytical_engine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/analytical_engine.jpg -------------------------------------------------------------------------------- /docs/slides/img/berezin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/berezin.jpg -------------------------------------------------------------------------------- /docs/slides/img/borges.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/borges.jpg -------------------------------------------------------------------------------- /docs/slides/img/bridges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/bridges.png -------------------------------------------------------------------------------- /docs/slides/img/calc-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/calc-01.png -------------------------------------------------------------------------------- /docs/slides/img/calc-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/calc-02.png -------------------------------------------------------------------------------- /docs/slides/img/calc-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/calc-03.png -------------------------------------------------------------------------------- /docs/slides/img/children.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/children.png -------------------------------------------------------------------------------- /docs/slides/img/chomsky.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/chomsky.jpg -------------------------------------------------------------------------------- /docs/slides/img/citation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/citation.png -------------------------------------------------------------------------------- /docs/slides/img/convex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/convex.jpg -------------------------------------------------------------------------------- /docs/slides/img/david.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/david.png -------------------------------------------------------------------------------- /docs/slides/img/decision.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/decision.png -------------------------------------------------------------------------------- /docs/slides/img/dh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/dh.png -------------------------------------------------------------------------------- /docs/slides/img/dictionary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/dictionary.png -------------------------------------------------------------------------------- /docs/slides/img/difference_engine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/difference_engine.png -------------------------------------------------------------------------------- /docs/slides/img/digraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/digraph.png -------------------------------------------------------------------------------- /docs/slides/img/does-it-halt-algorithm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/does-it-halt-algorithm.png -------------------------------------------------------------------------------- /docs/slides/img/eniac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/eniac.jpg -------------------------------------------------------------------------------- /docs/slides/img/euler.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/euler.jpg -------------------------------------------------------------------------------- /docs/slides/img/fanhui.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fanhui.jpg -------------------------------------------------------------------------------- /docs/slides/img/fib-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib-tree.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-01.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-02.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-03.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-04.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-05.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-06.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-07.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dc-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dc-08.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dp-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dp-01.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dp-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dp-02.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dp-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dp-03.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dp-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dp-04.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dp-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dp-05.png -------------------------------------------------------------------------------- /docs/slides/img/fib_dp-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fib_dp-06.png -------------------------------------------------------------------------------- /docs/slides/img/fibonacci.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/fibonacci.jpg -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-01.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-02.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-03.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-04.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-05.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-06.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-07.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-08.png -------------------------------------------------------------------------------- /docs/slides/img/final-algorithm-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/final-algorithm-09.png -------------------------------------------------------------------------------- /docs/slides/img/flowline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/flowline.png -------------------------------------------------------------------------------- /docs/slides/img/four-glasses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/four-glasses.png -------------------------------------------------------------------------------- /docs/slides/img/go.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/go.jpg -------------------------------------------------------------------------------- /docs/slides/img/graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/graph.png -------------------------------------------------------------------------------- /docs/slides/img/hands.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/hands.jpg -------------------------------------------------------------------------------- /docs/slides/img/hofstadter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/hofstadter.jpg -------------------------------------------------------------------------------- /docs/slides/img/holberton.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/holberton.jpg -------------------------------------------------------------------------------- /docs/slides/img/hopper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/hopper.png -------------------------------------------------------------------------------- /docs/slides/img/input_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/input_output.png -------------------------------------------------------------------------------- /docs/slides/img/insertion-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/insertion-01.png -------------------------------------------------------------------------------- /docs/slides/img/insertion-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/insertion-02.png -------------------------------------------------------------------------------- /docs/slides/img/insertion-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/insertion-03.png -------------------------------------------------------------------------------- /docs/slides/img/insertion-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/insertion-04.png -------------------------------------------------------------------------------- /docs/slides/img/insertion-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/insertion-05.png -------------------------------------------------------------------------------- /docs/slides/img/insertion-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/insertion-06.png -------------------------------------------------------------------------------- /docs/slides/img/japanese.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/japanese.png -------------------------------------------------------------------------------- /docs/slides/img/kejie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/kejie.png -------------------------------------------------------------------------------- /docs/slides/img/knuth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/knuth.jpg -------------------------------------------------------------------------------- /docs/slides/img/languages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/languages.png -------------------------------------------------------------------------------- /docs/slides/img/leesedol.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/leesedol.jpg -------------------------------------------------------------------------------- /docs/slides/img/library.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/library.jpg -------------------------------------------------------------------------------- /docs/slides/img/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/list.png -------------------------------------------------------------------------------- /docs/slides/img/machine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/machine.jpg -------------------------------------------------------------------------------- /docs/slides/img/marquez.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/marquez.jpg -------------------------------------------------------------------------------- /docs/slides/img/memo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/memo.png -------------------------------------------------------------------------------- /docs/slides/img/merge-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-01.png -------------------------------------------------------------------------------- /docs/slides/img/merge-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-02.png -------------------------------------------------------------------------------- /docs/slides/img/merge-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-03.png -------------------------------------------------------------------------------- /docs/slides/img/merge-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-04.png -------------------------------------------------------------------------------- /docs/slides/img/merge-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-05.png -------------------------------------------------------------------------------- /docs/slides/img/merge-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-06.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-01.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-02.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-03.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-04.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-05.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-06.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-07.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-08.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-09.png -------------------------------------------------------------------------------- /docs/slides/img/merge-sort-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/merge-sort-10.png -------------------------------------------------------------------------------- /docs/slides/img/meta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/meta.png -------------------------------------------------------------------------------- /docs/slides/img/mindsets1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/mindsets1.png -------------------------------------------------------------------------------- /docs/slides/img/mindsets2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/mindsets2.png -------------------------------------------------------------------------------- /docs/slides/img/move-tree-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/move-tree-01.png -------------------------------------------------------------------------------- /docs/slides/img/move-tree-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/move-tree-02.png -------------------------------------------------------------------------------- /docs/slides/img/move-tree-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/move-tree-03.png -------------------------------------------------------------------------------- /docs/slides/img/move-tree-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/move-tree-04.png -------------------------------------------------------------------------------- /docs/slides/img/move-tree-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/move-tree-05.png -------------------------------------------------------------------------------- /docs/slides/img/move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/move.png -------------------------------------------------------------------------------- /docs/slides/img/opencitations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/opencitations.png -------------------------------------------------------------------------------- /docs/slides/img/partial-algorithm-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/partial-algorithm-01.png -------------------------------------------------------------------------------- /docs/slides/img/partial-algorithm-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/partial-algorithm-02.png -------------------------------------------------------------------------------- /docs/slides/img/partial-algorithm-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/partial-algorithm-03.png -------------------------------------------------------------------------------- /docs/slides/img/partial-algorithm-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/partial-algorithm-04.png -------------------------------------------------------------------------------- /docs/slides/img/partial-algorithm-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/partial-algorithm-05.png -------------------------------------------------------------------------------- /docs/slides/img/peg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/peg.png -------------------------------------------------------------------------------- /docs/slides/img/position.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/position.png -------------------------------------------------------------------------------- /docs/slides/img/post_office.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/post_office.png -------------------------------------------------------------------------------- /docs/slides/img/problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/problem.png -------------------------------------------------------------------------------- /docs/slides/img/process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/process.png -------------------------------------------------------------------------------- /docs/slides/img/python-links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/python-links.png -------------------------------------------------------------------------------- /docs/slides/img/queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/queue.png -------------------------------------------------------------------------------- /docs/slides/img/recipe-ikea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/recipe-ikea.png -------------------------------------------------------------------------------- /docs/slides/img/recursion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/recursion.png -------------------------------------------------------------------------------- /docs/slides/img/resolution-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/resolution-01.png -------------------------------------------------------------------------------- /docs/slides/img/resolution-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/resolution-02.png -------------------------------------------------------------------------------- /docs/slides/img/set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/set.png -------------------------------------------------------------------------------- /docs/slides/img/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/setting.png -------------------------------------------------------------------------------- /docs/slides/img/simple-algorithm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/simple-algorithm.png -------------------------------------------------------------------------------- /docs/slides/img/spar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/spar.png -------------------------------------------------------------------------------- /docs/slides/img/stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/stack.png -------------------------------------------------------------------------------- /docs/slides/img/tdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tdd.png -------------------------------------------------------------------------------- /docs/slides/img/terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/terminal.png -------------------------------------------------------------------------------- /docs/slides/img/three-glasses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/three-glasses.png -------------------------------------------------------------------------------- /docs/slides/img/tree-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-01.png -------------------------------------------------------------------------------- /docs/slides/img/tree-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-02.png -------------------------------------------------------------------------------- /docs/slides/img/tree-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-03.png -------------------------------------------------------------------------------- /docs/slides/img/tree-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-04.png -------------------------------------------------------------------------------- /docs/slides/img/tree-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-05.png -------------------------------------------------------------------------------- /docs/slides/img/tree-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-06.png -------------------------------------------------------------------------------- /docs/slides/img/tree-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-07.png -------------------------------------------------------------------------------- /docs/slides/img/tree-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/tree-08.png -------------------------------------------------------------------------------- /docs/slides/img/turing-machine-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing-machine-01.png -------------------------------------------------------------------------------- /docs/slides/img/turing-machine-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing-machine-02.png -------------------------------------------------------------------------------- /docs/slides/img/turing-machine-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing-machine-03.png -------------------------------------------------------------------------------- /docs/slides/img/turing-machine-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing-machine-04.png -------------------------------------------------------------------------------- /docs/slides/img/turing-machine-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing-machine-05.png -------------------------------------------------------------------------------- /docs/slides/img/turing-machine-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing-machine-06.png -------------------------------------------------------------------------------- /docs/slides/img/turing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/turing.jpg -------------------------------------------------------------------------------- /docs/slides/img/vonneumann.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/vonneumann.png -------------------------------------------------------------------------------- /docs/slides/img/wrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/img/wrap.png -------------------------------------------------------------------------------- /docs/slides/lib/css/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /docs/slides/lib/font/league-gothic/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /docs/slides/lib/font/league-gothic/league-gothic.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'League Gothic'; 3 | src: url('league-gothic.eot'); 4 | src: url('league-gothic.eot?#iefix') format('embedded-opentype'), 5 | url('league-gothic.woff') format('woff'), 6 | url('league-gothic.ttf') format('truetype'); 7 | 8 | font-weight: normal; 9 | font-style: normal; 10 | } -------------------------------------------------------------------------------- /docs/slides/lib/font/league-gothic/league-gothic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/league-gothic/league-gothic.eot -------------------------------------------------------------------------------- /docs/slides/lib/font/league-gothic/league-gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/league-gothic/league-gothic.ttf -------------------------------------------------------------------------------- /docs/slides/lib/font/league-gothic/league-gothic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/league-gothic/league-gothic.woff -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License 2 | 3 | Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. 4 | 5 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 6 | This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL 7 | 8 | —————————————————————————————- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | —————————————————————————————- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. 14 | 15 | The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. 16 | 17 | DEFINITIONS 18 | “Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. 19 | 20 | “Reserved Font Name” refers to any names specified as such after the copyright statement(s). 21 | 22 | “Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s). 23 | 24 | “Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. 25 | 26 | “Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. 27 | 28 | PERMISSION & CONDITIONS 29 | Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 30 | 31 | 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 32 | 33 | 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 34 | 35 | 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 36 | 37 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 38 | 39 | 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. 40 | 41 | TERMINATION 42 | This license becomes null and void if any of the above conditions are not met. 43 | 44 | DISCLAIMER 45 | THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/slides/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /docs/slides/lib/font/source-sans-pro/source-sans-pro.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Source Sans Pro'; 3 | src: url('source-sans-pro-regular.eot'); 4 | src: url('source-sans-pro-regular.eot?#iefix') format('embedded-opentype'), 5 | url('source-sans-pro-regular.woff') format('woff'), 6 | url('source-sans-pro-regular.ttf') format('truetype'); 7 | font-weight: normal; 8 | font-style: normal; 9 | } 10 | 11 | @font-face { 12 | font-family: 'Source Sans Pro'; 13 | src: url('source-sans-pro-italic.eot'); 14 | src: url('source-sans-pro-italic.eot?#iefix') format('embedded-opentype'), 15 | url('source-sans-pro-italic.woff') format('woff'), 16 | url('source-sans-pro-italic.ttf') format('truetype'); 17 | font-weight: normal; 18 | font-style: italic; 19 | } 20 | 21 | @font-face { 22 | font-family: 'Source Sans Pro'; 23 | src: url('source-sans-pro-semibold.eot'); 24 | src: url('source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'), 25 | url('source-sans-pro-semibold.woff') format('woff'), 26 | url('source-sans-pro-semibold.ttf') format('truetype'); 27 | font-weight: 600; 28 | font-style: normal; 29 | } 30 | 31 | @font-face { 32 | font-family: 'Source Sans Pro'; 33 | src: url('source-sans-pro-semibolditalic.eot'); 34 | src: url('source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'), 35 | url('source-sans-pro-semibolditalic.woff') format('woff'), 36 | url('source-sans-pro-semibolditalic.ttf') format('truetype'); 37 | font-weight: 600; 38 | font-style: italic; 39 | } -------------------------------------------------------------------------------- /docs/slides/lib/js/classList.js: -------------------------------------------------------------------------------- 1 | /*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ 2 | if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p 2 | 3 | 4 | 5 | 6 | 7 | reveal.js - Markdown Demo 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 |
23 | 24 | 25 |
26 | 36 |
37 | 38 | 39 |
40 | 54 |
55 | 56 | 57 |
58 | 69 |
70 | 71 | 72 |
73 | 77 |
78 | 79 | 80 |
81 | 86 |
87 | 88 | 89 |
90 | 100 |
101 | 102 |
103 |
104 | 105 | 106 | 107 | 108 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /docs/slides/plugin/markdown/example.md: -------------------------------------------------------------------------------- 1 | # Markdown Demo 2 | 3 | 4 | 5 | ## External 1.1 6 | 7 | Content 1.1 8 | 9 | Note: This will only appear in the speaker notes window. 10 | 11 | 12 | ## External 1.2 13 | 14 | Content 1.2 15 | 16 | 17 | 18 | ## External 2 19 | 20 | Content 2.1 21 | 22 | 23 | 24 | ## External 3.1 25 | 26 | Content 3.1 27 | 28 | 29 | ## External 3.2 30 | 31 | Content 3.2 32 | -------------------------------------------------------------------------------- /docs/slides/plugin/math/math.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for MathJax. 4 | * 5 | * @author Hakim El Hattab 6 | */ 7 | var RevealMath = window.RevealMath || (function(){ 8 | 9 | var options = Reveal.getConfig().math || {}; 10 | options.mathjax = options.mathjax || 'https://cdn.mathjax.org/mathjax/latest/MathJax.js'; 11 | options.config = options.config || 'TeX-AMS_HTML-full'; 12 | 13 | loadScript( options.mathjax + '?config=' + options.config, function() { 14 | 15 | MathJax.Hub.Config({ 16 | messageStyle: 'none', 17 | tex2jax: { 18 | inlineMath: [['$','$'],['\\(','\\)']] , 19 | skipTags: ['script','noscript','style','textarea','pre'] 20 | }, 21 | skipStartupTypeset: true 22 | }); 23 | 24 | // Typeset followed by an immediate reveal.js layout since 25 | // the typesetting process could affect slide height 26 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] ); 27 | MathJax.Hub.Queue( Reveal.layout ); 28 | 29 | // Reprocess equations in slides when they turn visible 30 | Reveal.addEventListener( 'slidechanged', function( event ) { 31 | 32 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] ); 33 | 34 | } ); 35 | 36 | } ); 37 | 38 | function loadScript( url, callback ) { 39 | 40 | var head = document.querySelector( 'head' ); 41 | var script = document.createElement( 'script' ); 42 | script.type = 'text/javascript'; 43 | script.src = url; 44 | 45 | // Wrapper for callback to make sure it only fires once 46 | var finish = function() { 47 | if( typeof callback === 'function' ) { 48 | callback.call(); 49 | callback = null; 50 | } 51 | } 52 | 53 | script.onload = finish; 54 | 55 | // IE 56 | script.onreadystatechange = function() { 57 | if ( this.readyState === 'loaded' ) { 58 | finish(); 59 | } 60 | } 61 | 62 | // Normal browsers 63 | head.appendChild( script ); 64 | 65 | } 66 | 67 | })(); 68 | -------------------------------------------------------------------------------- /docs/slides/plugin/multiplex/client.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var multiplex = Reveal.getConfig().multiplex; 3 | var socketId = multiplex.id; 4 | var socket = io.connect(multiplex.url); 5 | 6 | socket.on(multiplex.id, function(data) { 7 | // ignore data from sockets that aren't ours 8 | if (data.socketId !== socketId) { return; } 9 | if( window.location.host === 'localhost:1947' ) return; 10 | 11 | Reveal.setState(data.state); 12 | }); 13 | }()); 14 | -------------------------------------------------------------------------------- /docs/slides/plugin/multiplex/index.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var express = require('express'); 3 | var fs = require('fs'); 4 | var io = require('socket.io'); 5 | var crypto = require('crypto'); 6 | 7 | var app = express(); 8 | var staticDir = express.static; 9 | var server = http.createServer(app); 10 | 11 | io = io(server); 12 | 13 | var opts = { 14 | port: process.env.PORT || 1948, 15 | baseDir : __dirname + '/../../' 16 | }; 17 | 18 | io.on( 'connection', function( socket ) { 19 | socket.on('multiplex-statechanged', function(data) { 20 | if (typeof data.secret == 'undefined' || data.secret == null || data.secret === '') return; 21 | if (createHash(data.secret) === data.socketId) { 22 | data.secret = null; 23 | socket.broadcast.emit(data.socketId, data); 24 | }; 25 | }); 26 | }); 27 | 28 | [ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) { 29 | app.use('/' + dir, staticDir(opts.baseDir + dir)); 30 | }); 31 | 32 | app.get("/", function(req, res) { 33 | res.writeHead(200, {'Content-Type': 'text/html'}); 34 | 35 | var stream = fs.createReadStream(opts.baseDir + '/index.html'); 36 | stream.on('error', function( error ) { 37 | res.write('

reveal.js multiplex server.

Generate token'); 38 | res.end(); 39 | }); 40 | stream.on('readable', function() { 41 | stream.pipe(res); 42 | }); 43 | }); 44 | 45 | app.get("/token", function(req,res) { 46 | var ts = new Date().getTime(); 47 | var rand = Math.floor(Math.random()*9999999); 48 | var secret = ts.toString() + rand.toString(); 49 | res.send({secret: secret, socketId: createHash(secret)}); 50 | }); 51 | 52 | var createHash = function(secret) { 53 | var cipher = crypto.createCipher('blowfish', secret); 54 | return(cipher.final('hex')); 55 | }; 56 | 57 | // Actually listen 58 | server.listen( opts.port || null ); 59 | 60 | var brown = '\033[33m', 61 | green = '\033[32m', 62 | reset = '\033[0m'; 63 | 64 | console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset ); -------------------------------------------------------------------------------- /docs/slides/plugin/multiplex/master.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | // Don't emit events from inside of notes windows 4 | if ( window.location.search.match( /receiver/gi ) ) { return; } 5 | 6 | var multiplex = Reveal.getConfig().multiplex; 7 | 8 | var socket = io.connect( multiplex.url ); 9 | 10 | function post() { 11 | 12 | var messageData = { 13 | state: Reveal.getState(), 14 | secret: multiplex.secret, 15 | socketId: multiplex.id 16 | }; 17 | 18 | socket.emit( 'multiplex-statechanged', messageData ); 19 | 20 | }; 21 | 22 | // Monitor events that trigger a change in state 23 | Reveal.addEventListener( 'slidechanged', post ); 24 | Reveal.addEventListener( 'fragmentshown', post ); 25 | Reveal.addEventListener( 'fragmenthidden', post ); 26 | Reveal.addEventListener( 'overviewhidden', post ); 27 | Reveal.addEventListener( 'overviewshown', post ); 28 | Reveal.addEventListener( 'paused', post ); 29 | Reveal.addEventListener( 'resumed', post ); 30 | 31 | }()); -------------------------------------------------------------------------------- /docs/slides/plugin/multiplex/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal-js-multiplex", 3 | "version": "1.0.0", 4 | "description": "reveal.js multiplex server", 5 | "homepage": "http://lab.hakim.se/reveal-js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "engines": { 10 | "node": "~4.1.1" 11 | }, 12 | "dependencies": { 13 | "express": "~4.13.3", 14 | "grunt-cli": "~0.1.13", 15 | "mustache": "~2.2.1", 16 | "socket.io": "~1.3.7" 17 | }, 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /docs/slides/plugin/notes-server/client.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | // don't emit events from inside the previews themselves 4 | if( window.location.search.match( /receiver/gi ) ) { return; } 5 | 6 | var socket = io.connect( window.location.origin ), 7 | socketId = Math.random().toString().slice( 2 ); 8 | 9 | console.log( 'View slide notes at ' + window.location.origin + '/notes/' + socketId ); 10 | 11 | window.open( window.location.origin + '/notes/' + socketId, 'notes-' + socketId ); 12 | 13 | /** 14 | * Posts the current slide data to the notes window 15 | */ 16 | function post() { 17 | 18 | var slideElement = Reveal.getCurrentSlide(), 19 | notesElement = slideElement.querySelector( 'aside.notes' ); 20 | 21 | var messageData = { 22 | notes: '', 23 | markdown: false, 24 | socketId: socketId, 25 | state: Reveal.getState() 26 | }; 27 | 28 | // Look for notes defined in a slide attribute 29 | if( slideElement.hasAttribute( 'data-notes' ) ) { 30 | messageData.notes = slideElement.getAttribute( 'data-notes' ); 31 | } 32 | 33 | // Look for notes defined in an aside element 34 | if( notesElement ) { 35 | messageData.notes = notesElement.innerHTML; 36 | messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string'; 37 | } 38 | 39 | socket.emit( 'statechanged', messageData ); 40 | 41 | } 42 | 43 | // When a new notes window connects, post our current state 44 | socket.on( 'new-subscriber', function( data ) { 45 | post(); 46 | } ); 47 | 48 | // When the state changes from inside of the speaker view 49 | socket.on( 'statechanged-speaker', function( data ) { 50 | Reveal.setState( data.state ); 51 | } ); 52 | 53 | // Monitor events that trigger a change in state 54 | Reveal.addEventListener( 'slidechanged', post ); 55 | Reveal.addEventListener( 'fragmentshown', post ); 56 | Reveal.addEventListener( 'fragmenthidden', post ); 57 | Reveal.addEventListener( 'overviewhidden', post ); 58 | Reveal.addEventListener( 'overviewshown', post ); 59 | Reveal.addEventListener( 'paused', post ); 60 | Reveal.addEventListener( 'resumed', post ); 61 | 62 | // Post the initial state 63 | post(); 64 | 65 | }()); 66 | -------------------------------------------------------------------------------- /docs/slides/plugin/notes-server/index.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var express = require('express'); 3 | var fs = require('fs'); 4 | var io = require('socket.io'); 5 | var Mustache = require('mustache'); 6 | 7 | var app = express(); 8 | var staticDir = express.static; 9 | var server = http.createServer(app); 10 | 11 | io = io(server); 12 | 13 | var opts = { 14 | port : 1947, 15 | baseDir : __dirname + '/../../' 16 | }; 17 | 18 | io.on( 'connection', function( socket ) { 19 | 20 | socket.on( 'new-subscriber', function( data ) { 21 | socket.broadcast.emit( 'new-subscriber', data ); 22 | }); 23 | 24 | socket.on( 'statechanged', function( data ) { 25 | delete data.state.overview; 26 | socket.broadcast.emit( 'statechanged', data ); 27 | }); 28 | 29 | socket.on( 'statechanged-speaker', function( data ) { 30 | delete data.state.overview; 31 | socket.broadcast.emit( 'statechanged-speaker', data ); 32 | }); 33 | 34 | }); 35 | 36 | [ 'css', 'js', 'images', 'plugin', 'lib' ].forEach( function( dir ) { 37 | app.use( '/' + dir, staticDir( opts.baseDir + dir ) ); 38 | }); 39 | 40 | app.get('/', function( req, res ) { 41 | 42 | res.writeHead( 200, { 'Content-Type': 'text/html' } ); 43 | fs.createReadStream( opts.baseDir + '/index.html' ).pipe( res ); 44 | 45 | }); 46 | 47 | app.get( '/notes/:socketId', function( req, res ) { 48 | 49 | fs.readFile( opts.baseDir + 'plugin/notes-server/notes.html', function( err, data ) { 50 | res.send( Mustache.to_html( data.toString(), { 51 | socketId : req.params.socketId 52 | })); 53 | }); 54 | 55 | }); 56 | 57 | // Actually listen 58 | server.listen( opts.port || null ); 59 | 60 | var brown = '\033[33m', 61 | green = '\033[32m', 62 | reset = '\033[0m'; 63 | 64 | var slidesLocation = 'http://localhost' + ( opts.port ? ( ':' + opts.port ) : '' ); 65 | 66 | console.log( brown + 'reveal.js - Speaker Notes' + reset ); 67 | console.log( '1. Open the slides at ' + green + slidesLocation + reset ); 68 | console.log( '2. Click on the link in your JS console to go to the notes page' ); 69 | console.log( '3. Advance through your slides and your notes will advance automatically' ); 70 | -------------------------------------------------------------------------------- /docs/slides/plugin/notes/notes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Handles opening of and synchronization with the reveal.js 3 | * notes window. 4 | * 5 | * Handshake process: 6 | * 1. This window posts 'connect' to notes window 7 | * - Includes URL of presentation to show 8 | * 2. Notes window responds with 'connected' when it is available 9 | * 3. This window proceeds to send the current presentation state 10 | * to the notes window 11 | */ 12 | var RevealNotes = (function() { 13 | 14 | function openNotes( notesFilePath ) { 15 | 16 | if( !notesFilePath ) { 17 | var jsFileLocation = document.querySelector('script[src$="notes.js"]').src; // this js file path 18 | jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, ''); // the js folder path 19 | notesFilePath = jsFileLocation + 'notes.html'; 20 | } 21 | 22 | var notesPopup = window.open( notesFilePath, 'reveal.js - Notes', 'width=1100,height=700' ); 23 | 24 | /** 25 | * Connect to the notes window through a postmessage handshake. 26 | * Using postmessage enables us to work in situations where the 27 | * origins differ, such as a presentation being opened from the 28 | * file system. 29 | */ 30 | function connect() { 31 | // Keep trying to connect until we get a 'connected' message back 32 | var connectInterval = setInterval( function() { 33 | notesPopup.postMessage( JSON.stringify( { 34 | namespace: 'reveal-notes', 35 | type: 'connect', 36 | url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search, 37 | state: Reveal.getState() 38 | } ), '*' ); 39 | }, 500 ); 40 | 41 | window.addEventListener( 'message', function( event ) { 42 | var data = JSON.parse( event.data ); 43 | if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) { 44 | clearInterval( connectInterval ); 45 | onConnected(); 46 | } 47 | } ); 48 | } 49 | 50 | /** 51 | * Posts the current slide data to the notes window 52 | */ 53 | function post() { 54 | 55 | var slideElement = Reveal.getCurrentSlide(), 56 | notesElement = slideElement.querySelector( 'aside.notes' ); 57 | 58 | var messageData = { 59 | namespace: 'reveal-notes', 60 | type: 'state', 61 | notes: '', 62 | markdown: false, 63 | whitespace: 'normal', 64 | state: Reveal.getState() 65 | }; 66 | 67 | // Look for notes defined in a slide attribute 68 | if( slideElement.hasAttribute( 'data-notes' ) ) { 69 | messageData.notes = slideElement.getAttribute( 'data-notes' ); 70 | messageData.whitespace = 'pre-wrap'; 71 | } 72 | 73 | // Look for notes defined in an aside element 74 | if( notesElement ) { 75 | messageData.notes = notesElement.innerHTML; 76 | messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string'; 77 | } 78 | 79 | notesPopup.postMessage( JSON.stringify( messageData ), '*' ); 80 | 81 | } 82 | 83 | /** 84 | * Called once we have established a connection to the notes 85 | * window. 86 | */ 87 | function onConnected() { 88 | 89 | // Monitor events that trigger a change in state 90 | Reveal.addEventListener( 'slidechanged', post ); 91 | Reveal.addEventListener( 'fragmentshown', post ); 92 | Reveal.addEventListener( 'fragmenthidden', post ); 93 | Reveal.addEventListener( 'overviewhidden', post ); 94 | Reveal.addEventListener( 'overviewshown', post ); 95 | Reveal.addEventListener( 'paused', post ); 96 | Reveal.addEventListener( 'resumed', post ); 97 | 98 | // Post the initial state 99 | post(); 100 | 101 | } 102 | 103 | connect(); 104 | 105 | } 106 | 107 | if( !/receiver/i.test( window.location.search ) ) { 108 | 109 | // If the there's a 'notes' query set, open directly 110 | if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) { 111 | openNotes(); 112 | } 113 | 114 | // Open the notes when the 's' key is hit 115 | document.addEventListener( 'keydown', function( event ) { 116 | // Disregard the event if the target is editable or a 117 | // modifier is present 118 | if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return; 119 | 120 | // Disregard the event if keyboard is disabled 121 | if ( Reveal.getConfig().keyboard === false ) return; 122 | 123 | if( event.keyCode === 83 ) { 124 | event.preventDefault(); 125 | openNotes(); 126 | } 127 | }, false ); 128 | 129 | // Show our keyboard shortcut in the reveal.js help overlay 130 | if( window.Reveal ) Reveal.registerKeyboardShortcut( 'S', 'Speaker notes view' ); 131 | 132 | } 133 | 134 | return { open: openNotes }; 135 | 136 | })(); 137 | -------------------------------------------------------------------------------- /docs/slides/plugin/print-pdf/print-pdf.js: -------------------------------------------------------------------------------- 1 | /** 2 | * phantomjs script for printing presentations to PDF. 3 | * 4 | * Example: 5 | * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf 6 | * 7 | * By Manuel Bieh (https://github.com/manuelbieh) 8 | */ 9 | 10 | // html2pdf.js 11 | var page = new WebPage(); 12 | var system = require( 'system' ); 13 | 14 | var slideWidth = system.args[3] ? system.args[3].split( 'x' )[0] : 960; 15 | var slideHeight = system.args[3] ? system.args[3].split( 'x' )[1] : 700; 16 | 17 | page.viewportSize = { 18 | width: slideWidth, 19 | height: slideHeight 20 | }; 21 | 22 | // TODO 23 | // Something is wrong with these config values. An input 24 | // paper width of 1920px actually results in a 756px wide 25 | // PDF. 26 | page.paperSize = { 27 | width: Math.round( slideWidth * 2 ), 28 | height: Math.round( slideHeight * 2 ), 29 | border: 0 30 | }; 31 | 32 | var inputFile = system.args[1] || 'index.html?print-pdf'; 33 | var outputFile = system.args[2] || 'slides.pdf'; 34 | 35 | if( outputFile.match( /\.pdf$/gi ) === null ) { 36 | outputFile += '.pdf'; 37 | } 38 | 39 | console.log( 'Printing PDF (Paper size: '+ page.paperSize.width + 'x' + page.paperSize.height +')' ); 40 | 41 | page.open( inputFile, function( status ) { 42 | window.setTimeout( function() { 43 | console.log( 'Printed successfully' ); 44 | page.render( outputFile ); 45 | phantom.exit(); 46 | }, 1000 ); 47 | } ); 48 | 49 | -------------------------------------------------------------------------------- /docs/workshop/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | __pycache__/ 3 | students/ -------------------------------------------------------------------------------- /docs/workshop/0.json: -------------------------------------------------------------------------------- 1 | { 2 | "structure": [ 3 | [ 4 | { 5 | "x": 0, 6 | "y": 0, 7 | "type": "free" 8 | }, 9 | { 10 | "x": 1, 11 | "y": 0, 12 | "type": "free" 13 | }, 14 | { 15 | "x": 2, 16 | "y": 0, 17 | "type": "free" 18 | }, 19 | { 20 | "x": 3, 21 | "y": 0, 22 | "type": "free" 23 | } 24 | ], 25 | [ 26 | { 27 | "x": 0, 28 | "y": 1, 29 | "type": "free" 30 | }, 31 | { 32 | "x": 1, 33 | "y": 1, 34 | "type": "wall" 35 | }, 36 | { 37 | "x": 2, 38 | "y": 1, 39 | "type": "free" 40 | }, 41 | { 42 | "x": 3, 43 | "y": 1, 44 | "type": "wall" 45 | } 46 | ], 47 | [ 48 | { 49 | "x": 0, 50 | "y": 2, 51 | "type": "free" 52 | }, 53 | { 54 | "x": 1, 55 | "y": 2, 56 | "type": "free" 57 | }, 58 | { 59 | "x": 2, 60 | "y": 2, 61 | "type": "free" 62 | }, 63 | { 64 | "x": 3, 65 | "y": 2, 66 | "type": "free" 67 | } 68 | ], 69 | [ 70 | { 71 | "x": 0, 72 | "y": 3, 73 | "type": "wall" 74 | }, 75 | { 76 | "x": 1, 77 | "y": 3, 78 | "type": "wall" 79 | }, 80 | { 81 | "x": 2, 82 | "y": 3, 83 | "type": "free" 84 | }, 85 | { 86 | "x": 3, 87 | "y": 3, 88 | "type": "free" 89 | } 90 | ] 91 | ], 92 | "cannon": { 93 | "x": 3, 94 | "y": 3 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /docs/workshop/group.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, Silvio Peroni 3 | # 4 | # Permission to use, copy, modify, and/or distribute this software for any purpose 5 | # with or without fee is hereby granted, provided that the above copyright notice 6 | # and this permission notice appear in all copies. 7 | # 8 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 9 | # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 10 | # FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, 11 | # OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 12 | # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 13 | # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 14 | # SOFTWARE. 15 | 16 | # This is a fake (i.e. it fails) implementation of the 'do_move' 17 | # function, that does always create a set with an invalid couple of coordinates 18 | # representing the wall to destroy. Change the body of the function to provide 19 | # better instructions to play The Cannon Escape. 20 | def do_move(maze, cannon): 21 | return [(-1, -1)] -------------------------------------------------------------------------------- /docs/workshop/john_doe.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, Silvio Peroni 3 | # 4 | # Permission to use, copy, modify, and/or distribute this software for any purpose 5 | # with or without fee is hereby granted, provided that the above copyright notice 6 | # and this permission notice appear in all copies. 7 | # 8 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 9 | # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 10 | # FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, 11 | # OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 12 | # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 13 | # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 14 | # SOFTWARE. 15 | 16 | def do_move(maze, cannon): 17 | limit = len(maze[0]) 18 | 19 | walls = set() 20 | 21 | for row in maze: 22 | for cell in row: 23 | if cell["type"] == "wall": 24 | walls.add((cell["x"], cell["y"])) 25 | 26 | diff = [ 27 | (-1, 0), (1, 0), 28 | (0, -1), (0, 1), 29 | (1, -1), (-1, 1), 30 | (1, 1), (-1, -1) 31 | ] 32 | 33 | best_result = [] 34 | 35 | for d_x, d_y in diff: 36 | walls_hit = [] 37 | c_x, c_y = cannon[0] + d_x, cannon[1] + d_y 38 | 39 | while c_x > -1 and c_x <= limit and c_y > -1 and c_y <= limit: 40 | if (c_x, c_y) in walls: 41 | walls_hit.append((c_x, c_y)) 42 | 43 | c_x += d_x 44 | c_y += d_y 45 | 46 | if len(walls_hit) > len(best_result): 47 | best_result = walls_hit 48 | 49 | return best_result -------------------------------------------------------------------------------- /docs/workshop/rooms/1.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 1, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/10.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 2, "y": 7}} -------------------------------------------------------------------------------- /docs/workshop/rooms/11.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}, {"x": 8, "y": 0, "type": "wall"}, {"x": 9, "y": 0, "type": "free"}, {"x": 10, "y": 0, "type": "wall"}, {"x": 11, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "wall"}, {"x": 8, "y": 1, "type": "wall"}, {"x": 9, "y": 1, "type": "free"}, {"x": 10, "y": 1, "type": "free"}, {"x": 11, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}, {"x": 8, "y": 2, "type": "free"}, {"x": 9, "y": 2, "type": "wall"}, {"x": 10, "y": 2, "type": "free"}, {"x": 11, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}, {"x": 8, "y": 3, "type": "free"}, {"x": 9, "y": 3, "type": "wall"}, {"x": 10, "y": 3, "type": "free"}, {"x": 11, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}, {"x": 8, "y": 4, "type": "free"}, {"x": 9, "y": 4, "type": "free"}, {"x": 10, "y": 4, "type": "free"}, {"x": 11, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}, {"x": 8, "y": 5, "type": "wall"}, {"x": 9, "y": 5, "type": "free"}, {"x": 10, "y": 5, "type": "free"}, {"x": 11, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}, {"x": 8, "y": 6, "type": "free"}, {"x": 9, "y": 6, "type": "free"}, {"x": 10, "y": 6, "type": "free"}, {"x": 11, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "free"}, {"x": 8, "y": 7, "type": "free"}, {"x": 9, "y": 7, "type": "free"}, {"x": 10, "y": 7, "type": "wall"}, {"x": 11, "y": 7, "type": "free"}], [{"x": 0, "y": 8, "type": "wall"}, {"x": 1, "y": 8, "type": "free"}, {"x": 2, "y": 8, "type": "wall"}, {"x": 3, "y": 8, "type": "free"}, {"x": 4, "y": 8, "type": "free"}, {"x": 5, "y": 8, "type": "free"}, {"x": 6, "y": 8, "type": "free"}, {"x": 7, "y": 8, "type": "wall"}, {"x": 8, "y": 8, "type": "free"}, {"x": 9, "y": 8, "type": "free"}, {"x": 10, "y": 8, "type": "wall"}, {"x": 11, "y": 8, "type": "wall"}], [{"x": 0, "y": 9, "type": "free"}, {"x": 1, "y": 9, "type": "free"}, {"x": 2, "y": 9, "type": "wall"}, {"x": 3, "y": 9, "type": "free"}, {"x": 4, "y": 9, "type": "free"}, {"x": 5, "y": 9, "type": "wall"}, {"x": 6, "y": 9, "type": "free"}, {"x": 7, "y": 9, "type": "wall"}, {"x": 8, "y": 9, "type": "wall"}, {"x": 9, "y": 9, "type": "free"}, {"x": 10, "y": 9, "type": "wall"}, {"x": 11, "y": 9, "type": "free"}], [{"x": 0, "y": 10, "type": "free"}, {"x": 1, "y": 10, "type": "free"}, {"x": 2, "y": 10, "type": "free"}, {"x": 3, "y": 10, "type": "free"}, {"x": 4, "y": 10, "type": "free"}, {"x": 5, "y": 10, "type": "wall"}, {"x": 6, "y": 10, "type": "free"}, {"x": 7, "y": 10, "type": "free"}, {"x": 8, "y": 10, "type": "free"}, {"x": 9, "y": 10, "type": "free"}, {"x": 10, "y": 10, "type": "free"}, {"x": 11, "y": 10, "type": "free"}], [{"x": 0, "y": 11, "type": "free"}, {"x": 1, "y": 11, "type": "wall"}, {"x": 2, "y": 11, "type": "free"}, {"x": 3, "y": 11, "type": "free"}, {"x": 4, "y": 11, "type": "free"}, {"x": 5, "y": 11, "type": "free"}, {"x": 6, "y": 11, "type": "wall"}, {"x": 7, "y": 11, "type": "free"}, {"x": 8, "y": 11, "type": "free"}, {"x": 9, "y": 11, "type": "free"}, {"x": 10, "y": 11, "type": "free"}, {"x": 11, "y": 11, "type": "free"}]], "cannon": {"x": 3, "y": 8}} -------------------------------------------------------------------------------- /docs/workshop/rooms/13.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 1, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/14.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 4, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/15.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}, {"x": 8, "y": 0, "type": "free"}, {"x": 9, "y": 0, "type": "free"}, {"x": 10, "y": 0, "type": "free"}, {"x": 11, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}, {"x": 8, "y": 1, "type": "wall"}, {"x": 9, "y": 1, "type": "wall"}, {"x": 10, "y": 1, "type": "wall"}, {"x": 11, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "free"}, {"x": 8, "y": 2, "type": "free"}, {"x": 9, "y": 2, "type": "wall"}, {"x": 10, "y": 2, "type": "free"}, {"x": 11, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}, {"x": 8, "y": 3, "type": "wall"}, {"x": 9, "y": 3, "type": "free"}, {"x": 10, "y": 3, "type": "free"}, {"x": 11, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "free"}, {"x": 8, "y": 4, "type": "wall"}, {"x": 9, "y": 4, "type": "free"}, {"x": 10, "y": 4, "type": "free"}, {"x": 11, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}, {"x": 8, "y": 5, "type": "free"}, {"x": 9, "y": 5, "type": "free"}, {"x": 10, "y": 5, "type": "free"}, {"x": 11, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}, {"x": 8, "y": 6, "type": "wall"}, {"x": 9, "y": 6, "type": "wall"}, {"x": 10, "y": 6, "type": "free"}, {"x": 11, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}, {"x": 8, "y": 7, "type": "free"}, {"x": 9, "y": 7, "type": "wall"}, {"x": 10, "y": 7, "type": "free"}, {"x": 11, "y": 7, "type": "wall"}], [{"x": 0, "y": 8, "type": "free"}, {"x": 1, "y": 8, "type": "wall"}, {"x": 2, "y": 8, "type": "wall"}, {"x": 3, "y": 8, "type": "free"}, {"x": 4, "y": 8, "type": "wall"}, {"x": 5, "y": 8, "type": "wall"}, {"x": 6, "y": 8, "type": "wall"}, {"x": 7, "y": 8, "type": "free"}, {"x": 8, "y": 8, "type": "free"}, {"x": 9, "y": 8, "type": "wall"}, {"x": 10, "y": 8, "type": "wall"}, {"x": 11, "y": 8, "type": "wall"}], [{"x": 0, "y": 9, "type": "wall"}, {"x": 1, "y": 9, "type": "free"}, {"x": 2, "y": 9, "type": "wall"}, {"x": 3, "y": 9, "type": "free"}, {"x": 4, "y": 9, "type": "free"}, {"x": 5, "y": 9, "type": "wall"}, {"x": 6, "y": 9, "type": "free"}, {"x": 7, "y": 9, "type": "free"}, {"x": 8, "y": 9, "type": "wall"}, {"x": 9, "y": 9, "type": "free"}, {"x": 10, "y": 9, "type": "wall"}, {"x": 11, "y": 9, "type": "free"}], [{"x": 0, "y": 10, "type": "free"}, {"x": 1, "y": 10, "type": "wall"}, {"x": 2, "y": 10, "type": "wall"}, {"x": 3, "y": 10, "type": "wall"}, {"x": 4, "y": 10, "type": "free"}, {"x": 5, "y": 10, "type": "wall"}, {"x": 6, "y": 10, "type": "wall"}, {"x": 7, "y": 10, "type": "wall"}, {"x": 8, "y": 10, "type": "free"}, {"x": 9, "y": 10, "type": "free"}, {"x": 10, "y": 10, "type": "free"}, {"x": 11, "y": 10, "type": "wall"}], [{"x": 0, "y": 11, "type": "wall"}, {"x": 1, "y": 11, "type": "wall"}, {"x": 2, "y": 11, "type": "free"}, {"x": 3, "y": 11, "type": "wall"}, {"x": 4, "y": 11, "type": "free"}, {"x": 5, "y": 11, "type": "wall"}, {"x": 6, "y": 11, "type": "wall"}, {"x": 7, "y": 11, "type": "free"}, {"x": 8, "y": 11, "type": "free"}, {"x": 9, "y": 11, "type": "wall"}, {"x": 10, "y": 11, "type": "wall"}, {"x": 11, "y": 11, "type": "free"}]], "cannon": {"x": 4, "y": 3}} -------------------------------------------------------------------------------- /docs/workshop/rooms/17.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 2, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/18.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 7, "y": 3}} -------------------------------------------------------------------------------- /docs/workshop/rooms/19.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}, {"x": 8, "y": 0, "type": "wall"}, {"x": 9, "y": 0, "type": "wall"}, {"x": 10, "y": 0, "type": "wall"}, {"x": 11, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}, {"x": 8, "y": 1, "type": "wall"}, {"x": 9, "y": 1, "type": "free"}, {"x": 10, "y": 1, "type": "free"}, {"x": 11, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}, {"x": 8, "y": 2, "type": "wall"}, {"x": 9, "y": 2, "type": "free"}, {"x": 10, "y": 2, "type": "wall"}, {"x": 11, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "wall"}, {"x": 8, "y": 3, "type": "free"}, {"x": 9, "y": 3, "type": "wall"}, {"x": 10, "y": 3, "type": "wall"}, {"x": 11, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}, {"x": 8, "y": 4, "type": "free"}, {"x": 9, "y": 4, "type": "wall"}, {"x": 10, "y": 4, "type": "wall"}, {"x": 11, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}, {"x": 8, "y": 5, "type": "wall"}, {"x": 9, "y": 5, "type": "wall"}, {"x": 10, "y": 5, "type": "wall"}, {"x": 11, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}, {"x": 8, "y": 6, "type": "free"}, {"x": 9, "y": 6, "type": "wall"}, {"x": 10, "y": 6, "type": "free"}, {"x": 11, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "wall"}, {"x": 8, "y": 7, "type": "wall"}, {"x": 9, "y": 7, "type": "free"}, {"x": 10, "y": 7, "type": "free"}, {"x": 11, "y": 7, "type": "wall"}], [{"x": 0, "y": 8, "type": "wall"}, {"x": 1, "y": 8, "type": "wall"}, {"x": 2, "y": 8, "type": "wall"}, {"x": 3, "y": 8, "type": "free"}, {"x": 4, "y": 8, "type": "wall"}, {"x": 5, "y": 8, "type": "wall"}, {"x": 6, "y": 8, "type": "wall"}, {"x": 7, "y": 8, "type": "free"}, {"x": 8, "y": 8, "type": "wall"}, {"x": 9, "y": 8, "type": "wall"}, {"x": 10, "y": 8, "type": "free"}, {"x": 11, "y": 8, "type": "wall"}], [{"x": 0, "y": 9, "type": "wall"}, {"x": 1, "y": 9, "type": "free"}, {"x": 2, "y": 9, "type": "wall"}, {"x": 3, "y": 9, "type": "free"}, {"x": 4, "y": 9, "type": "wall"}, {"x": 5, "y": 9, "type": "free"}, {"x": 6, "y": 9, "type": "wall"}, {"x": 7, "y": 9, "type": "free"}, {"x": 8, "y": 9, "type": "free"}, {"x": 9, "y": 9, "type": "free"}, {"x": 10, "y": 9, "type": "free"}, {"x": 11, "y": 9, "type": "wall"}], [{"x": 0, "y": 10, "type": "wall"}, {"x": 1, "y": 10, "type": "free"}, {"x": 2, "y": 10, "type": "wall"}, {"x": 3, "y": 10, "type": "wall"}, {"x": 4, "y": 10, "type": "wall"}, {"x": 5, "y": 10, "type": "wall"}, {"x": 6, "y": 10, "type": "wall"}, {"x": 7, "y": 10, "type": "wall"}, {"x": 8, "y": 10, "type": "wall"}, {"x": 9, "y": 10, "type": "free"}, {"x": 10, "y": 10, "type": "free"}, {"x": 11, "y": 10, "type": "free"}], [{"x": 0, "y": 11, "type": "wall"}, {"x": 1, "y": 11, "type": "free"}, {"x": 2, "y": 11, "type": "wall"}, {"x": 3, "y": 11, "type": "free"}, {"x": 4, "y": 11, "type": "wall"}, {"x": 5, "y": 11, "type": "wall"}, {"x": 6, "y": 11, "type": "wall"}, {"x": 7, "y": 11, "type": "wall"}, {"x": 8, "y": 11, "type": "wall"}, {"x": 9, "y": 11, "type": "wall"}, {"x": 10, "y": 11, "type": "wall"}, {"x": 11, "y": 11, "type": "wall"}]], "cannon": {"x": 9, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/2.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 6, "y": 7}} -------------------------------------------------------------------------------- /docs/workshop/rooms/21.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 1, "y": 3}} -------------------------------------------------------------------------------- /docs/workshop/rooms/22.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 4, "y": 6}} -------------------------------------------------------------------------------- /docs/workshop/rooms/25.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 2, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/26.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 0, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/27.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}, {"x": 8, "y": 0, "type": "free"}, {"x": 9, "y": 0, "type": "wall"}, {"x": 10, "y": 0, "type": "free"}, {"x": 11, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "free"}, {"x": 8, "y": 1, "type": "free"}, {"x": 9, "y": 1, "type": "wall"}, {"x": 10, "y": 1, "type": "free"}, {"x": 11, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "wall"}, {"x": 8, "y": 2, "type": "free"}, {"x": 9, "y": 2, "type": "free"}, {"x": 10, "y": 2, "type": "free"}, {"x": 11, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}, {"x": 8, "y": 3, "type": "wall"}, {"x": 9, "y": 3, "type": "wall"}, {"x": 10, "y": 3, "type": "wall"}, {"x": 11, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}, {"x": 8, "y": 4, "type": "free"}, {"x": 9, "y": 4, "type": "wall"}, {"x": 10, "y": 4, "type": "free"}, {"x": 11, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}, {"x": 8, "y": 5, "type": "wall"}, {"x": 9, "y": 5, "type": "free"}, {"x": 10, "y": 5, "type": "free"}, {"x": 11, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}, {"x": 8, "y": 6, "type": "free"}, {"x": 9, "y": 6, "type": "free"}, {"x": 10, "y": 6, "type": "wall"}, {"x": 11, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}, {"x": 8, "y": 7, "type": "wall"}, {"x": 9, "y": 7, "type": "wall"}, {"x": 10, "y": 7, "type": "wall"}, {"x": 11, "y": 7, "type": "wall"}], [{"x": 0, "y": 8, "type": "wall"}, {"x": 1, "y": 8, "type": "wall"}, {"x": 2, "y": 8, "type": "wall"}, {"x": 3, "y": 8, "type": "free"}, {"x": 4, "y": 8, "type": "free"}, {"x": 5, "y": 8, "type": "free"}, {"x": 6, "y": 8, "type": "free"}, {"x": 7, "y": 8, "type": "wall"}, {"x": 8, "y": 8, "type": "wall"}, {"x": 9, "y": 8, "type": "free"}, {"x": 10, "y": 8, "type": "wall"}, {"x": 11, "y": 8, "type": "free"}], [{"x": 0, "y": 9, "type": "wall"}, {"x": 1, "y": 9, "type": "free"}, {"x": 2, "y": 9, "type": "free"}, {"x": 3, "y": 9, "type": "wall"}, {"x": 4, "y": 9, "type": "free"}, {"x": 5, "y": 9, "type": "free"}, {"x": 6, "y": 9, "type": "free"}, {"x": 7, "y": 9, "type": "free"}, {"x": 8, "y": 9, "type": "wall"}, {"x": 9, "y": 9, "type": "free"}, {"x": 10, "y": 9, "type": "wall"}, {"x": 11, "y": 9, "type": "wall"}], [{"x": 0, "y": 10, "type": "free"}, {"x": 1, "y": 10, "type": "free"}, {"x": 2, "y": 10, "type": "free"}, {"x": 3, "y": 10, "type": "free"}, {"x": 4, "y": 10, "type": "wall"}, {"x": 5, "y": 10, "type": "wall"}, {"x": 6, "y": 10, "type": "wall"}, {"x": 7, "y": 10, "type": "wall"}, {"x": 8, "y": 10, "type": "free"}, {"x": 9, "y": 10, "type": "free"}, {"x": 10, "y": 10, "type": "wall"}, {"x": 11, "y": 10, "type": "free"}], [{"x": 0, "y": 11, "type": "free"}, {"x": 1, "y": 11, "type": "free"}, {"x": 2, "y": 11, "type": "wall"}, {"x": 3, "y": 11, "type": "free"}, {"x": 4, "y": 11, "type": "free"}, {"x": 5, "y": 11, "type": "wall"}, {"x": 6, "y": 11, "type": "free"}, {"x": 7, "y": 11, "type": "free"}, {"x": 8, "y": 11, "type": "free"}, {"x": 9, "y": 11, "type": "free"}, {"x": 10, "y": 11, "type": "wall"}, {"x": 11, "y": 11, "type": "free"}]], "cannon": {"x": 6, "y": 6}} -------------------------------------------------------------------------------- /docs/workshop/rooms/29.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 3, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/3.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}, {"x": 8, "y": 0, "type": "wall"}, {"x": 9, "y": 0, "type": "free"}, {"x": 10, "y": 0, "type": "free"}, {"x": 11, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}, {"x": 8, "y": 1, "type": "wall"}, {"x": 9, "y": 1, "type": "free"}, {"x": 10, "y": 1, "type": "wall"}, {"x": 11, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}, {"x": 8, "y": 2, "type": "wall"}, {"x": 9, "y": 2, "type": "free"}, {"x": 10, "y": 2, "type": "free"}, {"x": 11, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}, {"x": 8, "y": 3, "type": "free"}, {"x": 9, "y": 3, "type": "wall"}, {"x": 10, "y": 3, "type": "free"}, {"x": 11, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "free"}, {"x": 8, "y": 4, "type": "free"}, {"x": 9, "y": 4, "type": "wall"}, {"x": 10, "y": 4, "type": "free"}, {"x": 11, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}, {"x": 8, "y": 5, "type": "wall"}, {"x": 9, "y": 5, "type": "wall"}, {"x": 10, "y": 5, "type": "free"}, {"x": 11, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}, {"x": 8, "y": 6, "type": "wall"}, {"x": 9, "y": 6, "type": "wall"}, {"x": 10, "y": 6, "type": "wall"}, {"x": 11, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "wall"}, {"x": 8, "y": 7, "type": "wall"}, {"x": 9, "y": 7, "type": "free"}, {"x": 10, "y": 7, "type": "free"}, {"x": 11, "y": 7, "type": "wall"}], [{"x": 0, "y": 8, "type": "wall"}, {"x": 1, "y": 8, "type": "wall"}, {"x": 2, "y": 8, "type": "wall"}, {"x": 3, "y": 8, "type": "free"}, {"x": 4, "y": 8, "type": "wall"}, {"x": 5, "y": 8, "type": "wall"}, {"x": 6, "y": 8, "type": "wall"}, {"x": 7, "y": 8, "type": "wall"}, {"x": 8, "y": 8, "type": "wall"}, {"x": 9, "y": 8, "type": "free"}, {"x": 10, "y": 8, "type": "wall"}, {"x": 11, "y": 8, "type": "wall"}], [{"x": 0, "y": 9, "type": "wall"}, {"x": 1, "y": 9, "type": "wall"}, {"x": 2, "y": 9, "type": "wall"}, {"x": 3, "y": 9, "type": "free"}, {"x": 4, "y": 9, "type": "free"}, {"x": 5, "y": 9, "type": "free"}, {"x": 6, "y": 9, "type": "wall"}, {"x": 7, "y": 9, "type": "wall"}, {"x": 8, "y": 9, "type": "free"}, {"x": 9, "y": 9, "type": "free"}, {"x": 10, "y": 9, "type": "free"}, {"x": 11, "y": 9, "type": "wall"}], [{"x": 0, "y": 10, "type": "free"}, {"x": 1, "y": 10, "type": "wall"}, {"x": 2, "y": 10, "type": "wall"}, {"x": 3, "y": 10, "type": "wall"}, {"x": 4, "y": 10, "type": "free"}, {"x": 5, "y": 10, "type": "wall"}, {"x": 6, "y": 10, "type": "free"}, {"x": 7, "y": 10, "type": "wall"}, {"x": 8, "y": 10, "type": "free"}, {"x": 9, "y": 10, "type": "wall"}, {"x": 10, "y": 10, "type": "free"}, {"x": 11, "y": 10, "type": "wall"}], [{"x": 0, "y": 11, "type": "wall"}, {"x": 1, "y": 11, "type": "free"}, {"x": 2, "y": 11, "type": "free"}, {"x": 3, "y": 11, "type": "free"}, {"x": 4, "y": 11, "type": "wall"}, {"x": 5, "y": 11, "type": "wall"}, {"x": 6, "y": 11, "type": "free"}, {"x": 7, "y": 11, "type": "free"}, {"x": 8, "y": 11, "type": "free"}, {"x": 9, "y": 11, "type": "free"}, {"x": 10, "y": 11, "type": "free"}, {"x": 11, "y": 11, "type": "free"}]], "cannon": {"x": 8, "y": 4}} -------------------------------------------------------------------------------- /docs/workshop/rooms/30.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 6, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/33.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 1, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/34.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 1, "y": 6}} -------------------------------------------------------------------------------- /docs/workshop/rooms/37.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 1, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/38.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 3, "y": 6}} -------------------------------------------------------------------------------- /docs/workshop/rooms/41.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 2, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/42.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 2, "y": 4}} -------------------------------------------------------------------------------- /docs/workshop/rooms/45.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 0, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/46.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 7, "y": 4}} -------------------------------------------------------------------------------- /docs/workshop/rooms/49.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 1, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/5.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 1, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/50.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 2, "y": 5}} -------------------------------------------------------------------------------- /docs/workshop/rooms/53.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 3, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/54.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 2, "y": 6}} -------------------------------------------------------------------------------- /docs/workshop/rooms/57.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 1, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/58.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 0, "y": 5}} -------------------------------------------------------------------------------- /docs/workshop/rooms/6.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 6, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/61.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 0, "y": 3}} -------------------------------------------------------------------------------- /docs/workshop/rooms/62.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 6, "y": 4}} -------------------------------------------------------------------------------- /docs/workshop/rooms/65.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 0, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/66.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 6, "y": 5}} -------------------------------------------------------------------------------- /docs/workshop/rooms/69.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 1, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/70.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 5, "y": 7}} -------------------------------------------------------------------------------- /docs/workshop/rooms/73.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 2, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/74.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "wall"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "wall"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 7, "y": 5}} -------------------------------------------------------------------------------- /docs/workshop/rooms/77.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 0, "y": 3}} -------------------------------------------------------------------------------- /docs/workshop/rooms/78.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "wall"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 6, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/81.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 2, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/82.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "wall"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "wall"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "wall"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "wall"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "wall"}]], "cannon": {"x": 5, "y": 7}} -------------------------------------------------------------------------------- /docs/workshop/rooms/85.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 2, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/86.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "wall"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "wall"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "wall"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "wall"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "wall"}, {"x": 7, "y": 4, "type": "wall"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "free"}, {"x": 3, "y": 5, "type": "wall"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "wall"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "wall"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "wall"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 2, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/89.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 3, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/9.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "wall"}, {"x": 3, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "wall"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 0, "y": 0}} -------------------------------------------------------------------------------- /docs/workshop/rooms/90.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "free"}, {"x": 6, "y": 3, "type": "free"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "free"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "wall"}, {"x": 5, "y": 4, "type": "wall"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "free"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "wall"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "wall"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "free"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "wall"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 5, "y": 3}} -------------------------------------------------------------------------------- /docs/workshop/rooms/93.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "wall"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "wall"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}]], "cannon": {"x": 1, "y": 1}} -------------------------------------------------------------------------------- /docs/workshop/rooms/94.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "wall"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "wall"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "wall"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "free"}, {"x": 5, "y": 1, "type": "wall"}, {"x": 6, "y": 1, "type": "wall"}, {"x": 7, "y": 1, "type": "wall"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "wall"}, {"x": 2, "y": 2, "type": "free"}, {"x": 3, "y": 2, "type": "wall"}, {"x": 4, "y": 2, "type": "free"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "free"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "wall"}, {"x": 3, "y": 3, "type": "wall"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "free"}, {"x": 2, "y": 4, "type": "wall"}, {"x": 3, "y": 4, "type": "free"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "wall"}, {"x": 1, "y": 5, "type": "wall"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "free"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "free"}, {"x": 5, "y": 6, "type": "free"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "wall"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "wall"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 6, "y": 5}} -------------------------------------------------------------------------------- /docs/workshop/rooms/97.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}], [{"x": 0, "y": 1, "type": "wall"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "wall"}, {"x": 3, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "wall"}], [{"x": 0, "y": 3, "type": "wall"}, {"x": 1, "y": 3, "type": "wall"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}]], "cannon": {"x": 2, "y": 2}} -------------------------------------------------------------------------------- /docs/workshop/rooms/98.json: -------------------------------------------------------------------------------- 1 | {"structure": [[{"x": 0, "y": 0, "type": "free"}, {"x": 1, "y": 0, "type": "free"}, {"x": 2, "y": 0, "type": "free"}, {"x": 3, "y": 0, "type": "free"}, {"x": 4, "y": 0, "type": "free"}, {"x": 5, "y": 0, "type": "free"}, {"x": 6, "y": 0, "type": "free"}, {"x": 7, "y": 0, "type": "wall"}], [{"x": 0, "y": 1, "type": "free"}, {"x": 1, "y": 1, "type": "free"}, {"x": 2, "y": 1, "type": "free"}, {"x": 3, "y": 1, "type": "free"}, {"x": 4, "y": 1, "type": "wall"}, {"x": 5, "y": 1, "type": "free"}, {"x": 6, "y": 1, "type": "free"}, {"x": 7, "y": 1, "type": "free"}], [{"x": 0, "y": 2, "type": "free"}, {"x": 1, "y": 2, "type": "free"}, {"x": 2, "y": 2, "type": "wall"}, {"x": 3, "y": 2, "type": "free"}, {"x": 4, "y": 2, "type": "wall"}, {"x": 5, "y": 2, "type": "free"}, {"x": 6, "y": 2, "type": "wall"}, {"x": 7, "y": 2, "type": "free"}], [{"x": 0, "y": 3, "type": "free"}, {"x": 1, "y": 3, "type": "free"}, {"x": 2, "y": 3, "type": "free"}, {"x": 3, "y": 3, "type": "free"}, {"x": 4, "y": 3, "type": "free"}, {"x": 5, "y": 3, "type": "wall"}, {"x": 6, "y": 3, "type": "wall"}, {"x": 7, "y": 3, "type": "free"}], [{"x": 0, "y": 4, "type": "wall"}, {"x": 1, "y": 4, "type": "wall"}, {"x": 2, "y": 4, "type": "free"}, {"x": 3, "y": 4, "type": "wall"}, {"x": 4, "y": 4, "type": "free"}, {"x": 5, "y": 4, "type": "free"}, {"x": 6, "y": 4, "type": "free"}, {"x": 7, "y": 4, "type": "free"}], [{"x": 0, "y": 5, "type": "free"}, {"x": 1, "y": 5, "type": "free"}, {"x": 2, "y": 5, "type": "wall"}, {"x": 3, "y": 5, "type": "free"}, {"x": 4, "y": 5, "type": "free"}, {"x": 5, "y": 5, "type": "wall"}, {"x": 6, "y": 5, "type": "wall"}, {"x": 7, "y": 5, "type": "free"}], [{"x": 0, "y": 6, "type": "free"}, {"x": 1, "y": 6, "type": "free"}, {"x": 2, "y": 6, "type": "free"}, {"x": 3, "y": 6, "type": "free"}, {"x": 4, "y": 6, "type": "wall"}, {"x": 5, "y": 6, "type": "wall"}, {"x": 6, "y": 6, "type": "free"}, {"x": 7, "y": 6, "type": "free"}], [{"x": 0, "y": 7, "type": "free"}, {"x": 1, "y": 7, "type": "free"}, {"x": 2, "y": 7, "type": "free"}, {"x": 3, "y": 7, "type": "wall"}, {"x": 4, "y": 7, "type": "free"}, {"x": 5, "y": 7, "type": "free"}, {"x": 6, "y": 7, "type": "free"}, {"x": 7, "y": 7, "type": "free"}]], "cannon": {"x": 4, "y": 6}} -------------------------------------------------------------------------------- /docs/workshop/run.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (c) 2019, Silvio Peroni 3 | # 4 | # Permission to use, copy, modify, and/or distribute this software for any purpose 5 | # with or without fee is hereby granted, provided that the above copyright notice 6 | # and this permission notice appear in all copies. 7 | # 8 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 9 | # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 10 | # FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, 11 | # OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 12 | # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 13 | # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 14 | # SOFTWARE. 15 | 16 | from group import do_move 17 | 18 | maze = [ 19 | [ 20 | { 21 | "x": 0, 22 | "y": 0, 23 | "type": "free" 24 | }, 25 | { 26 | "x": 1, 27 | "y": 0, 28 | "type": "free" 29 | }, 30 | { 31 | "x": 2, 32 | "y": 0, 33 | "type": "free" 34 | }, 35 | { 36 | "x": 3, 37 | "y": 0, 38 | "type": "free" 39 | } 40 | ], 41 | [ 42 | { 43 | "x": 0, 44 | "y": 1, 45 | "type": "free" 46 | }, 47 | { 48 | "x": 1, 49 | "y": 1, 50 | "type": "wall" 51 | }, 52 | { 53 | "x": 2, 54 | "y": 1, 55 | "type": "free" 56 | }, 57 | { 58 | "x": 3, 59 | "y": 1, 60 | "type": "wall" 61 | } 62 | ], 63 | [ 64 | { 65 | "x": 0, 66 | "y": 2, 67 | "type": "free" 68 | }, 69 | { 70 | "x": 1, 71 | "y": 2, 72 | "type": "free" 73 | }, 74 | { 75 | "x": 2, 76 | "y": 2, 77 | "type": "free" 78 | }, 79 | { 80 | "x": 3, 81 | "y": 2, 82 | "type": "free" 83 | } 84 | ], 85 | [ 86 | { 87 | "x": 0, 88 | "y": 3, 89 | "type": "wall" 90 | }, 91 | { 92 | "x": 1, 93 | "y": 3, 94 | "type": "wall" 95 | }, 96 | { 97 | "x": 2, 98 | "y": 3, 99 | "type": "free" 100 | }, 101 | { 102 | "x": 3, 103 | "y": 3, 104 | "type": "free" 105 | } 106 | ] 107 | ] 108 | 109 | cannon = (3, 3) 110 | 111 | result = do_move(maze, cannon) 112 | 113 | print("List of walls destroyed by the cannon:", result) -------------------------------------------------------------------------------- /docs/workshop/workshop2425-slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/comp-think/2024-2025/86cf6f6cf4041896debe73d0062035356cb50380/docs/workshop/workshop2425-slides.pdf --------------------------------------------------------------------------------