CodeGym/Kurser/Java Multithreading/Stor opgave: At skrive et spil i Java

Stor opgave: At skrive et spil i Java

Ledig

"Hej, Amigo!"

"Hej, kaptajn egern, sir!"

"Nu skal vi lære at skrive store projekter. Derfor introducerer vi en ny type opgave: den "store opgave". Det er én stor opgave, delt op i mange små. Når man løser hver "lille opgave". » du tilføjer ny kode til din eksisterende kode i stedet for at skrive noget fra bunden. Forbundets fremtid er i dine hænder."

"Ja Hr!"

"Målet med de første fem «store opgaver» er at lære at skrive store, komplekse projekter. I første omgang er beskrivelserne af de «små opgaver» ret detaljerede, nogle gange endda alt for detaljerede. Senere vil beskrivelserne blive mere generelle, og opgaverne vil vokse sig større. Til at begynde med vil opgaverne kun være små uddrag af «din» kode. Så bliver de større. Til sidst vil de være hele rammer (biblioteker)."

"Jeg er klar, sir!"

"Jeg forsøgte at gøre opgavebeskrivelserne så entydige som muligt. Men hvis noget ikke virker:"

a)  overveje andre måder at fortolke tilstanden på. Måske er det ikke så entydigt, som jeg ville have ønsket.

b)  forsøg at løse det på flere forskellige måder.

c)  bede om hjælp eller skrive til os; det er nye opgaver, og vi «pudser» dem gerne, hvor end vi har brug for det.

"Her er din første opgave:"

"I dag skriver vi et lille spil kaldet "Hippodrome".

"Og når jeg siger vi, mener jeg dig. Jeg vil være din mentor."

"Hvor er betingelserne?"

"Hvilke betingelser, privat? Er du stadig under grundlæggende træning? Dette er et hemmeligt militært program. Start IntelliJ IDEA. Du finder den første del af denne opgave der. Hver efterfølgende opgave vil først være tilgængelig, når du har fuldført forrige. Flyt ud!"

"Ja, sir! Flytter ud!"

"Og husk, hvis din løsning bliver håbløst blandet sammen, kan du nulstille den store opgave og starte forfra. Højreklik på den store opgave i opgavelistens plugin, og du vil se en kontekstmenu med forskellige muligheder."

6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 1)
Today we'll write a small game called 'Hippodrome'. And when I say we, I mean you. I will be your mentor. To start, we'll need Hippodrome and Horse classes. Create the Hippodrome and Horse classes. And don't forget that every program starts with a main method. Add one to the Hippodrome class.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 2)
Hey, we've got a hippodrome, and it should have some horses. So our hippodrome should store a list of its horses. Add a List horses field to the Hippodrome class. And to ensure that the horses won't be stolen, make this field private. Add a getter for this field.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 3)
Even though we've declared the horses variable, we haven't yet created the list itself (unless of course you've managed to get ahead of us). Create a Hippodrome class constructor with one List parameter. Save the passed list in the horses field (initialize the horses field).
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 4)
Now back to the horses. Every horse in a horse race must have a name and speed. Our horses will simply run a certain amount of time (100 seconds or "steps"). The horse that runs the farthest is the winner. Accordingly, we'll also need to store the distance the horse has already run.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 5)
Finish writing the Horse class. Add a constructor with name, speed, and distance parameters. Add getters and setters for all the fields in the Horse class. Make all of the methods public unless indicated otherwise.
12
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 6)
Now let's move on to the Hippodrome class and the main method. We need to create a Hippodrome object and add some horses to it. To start, in the Hippodrome class: Create a static Hippodrome game field.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 7)
But that's not all. We need to make the horses run. Add run, move, and print methods to the Hippodrome class. Without parameters. The move method will control the movement of all horses. The print method will draw them on the screen. And the run method manages it all.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 8)
Make a loop from 1 to 100 in the run method. This will be our race. In the body of the loop, we'll call move first, then print. To prevent the whole loop from finishing in a split second, add Thread.sleep(200); as well.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 9)
Now let's return to the move and print methods. Let's start with move. In the Hippodrome class's move method, we call the move method on each horse in the loop. Yes, you're right: the Horse class doesn't have it yet. This means you need to add your own move method to the Horse class. :)
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 10)
We still need to write the Hippodrome class's print method. Everything is simple here, too: In a loop, we call the print method on each horse. Oh, and display 10 empty lines after the loop (using System.out.println()) to make it more beautiful.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 11)
We're almost done with the Hippodrome class. Add a call to run() at the end of the main method. Hint: The run() method is not static, so you can only call it on an object. But where do you get the object? Hint 2: game.run();
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 12)
There's just a little left to do: finish writing the Horse class. The move method is called each time a horse takes a step. When the move method is called on a horse, the horse must run a certain distance. The distance depends on the horse's speed.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 13)
Now we'll return to the Horse class's print method. Because we're working with the console, then all the racing horses will look something like this: ........Slevin ....Lucky ..........Homer In other words, the print method should display a string consisting of dots and the horse's name.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 14)
Time to enjoy our creation. A new snapshot of the racetrack is displayed every half second. Use the mouse to decrease the size of the console so that only one "snapshot" is visible at a time and remains in the same place. Then you can watch the race live and even commentate.
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 15)
Add code to announce the winner. We'll make two methods in the Hippodrome class: public Horse getWinner() and public void printWinner() The getWinner method must return the horse that has run the farthest. The printWinner method displays the winner's name as follows: The winner is <name>!
6
Opgave
Java Multithreading,  niveaulektie
Låst
Hippodrome (part 16)
Now we're done for sure. Add a call to the printWinner method to the end of the main method. Launch and enjoy your first computer game. :)
Kommentarer
  • Populær
  • Ny
  • Gammel
Du skal være logget ind for at skrive en kommentar
Denne side har ingen kommentarer endnu