copy from old repo
This commit is contained in:
127
README.md
127
README.md
@@ -1,2 +1,127 @@
|
||||
# mis-interpreter
|
||||
# Mis-interpreter
|
||||
|
||||
*A multiplayer code-telephone game where meaning drifts through obfuscation and reinterpretation.*
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Mis-interpreter is an online, multi-user game inspired by the mechanics of *Telestrations* and the *Telephone Game*.
|
||||
Instead of drawings, players exchange short programs. Each round, code is obfuscated, interpreted in plain language, and re-implemented. By the end, the final program often diverges significantly from the original.
|
||||
|
||||
---
|
||||
|
||||
## How It Works
|
||||
|
||||
### 1. Prompt Stage
|
||||
|
||||
* Each player begins with a simple coding task (e.g., *“Write a function that reverses a string”*).
|
||||
* They implement a short snippet in the chosen language.
|
||||
|
||||
### 2. Obfuscation & Pass
|
||||
|
||||
* The system automatically **obfuscates** the code before passing it along.
|
||||
|
||||
* Variable renaming
|
||||
* Minification or unusual formatting
|
||||
* Redundant no-ops
|
||||
* Structural rewrites (e.g., loops → recursion)
|
||||
|
||||
### 3. Interpretation Stage
|
||||
|
||||
* The next player receives the obfuscated code.
|
||||
* They provide a plain-language description of what they believe the code does.
|
||||
|
||||
### 4. Re-Implementation Stage
|
||||
|
||||
* Another player receives only the description.
|
||||
* They re-implement the code from scratch, based on that description.
|
||||
|
||||
### 5. Repeat Cycle
|
||||
|
||||
* This sequence of **code → obfuscation → description → rewrite** continues until every player has contributed.
|
||||
|
||||
### 6. Reveal Stage
|
||||
|
||||
* At the end of the round, the entire chain is shown:
|
||||
|
||||
1. The original prompt
|
||||
2. The original code
|
||||
3. Each obfuscated version
|
||||
4. Each interpretation and re-implementation
|
||||
|
||||
---
|
||||
|
||||
## Scoring Modes
|
||||
|
||||
### Casual Mode
|
||||
|
||||
* No points. The focus is on comparing the original with the final result.
|
||||
|
||||
### Competitive Mode
|
||||
|
||||
* Points for **accurate descriptions** (does the description match the code’s actual behavior?).
|
||||
* Points for **faithful re-implementations** (does the new code behave the same as the last version?).
|
||||
* Optional bonus points for creative or surprising outcomes (voted by players).
|
||||
|
||||
---
|
||||
|
||||
## Technical Features
|
||||
|
||||
* **Sandboxed execution** for safety.
|
||||
* **Languages**: initial support for Python and JavaScript.
|
||||
* **Obfuscation engine**: automated code transformations at each pass.
|
||||
* **Multiplayer lobbies**: recommended 4–10 players.
|
||||
* **Reveal timeline**: shows the progression step by step.
|
||||
|
||||
---
|
||||
|
||||
## Example Round
|
||||
|
||||
**Prompt:** “Write code that sums a list of numbers.”
|
||||
|
||||
1. Player A →
|
||||
|
||||
```python
|
||||
def sum_list(nums): return sum(nums)
|
||||
```
|
||||
|
||||
2. Obfuscated →
|
||||
|
||||
```python
|
||||
def Q(q): R=0
|
||||
for i in q: R+=i
|
||||
return R
|
||||
```
|
||||
|
||||
3. Player B (description) → “This adds up numbers in a list.”
|
||||
|
||||
4. Player C (rewrite) →
|
||||
|
||||
```javascript
|
||||
function addAll(arr) {
|
||||
let t=0;
|
||||
for (const a of arr) { t+=a; }
|
||||
return t;
|
||||
}
|
||||
```
|
||||
|
||||
5. Obfuscated again →
|
||||
|
||||
```javascript
|
||||
function f(a){return a.reduce((x,y)=>x+y,0)}
|
||||
```
|
||||
|
||||
6. Player D (description) → “This concatenates strings together.”
|
||||
|
||||
…and the cycle continues.
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
|
||||
Mis-interpreter explores how intent changes as code passes through transformations, interpretations, and rewrites. It combines programming practice with collaborative play and emphasizes how easily meaning can shift.
|
||||
|
||||
---
|
||||
|
||||
Would you like me to also produce a **short “Quick Rules” reference** (one section players can skim before starting), alongside this more detailed doc?
|
||||
Reference in New Issue
Block a user