Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider Tetris as project #790

Open
bjornregnell opened this issue Jan 25, 2024 · 4 comments
Open

Consider Tetris as project #790

bjornregnell opened this issue Jan 25, 2024 · 4 comments

Comments

@bjornregnell
Copy link
Member

I got an invitation to this private repo https://github.com/eflisback/tetris by @eflisback and a suggestion to make this custom student project as an option among official course projects, so this could be investigated before next course instance. (However, Bank is very popular so fulfilled learning goals need to be compared with Bank)

@lego-eden
Copy link
Contributor

lego-eden commented Feb 29, 2024

I believe this project would be quite popular with many students. Creating a game is a fun way to "see your code on the screen", but there will probably be some students overspending their time on creating a nice looking GUI, rather than focusing on game logic. One way to avoid this would be to give a lot of initial code, but that subverts the goal of creating a larger project from scratch.

The student could also practice using enums and match expressions to represent the different blocks in tetris. The project could also have file interaction through a scoreboard.

@eflisback
Copy link

Yes, I see your point, but I feel like experience from the previous group-lab, snake, is a pretty good warm-up/preparation so that students have a good understanding of what should be prioritized. Maybe an option is to have most GUI-related code already written for the students, and have them focus on implementing the game logic itself.

Regarding the file interaction, I think you're absolutely right. If I remember correctly there was an optional assignment in one of the previous block-game labs to include this feature, but maybe we could build on it even further here...

@bjornregnell
Copy link
Member Author

bjornregnell commented Mar 1, 2024

Yes there are many things to think about in relation to the set of provided project proposals and the base-line learning goals and how the projects differ. Also, too many projects will make it harder for teaching assistants to know them all.

If we include Tetris, either one other project should be cancelled or it should have a very special angle: for example that it is "branded" as especially challenging for advanced students with special interest in games and in line with that perhaps no code is given but rather natural-language requirements on functionality and architecture/design. This way we can "sell it" as learning how to make something big from scratch.

One option is to require the os lib, part of the new toolkit for reading/writing to file.

@bjornregnell
Copy link
Member Author

I have a bunch of things to complete before summer, but considering this can wait until later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants