diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/docs/.buildinfo b/docs/.buildinfo new file mode 100644 index 00000000..c5074edc --- /dev/null +++ b/docs/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 26dd9c0651e3c983b68c592323bd944b +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 00000000..46e81a9b --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,25 @@ +Website Liscence: + + +The MIT License (MIT) + + +Copyright (c) 2013-2017 Blackrock Digital LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docs/css/freelancer.css b/docs/css/freelancer.css new file mode 100644 index 00000000..bfd4a3d9 --- /dev/null +++ b/docs/css/freelancer.css @@ -0,0 +1,285 @@ +/*! + * Start Bootstrap - Freelancer v4.0.0-beta.2 (https://startbootstrap.com/template-overviews/freelancer) + * Copyright 2013-2018 Start Bootstrap + * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-freelancer/blob/master/LICENSE) + */ +body { + font-family: 'Lato'; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: 700; + font-family: 'Montserrat'; } + +hr.star-light, +hr.star-dark { + max-width: 15rem; + padding: 0; + text-align: center; + border: none; + border-top: solid 0.25rem; + margin-top: 2.5rem; + margin-bottom: 2.5rem; } + +hr.star-light:after, +hr.star-dark:after { + position: relative; + top: -.8em; + display: inline-block; + padding: 0 0.25em; + content: '\f005'; + font-family: FontAwesome; + font-size: 2em; } + +hr.star-light { + border-color: #fff; } + +hr.star-light:after { + color: #fff; + background-color: #4D7348; } + +hr.star-dark { + border-color: #454545; } + +hr.star-dark:after { + color: #454545; + background-color: white; } + +section { + padding: 6rem 0; } + section h2 { + font-size: 2.25rem; + line-height: 2rem; } + @media (min-width: 992px) { + section h2 { + font-size: 3rem; + line-height: 2.5rem; } } + +.btn-xl { + padding: 1rem 1.75rem; + font-size: 1.25rem; } + +.btn-social { + width: 3.25rem; + height: 3.25rem; + font-size: 1.25rem; + line-height: 2rem; } + +.scroll-to-top { + z-index: 1042; + right: 1rem; + bottom: 1rem; + display: none; } + .scroll-to-top a { + width: 3.5rem; + height: 3.5rem; + background-color: rgba(33, 37, 41, 0.5); + line-height: 3.1rem; } + +#mainNav { + padding-top: 1rem; + padding-bottom: 1rem; + font-weight: 700; + font-family: 'Montserrat'; } + #mainNav .navbar-brand { + color: #fff; } + #mainNav .navbar-nav { + margin-top: 1rem; + letter-spacing: 0.0625rem; } + #mainNav .navbar-nav li.nav-item a.nav-link { + color: #fff; } + #mainNav .navbar-nav li.nav-item a.nav-link:hover { + color: #4D7348; } + #mainNav .navbar-nav li.nav-item a.nav-link:active, #mainNav .navbar-nav li.nav-item a.nav-link:focus { + color: #fff; } + #mainNav .navbar-nav li.nav-item a.nav-link.active { + color: #4D7348; } + #mainNav .navbar-toggler { + font-size: 80%; + padding: 0.8rem; } + +@media (min-width: 992px) { + #mainNav { + padding-top: 1.5rem; + padding-bottom: 1.5rem; + -webkit-transition: padding-top 0.3s, padding-bottom 0.3s; + -moz-transition: padding-top 0.3s, padding-bottom 0.3s; + transition: padding-top 0.3s, padding-bottom 0.3s; } + #mainNav .navbar-brand { + font-size: 2em; + -webkit-transition: font-size 0.3s; + -moz-transition: font-size 0.3s; + transition: font-size 0.3s; } + #mainNav .navbar-nav { + margin-top: 0; } + #mainNav .navbar-nav > li.nav-item > a.nav-link.active { + color: #fff; + background: #4D7348; } + #mainNav .navbar-nav > li.nav-item > a.nav-link.active:active, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:focus, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover { + color: #fff; + background: #4D7348; } + #mainNav.navbar-shrink { + padding-top: 0.5rem; + padding-bottom: 0.5rem; } + #mainNav.navbar-shrink .navbar-brand { + font-size: 1.5em; } } + +header.masthead { + padding-top: calc(6rem + 72px); + padding-bottom: 6rem; } + header.masthead h1 { + font-size: 3rem; + line-height: 3rem; } + header.masthead h2 { + font-size: 1.3rem; + font-family: 'Lato'; } + +@media (min-width: 992px) { + header.masthead { + padding-top: calc(6rem + 106px); + padding-bottom: 6rem; } + header.masthead h1 { + font-size: 4.75em; + line-height: 4rem; } + header.masthead h2 { + font-size: 1.75em; } } + +.portfolio { + margin-bottom: -15px; } + .portfolio .portfolio-item { + position: relative; + display: block; + max-width: 25rem; + margin-bottom: 15px; } + .portfolio .portfolio-item .portfolio-item-caption { + -webkit-transition: all ease 0.5s; + -moz-transition: all ease 0.5s; + transition: all ease 0.5s; + opacity: 0; + background-color: rgba(77, 115, 72, 0.9); } + .portfolio .portfolio-item .portfolio-item-caption:hover { + opacity: 1; } + .portfolio .portfolio-item .portfolio-item-caption .portfolio-item-caption-content { + font-size: 1.5rem; } + @media (min-width: 576px) { + .portfolio { + margin-bottom: -30px; } + .portfolio .portfolio-item { + margin-bottom: 30px; } } + +.portfolio-modal .portfolio-modal-dialog { + padding: 3rem 1rem; + min-height: calc(100vh - 2rem); + margin: 1rem calc(1rem - 8px); + position: relative; + z-index: 2; + -moz-box-shadow: 0 0 3rem 1rem rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0 0 3rem 1rem rgba(0, 0, 0, 0.5); + box-shadow: 0 0 3rem 1rem rgba(0, 0, 0, 0.5); } + .portfolio-modal .portfolio-modal-dialog .close-button { + position: absolute; + top: 2rem; + right: 2rem; } + .portfolio-modal .portfolio-modal-dialog .close-button i { + line-height: 38px; } + .portfolio-modal .portfolio-modal-dialog h2 { + font-size: 2rem; } + +@media (min-width: 768px) { + .portfolio-modal .portfolio-modal-dialog { + min-height: 100vh; + padding: 5rem; + margin: 3rem calc(3rem - 8px); } + .portfolio-modal .portfolio-modal-dialog h2 { + font-size: 3rem; } } + +.floating-label-form-group { + position: relative; + border-bottom: 1px solid #e9ecef; } + .floating-label-form-group input, + .floating-label-form-group textarea { + font-size: 1.5em; + position: relative; + z-index: 1; + padding-right: 0; + padding-left: 0; + resize: none; + border: none; + border-radius: 0; + background: none; + box-shadow: none !important; } + .floating-label-form-group label { + font-size: 0.85em; + line-height: 1.764705882em; + position: relative; + z-index: 0; + top: 2em; + display: block; + margin: 0; + -webkit-transition: top 0.3s ease, opacity 0.3s ease; + -moz-transition: top 0.3s ease, opacity 0.3s ease; + -ms-transition: top 0.3s ease, opacity 0.3s ease; + transition: top 0.3s ease, opacity 0.3s ease; + vertical-align: middle; + vertical-align: baseline; + opacity: 0; } + .floating-label-form-group:not(:first-child) { + padding-left: 14px; + border-left: 1px solid #e9ecef; } + +.floating-label-form-group-with-value label { + top: 0; + opacity: 1; } + +.floating-label-form-group-with-focus label { + color: #4D7348; } + +form .row:first-child .floating-label-form-group { + border-top: 1px solid #e9ecef; } + +.footer { + padding-top: 5rem; + padding-bottom: 5rem; + background-color: #454545; + color: #fff; } + +.copyright { + background-color: #2c2c2c; } + +a { + color: #4D7348; } + a:focus, a:hover, a:active, a:visited { + color: #385434; } + +.btn { + border-width: 2px; } + +.bg-primary { + background-color: #4D7348 !important; } + +.bg-secondary { + background-color: #454545 !important; } + +.text-primary { + color: #4D7348 !important; } + +.text-secondary { + color: #454545 !important; } + +.btn-primary { + background-color: #4D7348; + border-color: #4D7348; } + .btn-primary:hover, .btn-primary:focus, .btn-primary:active { + background-color: #385434; + border-color: #385434; } + +.btn-secondary { + background-color: #454545; + border-color: #454545; } + .btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active { + background-color: #2c2c2c; + border-color: #2c2c2c; } diff --git a/docs/css/freelancer.min.css b/docs/css/freelancer.min.css new file mode 100644 index 00000000..18bee881 --- /dev/null +++ b/docs/css/freelancer.min.css @@ -0,0 +1,5 @@ +/*! + * Start Bootstrap - Freelancer v4.0.0-beta.2 (https://startbootstrap.com/template-overviews/freelancer) + * Copyright 2013-2018 Start Bootstrap + * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-freelancer/blob/master/LICENSE) + */body{font-family:Lato}h1,h2,h3,h4,h5,h6{font-weight:700;font-family:Montserrat}hr.star-dark,hr.star-light{max-width:15rem;padding:0;text-align:center;border:none;border-top:solid .25rem;margin-top:2.5rem;margin-bottom:2.5rem}hr.star-dark:after,hr.star-light:after{position:relative;top:-.8em;display:inline-block;padding:0 .25em;content:'\f005';font-family:FontAwesome;font-size:2em}hr.star-light{border-color:#fff}hr.star-light:after{color:#fff;background-color:#4d7348}hr.star-dark{border-color:#454545}hr.star-dark:after{color:#454545;background-color:#fff}section{padding:6rem 0}section h2{font-size:2.25rem;line-height:2rem}@media (min-width:992px){section h2{font-size:3rem;line-height:2.5rem}}.btn-xl{padding:1rem 1.75rem;font-size:1.25rem}.btn-social{width:3.25rem;height:3.25rem;font-size:1.25rem;line-height:2rem}.scroll-to-top{z-index:1042;right:1rem;bottom:1rem;display:none}.scroll-to-top a{width:3.5rem;height:3.5rem;background-color:rgba(33,37,41,.5);line-height:3.1rem}#mainNav{padding-top:1rem;padding-bottom:1rem;font-weight:700;font-family:Montserrat}#mainNav .navbar-brand{color:#fff}#mainNav .navbar-nav{margin-top:1rem;letter-spacing:.0625rem}#mainNav .navbar-nav li.nav-item a.nav-link{color:#fff}#mainNav .navbar-nav li.nav-item a.nav-link:hover{color:#4d7348}#mainNav .navbar-nav li.nav-item a.nav-link:active,#mainNav .navbar-nav li.nav-item a.nav-link:focus{color:#fff}#mainNav .navbar-nav li.nav-item a.nav-link.active{color:#4d7348}#mainNav .navbar-toggler{font-size:80%;padding:.8rem}@media (min-width:992px){#mainNav{padding-top:1.5rem;padding-bottom:1.5rem;-webkit-transition:padding-top .3s,padding-bottom .3s;-moz-transition:padding-top .3s,padding-bottom .3s;transition:padding-top .3s,padding-bottom .3s}#mainNav .navbar-brand{font-size:2em;-webkit-transition:font-size .3s;-moz-transition:font-size .3s;transition:font-size .3s}#mainNav .navbar-nav{margin-top:0}#mainNav .navbar-nav>li.nav-item>a.nav-link.active{color:#fff;background:#4d7348}#mainNav .navbar-nav>li.nav-item>a.nav-link.active:active,#mainNav .navbar-nav>li.nav-item>a.nav-link.active:focus,#mainNav .navbar-nav>li.nav-item>a.nav-link.active:hover{color:#fff;background:#4d7348}#mainNav.navbar-shrink{padding-top:.5rem;padding-bottom:.5rem}#mainNav.navbar-shrink .navbar-brand{font-size:1.5em}}header.masthead{padding-top:calc(6rem + 72px);padding-bottom:6rem}header.masthead h1{font-size:3rem;line-height:3rem}header.masthead h2{font-size:1.3rem;font-family:Lato}@media (min-width:992px){header.masthead{padding-top:calc(6rem + 106px);padding-bottom:6rem}header.masthead h1{font-size:4.75em;line-height:4rem}header.masthead h2{font-size:1.75em}}.portfolio{margin-bottom:-15px}.portfolio .portfolio-item{position:relative;display:block;max-width:25rem;margin-bottom:15px}.portfolio .portfolio-item .portfolio-item-caption{-webkit-transition:all ease .5s;-moz-transition:all ease .5s;transition:all ease .5s;opacity:0;background-color:rgba(77,115,72,.9)}.portfolio .portfolio-item .portfolio-item-caption:hover{opacity:1}.portfolio .portfolio-item .portfolio-item-caption .portfolio-item-caption-content{font-size:1.5rem}@media (min-width:576px){.portfolio{margin-bottom:-30px}.portfolio .portfolio-item{margin-bottom:30px}}.portfolio-modal .portfolio-modal-dialog{padding:3rem 1rem;min-height:calc(100vh - 2rem);margin:1rem calc(1rem - 8px);position:relative;z-index:2;-moz-box-shadow:0 0 3rem 1rem rgba(0,0,0,.5);-webkit-box-shadow:0 0 3rem 1rem rgba(0,0,0,.5);box-shadow:0 0 3rem 1rem rgba(0,0,0,.5)}.portfolio-modal .portfolio-modal-dialog .close-button{position:absolute;top:2rem;right:2rem}.portfolio-modal .portfolio-modal-dialog .close-button i{line-height:38px}.portfolio-modal .portfolio-modal-dialog h2{font-size:2rem}@media (min-width:768px){.portfolio-modal .portfolio-modal-dialog{min-height:100vh;padding:5rem;margin:3rem calc(3rem - 8px)}.portfolio-modal .portfolio-modal-dialog h2{font-size:3rem}}.floating-label-form-group{position:relative;border-bottom:1px solid #e9ecef}.floating-label-form-group input,.floating-label-form-group textarea{font-size:1.5em;position:relative;z-index:1;padding-right:0;padding-left:0;resize:none;border:none;border-radius:0;background:0 0;box-shadow:none!important}.floating-label-form-group label{font-size:.85em;line-height:1.764705882em;position:relative;z-index:0;top:2em;display:block;margin:0;-webkit-transition:top .3s ease,opacity .3s ease;-moz-transition:top .3s ease,opacity .3s ease;-ms-transition:top .3s ease,opacity .3s ease;transition:top .3s ease,opacity .3s ease;vertical-align:middle;vertical-align:baseline;opacity:0}.floating-label-form-group:not(:first-child){padding-left:14px;border-left:1px solid #e9ecef}.floating-label-form-group-with-value label{top:0;opacity:1}.floating-label-form-group-with-focus label{color:#4d7348}form .row:first-child .floating-label-form-group{border-top:1px solid #e9ecef}.footer{padding-top:5rem;padding-bottom:5rem;background-color:#454545;color:#fff}.copyright{background-color:#2c2c2c}a{color:#4d7348}a:active,a:focus,a:hover,a:visited{color:#385434}.btn{border-width:2px}.bg-primary{background-color:#4d7348!important}.bg-secondary{background-color:#454545!important}.text-primary{color:#4d7348!important}.text-secondary{color:#454545!important}.btn-primary{background-color:#4d7348;border-color:#4d7348}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#385434;border-color:#385434}.btn-secondary{background-color:#454545;border-color:#454545}.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover{background-color:#2c2c2c;border-color:#2c2c2c} \ No newline at end of file diff --git a/docs/gulpfile.js b/docs/gulpfile.js new file mode 100644 index 00000000..082320e8 --- /dev/null +++ b/docs/gulpfile.js @@ -0,0 +1,115 @@ +var gulp = require('gulp'); +var sass = require('gulp-sass'); +var browserSync = require('browser-sync').create(); +var header = require('gulp-header'); +var cleanCSS = require('gulp-clean-css'); +var rename = require("gulp-rename"); +var uglify = require('gulp-uglify'); +var filter = require('gulp-filter'); +var pkg = require('./package.json'); + +// Set the banner content +var banner = ['/*!\n', + ' * Start Bootstrap - <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n', + ' * Copyright 2013-' + (new Date()).getFullYear(), ' <%= pkg.author %>\n', + ' * Licensed under <%= pkg.license %> (https://github.com/BlackrockDigital/<%= pkg.name %>/blob/master/LICENSE)\n', + ' */\n', + '' +].join(''); + +// Compiles SCSS files from /scss into /css +gulp.task('sass', function() { + return gulp.src('scss/freelancer.scss') + .pipe(sass()) + .pipe(header(banner, { + pkg: pkg + })) + .pipe(gulp.dest('css')) + .pipe(browserSync.reload({ + stream: true + })) +}); + +// Minify compiled CSS +gulp.task('minify-css', ['sass'], function() { + return gulp.src('css/freelancer.css') + .pipe(cleanCSS({ + compatibility: 'ie8' + })) + .pipe(rename({ + suffix: '.min' + })) + .pipe(gulp.dest('css')) + .pipe(browserSync.reload({ + stream: true + })) +}); + +// Minify custom JS +gulp.task('minify-js', function() { + return gulp.src('js/freelancer.js') + .pipe(uglify()) + .pipe(header(banner, { + pkg: pkg + })) + .pipe(rename({ + suffix: '.min' + })) + .pipe(gulp.dest('js')) + .pipe(browserSync.reload({ + stream: true + })) +}); + +// Copy vendor files from /node_modules into /vendor +// NOTE: requires `npm install` before running! +gulp.task('copy', function() { + gulp.src([ + 'node_modules/bootstrap/dist/**/*', + '!**/npm.js', + '!**/bootstrap-theme.*', + '!**/*.map' + ]) + .pipe(gulp.dest('vendor/bootstrap')) + + gulp.src(['node_modules/jquery/dist/jquery.js', 'node_modules/jquery/dist/jquery.min.js']) + .pipe(gulp.dest('vendor/jquery')) + + gulp.src(['node_modules/jquery.easing/*.js']) + .pipe(gulp.dest('vendor/jquery-easing')) + + gulp.src(['node_modules/magnific-popup/dist/*']) + .pipe(gulp.dest('vendor/magnific-popup')) + + gulp.src([ + 'node_modules/font-awesome/**', + '!node_modules/font-awesome/**/*.map', + '!node_modules/font-awesome/.npmignore', + '!node_modules/font-awesome/*.txt', + '!node_modules/font-awesome/*.md', + '!node_modules/font-awesome/*.json' + ]) + .pipe(gulp.dest('vendor/font-awesome')) +}) + +// Default task +gulp.task('default', ['sass', 'minify-css', 'minify-js', 'copy']); + +// Configure the browserSync task +gulp.task('browserSync', function() { + browserSync.init({ + server: { + baseDir: '' + }, + }) +}) + +// Dev task with browserSync +gulp.task('dev', ['browserSync', 'sass', 'minify-css', 'minify-js'], function() { + gulp.watch('scss/*.scss', ['sass']); + gulp.watch('css/*.css', ['minify-css']); + gulp.watch('js/*.js', ['minify-js']); + // Reloads the browser whenever HTML or JS files change + gulp.watch('*.html', browserSync.reload); + gulp.watch('js/**/*.js', browserSync.reload); +}); diff --git a/docs/img/2018-dungeon-delvers.png b/docs/img/2018-dungeon-delvers.png new file mode 100644 index 00000000..6f5d51cf Binary files /dev/null and b/docs/img/2018-dungeon-delvers.png differ diff --git a/docs/img/2019-market-space.png b/docs/img/2019-market-space.png new file mode 100644 index 00000000..be7f6235 Binary files /dev/null and b/docs/img/2019-market-space.png differ diff --git a/docs/img/2020-disaster-dispatcher.png b/docs/img/2020-disaster-dispatcher.png new file mode 100644 index 00000000..40e7715b Binary files /dev/null and b/docs/img/2020-disaster-dispatcher.png differ diff --git a/docs/img/2021-trailsman.png b/docs/img/2021-trailsman.png new file mode 100644 index 00000000..ab3f70d6 Binary files /dev/null and b/docs/img/2021-trailsman.png differ diff --git a/docs/img/acm-logo.ico b/docs/img/acm-logo.ico new file mode 100644 index 00000000..a6494a24 Binary files /dev/null and b/docs/img/acm-logo.ico differ diff --git a/docs/img/acm-logo.png b/docs/img/acm-logo.png new file mode 100644 index 00000000..8da216c6 Binary files /dev/null and b/docs/img/acm-logo.png differ diff --git a/docs/img/byte-le-royale-2.png b/docs/img/byte-le-royale-2.png new file mode 100644 index 00000000..f81ae306 Binary files /dev/null and b/docs/img/byte-le-royale-2.png differ diff --git a/docs/img/byte-le-royale.png b/docs/img/byte-le-royale.png new file mode 100644 index 00000000..7e31a8da Binary files /dev/null and b/docs/img/byte-le-royale.png differ diff --git a/docs/img/code-sample.png b/docs/img/code-sample.png new file mode 100644 index 00000000..142c7b4f Binary files /dev/null and b/docs/img/code-sample.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..dea46d40 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,496 @@ + + + +
+ + + + + + +Byte-le Royale is a 12 hour programming competition where competitors in teams of up to 3 + write an AI to play a video game. The teams will be competing against each other to see who can create the + best AI!
+Friday, January 28th 6pm to January 29th 8am 2021
+ +Online! We'll be streaming on our Twitch Channel + and have discussion on our event Discord Server!
+Anyone can compete, as long as you are in a team of 3 or less. To keep things fair, + non-students are not eligible for prizes and are not considered in the final rankings.
+
+ This is a meritocracy, so of course we have prizes. We will be offering prizes to the top three teams who
+ compete (once we collect donations).
+
+
+
+
+ We will be splitting the prizes roughly 55%, 30%, 15%.
+
Registration opens.
+ 6:00 pm +Opening Ceremony. Competition Starts.
+ + + 10:30 pm +Bott-le Royale.
+Competition End, Submission Deadline
+ 8:00 Am +Results, closing Ceremony
+In order to better judge how many people will be attending, we would like to encourage + everyone who plans on attending to RSVP. Attendance of the event is 100% free.
+ +Byte-le Royale had its first game in 2018, and it has returned yearly to test students with new challenges. + Each new problem inspires creative solutions and cooperation to refine solutions.
+Here are some of the previous games.
+Guide your team of adventurers through dark dungeons full of traps and monsters to gather treasure! + Choose your path, upgrade your equipment and look for monster weaknesses. Just watch out for the falling + ceiling!
+ GitHub +Fly your ship through the sector to mine, trade, or attack other players! Money is all that matters in + the end, so do whatever it takes to be the richest!
+ GitHub +You have just been elected the mayor of your city! Unfortunately, this city is rife with disasters - + natural and otherwise. Use your population's manpower and mayoral decrees to keep your city from + crumbling.
+ GitHub +You have just started your job as a truck driver in 2021. Try to make as much money as you can before + automation takes your job! +
+ GitHub +