HW2: Building a Simulation ########################### .. include:: /references.inc Over the course of our next few labs, we will be building a simulation. This project is a team project, so you need to accept a new invitation: * `COSC1337-002 `_ Accepting Team Assignments ************************** Each of you will need to accept this assignment as usual, but with a minor twist. The first person who accepts the assignment will need to create a new team and select a team name. I am going to leave that to your team to select. There will be several teams in this class, so be creative! (Do keep it civilized!) After the name is created, each additional team member will need to select the name chosen by the first member It makes sense for your team to get together and do this as a group. If anything goes wrong during this process, see me. Modeling I35 ************ Our simulation was inspired by me sitting in wall to wall traffic on I35 making my way to the Highland campus one day. I thought it would be fun to create a simple graphics simulation of all the cars slowly winding their way through downtown Austin. There are on ramps, off ramps, and an entrance to the road from one end, and an exit on the other end. In between we can put a bunch of cars, truck, and ambulances, all trying to get through the mess we all know far too well. With a little help from a simple graphics library, we might get something fun to watch! This simulator will actually be the basis for a few lab projects designed to create something we can use to understand a few more advanced C++ concepts. Actually, we will only model one side of the road, since both sides are very similar (except for a few bizarre situations we might look at later). This particular lab is going to set up the basic project. We will be using :term:`test driven development` to build this simulation, and we will use that approach to writing our classes. Exactly what classes we need will be spelled out in the labs you get to work. This project will be a team project, and each team member will need to clone the project repository onto their individual work stations. You will all share access to the code produced for this project, so some care will be needed to make sure you do not step on each other as you work. I expect all team members to contribute to the project, but I will leave it up to you to decide who does what part of the project. Getting Started *************** To get started, you need to accept the project invitation, then clone the repository. I suggest that you all work together to set up the basic project structure. You should use the ``GraphicsDemo`` project as a guide and set things up using that demo code to make sure you can build a working graphics application. .. note:: The code you need is actually available nn the ``GraphicsDemo project`` on my GitHub_ account. Check there for the link to clone a copy for your use. Once the team has set the project up and pushed it to GitHub, each team member can clone the project as usual. Working in Teams **************** As we discussed in class, working in a team involves a bit of a different working pattern. Since you never know what new code has been pushed to GitHub, you absolutely must start off any work session by doing a ``git pull`` command. This will update your working copy of the project with any new code. When you are finished with your work, make sure you complete a final ``git push`` so other team members can see the new work. If you get stuck with any of this, check with me for help on resolving any issues that crop up. This homework project is done when you have the basic lab structure set up and all team members can build and run the graphics demo code. There will be nothing needed in your ``homework`` repository for this exercise. Future labs will build the actual project.