CS代写 SECU0057: Simulation for Research – Component 1

SECU0057: Simulation for Research – Component 1

Copyright By PowCoder代写 加微信 powcoder

This component aims to assess your ability to create simple Netlogo codes. For this, eight tasks have

been designed that require selecting appropriate programming concepts and implementing them

using Netlogo primitives. You must complete all the tasks.

Instructions

Download the files called “template.nlogo” and “spiral1.csv”, and save them in the same folder.

Write eight procedures (go1, go2, go3, go4, go5, go6, go7 and go8) in the same Netlogo file.

All these procedures must be coded according to the instructions below.

Marking criteria:

Each task contains a number of requirements, including:

• major requirements that are designed to test important learning objectives (e.g., “being able

to change the colour of a patch”) and

• minor requirements that do not correspond to important learning objectives (e.g., the

specific colour of the spiral in Tasks 1- 5)

Your answers will be assessed against the following marking criteria:

0/3 0/5 No evidence that the student has met any of the learning objectives tested in the task.

1/5 None of the major requirements have been met in the code.

2/5 Multiple major requirements have not been met in the code.

3/5 One major requirement has not been met in the code.

4/5 All requirements have been met in the code, except a few minor ones.

The student has managed to successfully complete the task (e.g., generate the spiral
depicted on the figure) and all the requirements of the tasks have been met.

Questions?

Questions about the assessment must be posted on the Moodle forum by the 7th November. We

will aim to answer them within 48 hours. Note: If you post a message on a Friday 5pm, you may

not receive an answer before Tuesday 5pm.

Task 1. Procedure go1 [3 marks]

The file “spiral1.csv” includes a table with:

• As many rows as patches in the spiral represented in Figure 1.

• Three columns containing to the x-coordinates, y-coordinates and colour codes of the

spiral’s patches.

Write a Netlogo code that extracts the coordinates of the patches from the csv file, and set their

colours according to the third column. You must not create turtles in this procedure.

Background colour: black

Spiral colour: see spiral1.csv

Figure 1: Anti-clockwise spiral generated from the data in spiral1.csv

Task 2. Procedure go2 [3 marks]

Create a turtle at the centre of the interface (0,0). Make the turtle draw a spiral, as shown in Figure

2. For this, set the colour of the spiral patches as the turtle moves along the spiral, using the

command “ask turtles [set pcolor…]”. Destroy the turtle when it reaches the end of the spiral.

Trajectory: The trajectory of the turtle must be recorded in a list called “instructions”. The list must

contain two parameters for each segment of the spiral:

• Bearing: use the code (“N”, “E”, “S”, “W”) to represent North, East, South, West; and

• The number of patches that the turtle must cover before the next turn.

The list – E, 2, N, 2, … – must be read using “foreach”. You must use the “(ifelse” command to

convert the codes to directions.

Background colour: black

Spiral colour: red

Figure 2: Anti-clockwise spiral starting Eastward

Task 3. Procedure go3 [3 marks]

Create a turtle at the centre of the interface (0,0), pointing upward. Make the turtle draw a spiral, as

shown in Figure 3. For this, set the colour of the spiral patches as the turtle moves along the spiral.

Destroy the turtle when it reaches the end of the spiral.

Trajectory: The trajectory of the turtle must be recorded in a list called “instructions”. The list must

contain two parameters for each segment of the spiral:

• The number of patches that the turtle must cover before the next turn (segment length).

• Rotation at the end of the segment: use the code (“L”, “S”, “R”, “U”) to represent a 90o turn

on the left, no rotation, 90o turn on the right, and 180o turn, respectively.

The list – 2, L, 2, L, … – must be read using the command “foreach”.

Background: black

Colour of the spiral: blue

Figure 3: Anti-clockwise spiral starting Northward

Task 4. Procedure go4 [5 marks]

Create a turtle at the centre of the interface (0,0), pointing to the left. Make the turtle draw a spiral,

as shown in Figure 4. For this, set the colour of the spiral patches as the turtle moves along the

spiral. Destroy the turtle when it reaches the end of the spiral.

Trajectory: The turtle must be moved using the commands “fd” and “left 90”. In the previous

procedures, the trajectory of the turtle was recorded using a pre-specified list. As a result, the spiral

would not grow if we increased the size of the interface. To ensure that the spiral always fits the

interface, the trajectory should be generated dynamically, using a rule-based approach. The rule

should reflect the patterned geometry of the spiral. As an example, the following rule could be used

to create a square frame starting from the bottom left corner: repeat 4 [fd world-width right 90].

Background: black

Colour of the spiral: yellow

Figure 4: Anticlockwise spirals starting Westward – max-pxcor = 5 (left) and max-pxcor = 11 (right).

Task 5. Procedure go5 [3 marks]

In this task, you must draw a spiral starting from the centre of the interface (see Figure 5), using the

command “ask patch x y [set pcolor…]”. The sequence of patches must be identified using their

coordinates, without using any turtles.

Trajectory: The order in which patches must be recoloured must be based on the elements of a list

called “instructions”. These elements are similar to those in the go2 procedure:

• Bearing (“N”, “E”, “S”, “W”) and

• The number of patches that must be covered before the next turn.

The list – S, 2, E, 2, … – must be read using the command “repeat”.

Background: black

Colour of the spiral: green

Figure 5: Anti-clockwise spiral starting Southward

Task 6. Procedure go6 [5 marks]

Create a turtle at the centre of the interface (0,0) and change the colour of its patch to white. Make

the turtle draw a spiral, as shown in Figure 6. Set the colour of the spiral patches as the turtle moves

along the spiral. Destroy the turtle when it reaches the end of the spiral.

Trajectory: For this task, the turtle must be given destination points and move toward them in

straight line. The destination points should correspond to the corners of the spiral, and their

coordinates should be recorded in a list called “destination_list”. The list must start as follows: [2, 0,

2, 2, …], where the first two items correspond to the first destination point (2, 0), and the next two

items correspond to the second destination point (2, 2), and so on and so forth. The iteration over

the list must be done using the command “repeat”. To stop the movement of the turtle, you must

use a while loop that stops when the turtle reaches the destination patch.

Colour of the spiral: Except for the central patch (which must be white), all other patches should be

coloured randomly. To create a more colourful spiral, you must exclude all colours whose numerical

codes are less than 11 and those whose codes end with a 0 or a 1.

Background: black

Colour of the spiral: multicolour

Figure 6: Anti-clockwise spiral starting Eastward

Task 7. Procedure go7 [3 marks]

Once a spiral has been created, it can be useful to save it in a csv file. Write a Netlogo code that can

iterate over all the patches of the interface (including background patches and spiral patches), and

save the following information in a csv file called (“spiral2.csv”):

• Column 1: x-coordinates of the patches

• Column 2: y-coordinates of the patches

• Column 3: colour codes of the patches

Each row should correspond to a different patch

You must not create turtles in this procedure.

Task 8. Procedure go8 [5 marks]

Task 8 is similar to Task 7. Write a Netlogo code that can iterate over the patches of the spiral only,

and save the following information in a csv file called (“spiral3.csv”):

• Column 1: x-coordinates of the patches

• Column 2: y-coordinates of the patches

• Column 3: colour codes of the patches

Each row should correspond to a different patch of the spiral.

You must not create turtles in this procedure. You must use the “of” and “foreach” commands in

your code.

Finalising your answers and verifying your code

If you have managed to complete all the tasks, make

the following modification to your code before

uploading your code on Turn-it-In:

• At the end of the go6 procedure, add a line that calls

the go7 procedure. This will save the colourful spiral in

“spiral2.csv”.

• Edit the go1 procedure so it extracts data from

“spiral2.csv” instead of “spiral1.csv”.

• Resize your interface as shown in the image.

This modification should allow you to display the

colourful spiral anytime you want. It will also help us

check that your code works.

END OF COMPONENT 1

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com