程序代写代做代考 python interpreter ICS 32 Winter 2018 | News | Course Reference | Schedule | Project Guide | Notes and Examples | About Alex
ICS 32 Winter 2018 | News | Course Reference | Schedule | Project Guide | Notes and Examples | About Alex ICS 32 Winter 2018 Project #4: The Fall of the World’s Own Optimist (Part 1) Due date and time: Monday, March 5, 11:59pm This project is to be done individually Background My first exposure to computers, as a kid in school, was in the context of computer games; some were educational games (it was school, after all), though many were not. The first time I remember sitting behind a computer — a Radio Shack TRS80 Model I — I played a game called FASTMATH, which pitted two players against one another, trying to alternately solve arithemtic problems and type in the answers as quickly as possible. Sure, it was just a boring educational game, one that was ridiculously simple by today’s standards, but at the time I was captivated, and I still remember it to this day. (I especially loved winning, though I didn’t always win.) Thanks to the wisdom and generosity of my parents, it wasn’t long before I had my own computer at home (a Commodore 64), complete with its own collection of games. None of the games I played on my own computer could be classified as educational in a direct sense, though those games were sneaky: They taught me a surprising collection of lessons and motivated me to ask many interesting questions about computing, as I endeavored first to win them outright, then to modify them (to cheat or to change how a game was played to make it more fun), and finally to write them from scratch. Games in those days, of course, didn’t have the same photorealistic, threedimensional, surroundsound appeal that they have today, but they were nonetheless fun and exciting; their simplicity made writing one’s own game seem more possible with limited skills than it does today, in an era of tremendously complex games built by gigantic teams of programmers, designers, and artists. (In truth, it’s easier to build simple games now than it was then, because the computers have become so much more powerful and the tools have gotten better. It’s just harder to compete with the largescale, professionallydeveloped games.) Unfortunately, my skills didn’t develop quickly enough — I always aimed too high, relative to what I knew how to do, but it was tougher when there was no Internet to search when you got stuck on something — and I never realized the goal of writing my own games before I became interested in other things, though I certainly learned a lot trying. This project is the first of a twopart sequence that offers you to opportunity to build your own game. The first of the two projects focuses on developing a clean set of game logic and a test apparatus that runs in the Python shell to let you (and us) verify that it works as expected. The second one pivots into drawing graphics, generating sounds, and other techniques to turn it into a playable game. Along the way, we’ll focus on finding a design that serves both purposes, on finding ways to simplify our code by eliminating duplication of boilerplate, and continuing our journey into understanding the mechanics and the benefits of classes and objectoriented programming in Python. Finally, we’ll take a step out of Python’s standard library and into the world of thirdparty, opensource libraries that the Python community has to offer. Games may seem frivolous to some of you — I know that not everyone likes to play them — but they provide a fascinating combination of problems to be solved: software engineering, humancomputer interface, computer networks, psychology and cognition, and even (in multiplayer online games) economics and sociology. Game developers push the envelope — in some cases further than just about any other kind of software developers — and many of these lessons can be applied in more seemingly serious contexts. Even if you’re not that interested in games, you’ll be surprised what building games can teach you about software. The game of Columns In the late 1980s, a puzzlebased game called Columns showed up on at least one personal computing platform. Later, it became somewhat more wellknown when it was ported to the Sega Genesis, and later to other video game consoles and personal computers, becoming one of the betterknown puzzle games of the early 1990s. In this project and the one that follows it, you’ll be building a version of this game. It’s not going to be our goal to completely duplicate the original, but what we’ll be building will maintain its spirit throughout. The best way to start getting your mind around the game is actually to watch someone play it; the game is simple in concept, and you’ll probably be able to deduce most of the rules just from watching a little bit of it, so best to start there. Columns gameplay video (Sega version from around 1990) http://www.ics.uci.edu/~thornton/ics32/index.html http://www.ics.uci.edu/~thornton/ics32/CourseReference.html http://www.ics.uci.edu/~thornton/ics32/Schedule.html http://www.ics.uci.edu/~thornton/ics32/ProjectGuide http://www.ics.uci.edu/~thornton/ics32/Notes http://www.ics.uci.edu/~thornton/ http://en.wikipedia.org/wiki/Radio_Shack_TRS-80 http://en.wikipedia.org/wiki/Commodore_64 […]