160 likes | 297 Vues
This document introduces the concept of arrays, explaining their structure and usage in GameMaker Language (GML). It defines an array as a collection of data items that can hold multiple values, unlike standard variables. Key topics include creating and manipulating arrays, their practical applications in programming, and examples that illustrate how to use arrays effectively. The guide offers sample problems and exercises to reinforce understanding, making it a valuable resource for beginners learning to work with arrays in GML.
E N D
Working with Arrays Len Kamerman Instructor CS-10001, Mohawk College, Fall 2010
Agenda • What Is An Array? • Using Arrays With GML • When Are They Useful? • A Sample • Give Yourself Arrays (sample problem)
What is an array? • An array is a COLLECTION of data items • Most variables hold a SINGLE value “Apple” True 380 • One array can hold MULTIPLE values “Apple” 380 “Cherry” 27 “Grape” 60 217
What is an array? • Arrays follow variable naming rules • But they also have an INDEX • The INDEX refers to a particular value in the array FruitNames 012 “Apple” “Cherry” Indexes -> “Grape”
What is an array? If a regular variable is like a house… Then an array is like a condo…They all share one common address (variable name) but they each have their own apartment number (an INDEX) Think of an INDEX like an apartment number
What is an array? • NOTE: the first INDEX is 0, not 1 • This is the case is most programming languages! FruitNames 012 “Apple” “Cherry” Indexes -> “Grape”
Using Arrays with GML • In GML, you do not need to declare arrays • An array in GML looks like this:VarName[index]VarName is the variable nameindex is an integer • Examples:strSubject[0] = “History”;strSubject[1] = “Math”;
Using Arrays with GML – Try This! • Create a script in GML • Create an array with three values:strPop[0] = “Pepsi”;strPop[1] = “7-Up”;strPop[2] = “Dr. Pepper”; • Print each to the screen with a message box:show_message(strPop[0]);show_message(strPop[1]);show_message(strPop[2]);
When Are They Useful? • When you’d like to store similar related valuesstrCookie[0] = “Chocolate Chip”;strCookie[1] = “Oatmeal”;strCookie[2] = “Anchovy”;strCookie[3] = “Peanut Butter”;
When Are They Useful? • When you need to store many valuesvar num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11……num[0] = 7;num[1] = 5;num[2] = 6;…num[10] = 4;
When Are They Useful? • Process multiple values within a REPITITION structure (if you like loops, you’ll love arrays!) • With the use of a counter, each iteration processes the next valuex[0] = 1;x[1] = 7;x[2] = 4;for (i = 0; i < 3; i++){ total = total + x[i];}
When Are They Useful? – Try This! • Using our same array of brands/kinds of pop:strPop[0] = “Pepsi”;strPop[1] = “7-Up”;strPop[2] = “Dr. Pepper”;for (i = 0; i < 3; i = i + 1){show_message(strPop[i]);}
A Sample • Have the user enter as many numbers as they like • When they want to quit entering numbers, they enter -99 • After they finish entering numbers: • show them all the numbers they entered • determine which number is the biggest and display it
A Sample • varuser_number, numbers, counter, biggest;user_number = get_integer(“Enter a number”, 0);biggest = 0;counter = 0;while (user_number != -99){ numbers[counter] = user_number; counter = counter + 1;user_number = get_integer(“Enter a number”, 0);}for (i = 0; I < counter; I = I + 1){show_message(string(numbers[i])); if (numbers[i] > biggest) biggest = numbers[i];}show_message(string(biggest) + “ was the largest number”);
Give Yourself Arrays – Sample 1 • Prompt the user for three numbers and store them in an array • Use a loop to put the numbers together in a string • E.g., if your numbers are 12, 57, and 42, combine them into a string to give “125742” • Display this string in a message box
Give Yourself Arrays – Sample 2 • Write a script to ask the user for a lunch order • Prompt them to enter each item, for example: • hotdog • chips • Coke • When they are done entering items, they should enter the word “nothing” • Display each item in their lunch order in the reverse order they entered them