The Codeworld-implemented sildes to my CodeWorld talk
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Data
.gitignore
Abstractions.hs
Combinators.hs
Main.hs
Pong.hs
PongState.hs
Prediction.hs
PredictionInterpolation.hs
PredictionLargeStep.hs
README.md
TicTacToe.hs
Walking.hs
pong.txt
pong_collaboration.hs
upload.sh

README.md

CodeWorld talk

This repository contains the program that constitutes my “slides“ for my talk about lock step simulation, as implemented in CodeWorld. This talk was first held at Compose Conference 2017, in May 2017, and later at the PLclub at the University of Pennsylvania, the Haskell Hackers meetup in the Bay Area, ICFP 2017 in Oxford and the Comcast Functional Programming conference 2018 in Philly.

For more details, see the extended version of the experience report on that topic.

The slides are actually implemented in CodeWorld itself, as one large interactionOf. I wrote the code locally, and in several modules. Using the hack that is called hs-all-in-one I combine and upload the code:

hs-all-in-one Abstractions.hs Combinators.hs Main.hs Pong.hs \
              PongState.hs Prediction.hs PredictionLargeStep.hs \
              PredictionInterpolation.hs TicTacToe.hs \
              Data/MultiMap.hs Walking.hs \
	  > combined.hs
./upload.sh https://code.world/ haskell combined.hs

You can view the resulting presentation at https://code.world/run.html?mode=haskell&dhash=Di5R-XLJow5sItvbGRJQiNw and the full code at https://code.world/haskell#PbFD9HveFnExUXSKfXNJPhw.

Usage:

  • Use PageUp and PageDown to navigate slides.
  • P to unpause paused animations (some start paused, with no visible indication)
  • Esc to reset animations
  • The Tic-tac-toe games works by clicking.
  • The Pong game with W/S resp. /.
  • The walking game with W/A/D resp. //.
  • The slides where two instances are running in parallel support O to show them next to each other, and = and - to modify the delay.

Or simply play Pong (this runs this code).