Greetings @tcreager,
So I managed to solve the issues the program had, though for me most of how it was structured was very very confusing
TLDR; Link: https://studio.code.org/projects/applab/V_5XhI-3lttu-_08U90Xdl_yYEhhX_qBOal8XJjgyCw/view
if you don’t understand what I did here it may be best to read what I wrote below
Lets Start with listing the problems first
1: The random team generation has 2 calls for the event “randomTeamBtn”
2: The randomization is done twice in the event and on updateScreen
3: The index range is invalid when trying to find a random team
4: though it’s more of a nitpick you do not need to shuffle the array if your just selecting 1 element
Let’s try to solve these issues
-
The first one should be easy look for both of these events and delete 1 of them,
-
The second & third issue is basically where your main problem lies… so I’ll try my best to explain what your current one is doing now
/
When random team is pressed
→ put a random team in every index from a range 1 - 32 [Includes nextTeam nextCoach… etc] (flaw: team length is 32 but it’s last index is 31, flaw: will not contain all teams since a random one is chosen by chance every time)
→ call updateScreen() which also selects from a random range of integers from 1 - team.length and then updates a team with the given information which also has one major problem, unlike with randomTeamBtn this one updates through how big the original team was rather than the actual variable your looking at,
EX: “getting takeout without ordering first and expecting it to be ready”
/
To solve this simply design a var that selects 1 random number within the original teams indices and then references the original variable to retrieve the necessary data I’ll post an example below to showcase
onEvent("randomTeamBtn", "click", function () {
var select = randomNumber(0, team.length-1);
nextTeam = team[select];
nextCoach = headCoach[select];
nextStadium = stadiumCapacity[select];
nextPhoto = photos[select];
updateScreen();
});
by doing this you’ll have all you need to update the display as needed I’ll provide it anyways since I’m sure you don’t want to spend more time figuring that out
function updateScreen() {
setText("teamOutput", nextTeam);
setText("coachOutput", nextCoach);
setText("stadiumLimitOutput", nextStadium);
setProperty("teamImgOutput", "image", nextPhoto);
}
Oh, your still reading this far… well this is optional but might i suggest making your random team an object? it’s a bit of a nitpick i know but best to start good habits early!
var randomTeam = {
team: "",
coach: "",
stadium: 0,
photo: ""
}
by doing this it’ll be much more readable and easier to see but that’s just my preference
I know it’s a lot but i hope this helps