cege_gopher
A Karel-style grid robot for teaching introductory Python, themed as Goldy Gopher. Written for CEGE 3101 — Computer Applications I at the University of Minnesota.
Ported from the MATLAB robot used in earlier offerings of the course, which was itself a port of the KAIST CS101 HUBO exercise (otfried/cs101) — Karel the Robot, at the root of it.
Why this exists
The original libraries open a live window and animate each command as it runs. Google Colab cannot host one.
So this version records, then replays. Every command appends a frame to a
buffer; nothing is drawn until show(), which renders the whole run as an
inline animation:
write the whole program → run the cell → watch it play back
Students never drive the robot interactively; every program is pre-coded, which is also how the homework is graded.
Install
pip install cege-gopher
Or, from the course repository:
pip install "git+https://github.com/benchoi93/CEGE3101_Computer_Applications.git#subdirectory=packages/cege-gopher"
The 13 world files ship inside the package, so nothing needs uploading —
load_world("harvest1.wld") just works.
Use
from cege_gopher import *
load_world("harvest1.wld") # or: create_world(10, 10)
goldy = Gopher()
goldy.set_trace("maroon")
while goldy.front_is_clear():
if goldy.on_carrot():
goldy.pick_carrot()
goldy.move()
show() # the animation renders here
list_worlds() returns the bundled world names.
API
| Module | create_world(avenues, streets), load_world(name), list_worlds(), show(fps=), show_final(), get_world() |
| Move | move(), turn_left(), turn_right() |
| Carrots | pick_carrot(), drop_carrot() |
| Sense | front_is_clear(), left_is_clear(), right_is_clear(), facing_north(), on_carrot(), carries_carrots() |
| Display | set_trace(color), get_pos() |
Robot is an alias for Gopher, and pick_beeper/pick_coin for
pick_carrot, so code written against cs1robots or the MATLAB version still
runs.
A bug fixed in this port
The MATLAB version had leftIsClear and rightIsClear swapped — facing
east it checked south for "left", when turnLeft rotates counter-clockwise
(E→N) so left of east is north. This port uses left = (-dy, dx),
right = (dy, -dx).
License
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cege_gopher-0.5.1.tar.gz.
File metadata
- Download URL: cege_gopher-0.5.1.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8191b6376ba78dd4ba590515a456468a3df035653f45b0a87ccf72cc2796e23
|
|
| MD5 |
9cfd32d5f782bf90ab74220e0cb6caa8
|
|
| BLAKE2b-256 |
dd4916b8c1c494cbbdf2bf6364afffe212dd9c690d169091ae6316028cd2188f
|
File details
Details for the file cege_gopher-0.5.1-py3-none-any.whl.
File metadata
- Download URL: cege_gopher-0.5.1-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaea709f37b1c34d5db5d3b522fa462a619e21bcbf25ba8e93f1c2c60922472a
|
|
| MD5 |
18a82381721e45b2e926052e9504e2f9
|
|
| BLAKE2b-256 |
5e0aa7703746d7c5f07732b2b9a9e01970c54c9d384e41373446725d71edc46d
|