联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Matlab编程Matlab编程

日期:2018-10-09 10:15

VG101 — Introduction to

Computer and Programming

Project 1

Manuel — UM-JI (Fall 2018)

Include simple comments in the code

If applicable, split the code over several functions

Extensively test your code and impove it

Write a single README file per assignment

Zip all the files and upload the archive on Canvas

1 Project setup

At a cross road cars are either moving if the light is green or waiting if it is red. A road is composed of

two lanes, for cars going in opposite directions while the light is located on the right hand side of the

cars, before the cross. Moving cars are all going at a same constant speed of one unit every second.

A snapshot of the scenario at a time t is shown on Figure 1. On the picture three cars are going from

top to bottom but are waiting as the traffic light is red. In the meantime five cars going from right to

left are crossing, while two other cars are coming from the opposite direction. The two last cars can be

seen coming from the bottom but have not yet arrived at the cross road.

Figure 1: Traffic at a cross road.

Requirement for the above scenario:

The user inputs n, the total number of cars,

w the width of the road, and p the probability

that a cars does not stop at the red

light;

The number of cars on each line is randomly

decided with respect to n;

The color cycle of a traffic light is green for

g s, orange for o s, and red for r s; The user

sets the value of the variables g, o, and r;

Lights in the diagonal of the cross road have

a same color;

Each time a light changes from green to

orange the cars before the light stop and

the ones which have already passed it finish

crossing; e.g. on Fig. 1 if the green light becomes

orange then the two cars in the middle

of the cross should finish crossing the road;

Cars should appear at the beginning of the road with respect to where they come from; e.g. a car

coming from the right should start from the right most edge of the figure;

Every second all the non-waiting cars move by one unit;

The goal is to animate the displacement of the cars with respect to the traffic lights. The choice of the

user will impact the risk for a car crash to happen. The animation stops as soon a crash occurs and the

player loses. If all the cars have gone through without any problem the player wins.

1

2 Tasks

Ex. 1 — Cross road traffic game

1. Write a simple function that initialises all the parameters, i.e. prompts the user for the number of

cars, the time for each light color, randomly generates how many cars go in each direction, etc..

2. Write a function that draws the cross road.

3. Write a clear and precise algorithm describing the motion of the cars as well as the change of color

of the traffic lights. Justify your choices. The algorithm should describe the whole animation of

the cross road.

4. Write several functions to plot the cars and animates the whole scenario of the game.

Each of the following questions is optional and will bring a bonus on the project grade if properly solved.

5. Design more realistic cars of various sizes.

6. Allow the cars to randomly turn left or right.

7. Allow cars to adjust their speed within a range specified by the user. They can in turn use this

information to prevent a crash.

8. Allow the player to choose a difficulty level and automatically adjust all the parameters accordingly,

e.g. number of cars, width of the road, right and left turns allowed, etc..

9. Add more lanes to the road.

Note: other adjustments are welcome and encouraged, however first discuss them with the teaching

team to check their validity and suitability for the project.

Ex. 2 — Registration plates

Each car features a registration plate composed one letter followed by a mix of five letters and digits,

e.g. B 34HB0. We want to generate a random plate for each of the car and return the plates of all the

cars which do not stop at the cross road.

1. Random permutations.

a) Write a recursive algorithm that takes as input a set of elements and an integer l, and returns

all their permutations of length l.

b) Adjust the previous algorithm to return a random subset of all the permutations containing

n elements.

Hint: generating all the permutations and selecting n of them afterwards in not a good idea.

2. Implement the generation of the registration plates in MATLAB, and assign a unique plate to

each car.

3. At the end of the game display the plate of all the cars that did not stop at the traffic light.

3 Milestones

In order to smoothen the progress and provide hints on how to get organised when working on the project

we defined three milestones. For each milestone students must submit their current code with all the

usual relevant files attached as well as with a short Changelog file that describes the progress done on

the project. Expected implementation for each milestone:

1. Crossroad and traffic light: October 2nd;

2

2. Car related functions (e.g. input, direction, drawing, output, plate, etc.): October 7th;

3. Whole animation: October 14th;

4 FAQ

This section lists all the Frequently Asked Questions (FAQ).

1. I do not understand a question. What should I do?

Use a monolingual dictionary to ensure you fully understand all the words appearing in the question.

Then discuss with other students to know how they understand it. Only discuss the question,

not its solution. If several opinions appear to be valid determine which ones is the best and most

reasonable. Document your choices in the README file. Alternatively contact the teaching team

through project 1 discussion on Piazza. To ensure everybody benefits from the question and its

answer no question will be answered if not asked on the project discussion;

2. What is w the width of the road?

The width of the road is how large the road is. It can be expressed in pixels or in term of time unit,

e.g. a width of 4 time units means that a car needs 4 time units to cross the cross road. Ensure

the user knows what unit is used when he is prompted for w.

3. The optional question requirements do not match the original scenario. What should I do?

The optional requirement overwrites the original one. For instance in the original scenario the speed

is uniform while in ex. 1 question 7 a car can change its speed. In that case the speed can be freely

adjusted.

4. Can I skip base questions and do optional ones instead?

No, a submission that does not implement the basic questions will not receive any bonus.

5. Can I make use of the Automated Driving System Toolbox?

The project must be completed with the help of any “advanced toolbox”. Completing two versions,

with and without, can bring bonus.

6. I have not read the ci.pdf file, can it impact my grade?

Yes, much information on the code quality appears in this file. No applying some of the rules can

bring large deductions on the project grade.

7. I cannot meet a milestone, how bad is it?

Deductions will be applied if functions from previous milestones are not fully working in the final

submission. Besides, no answer will be provided to questions on a previous milestone.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp