Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Datamatiker

Af Ny på siden Kunoy | 04-10-2018 16:26 | 2231 visninger | 4 svar, hop til seneste
Hej HOL Jeg er lige startet på Datamatiker uddannelse og vi skal aflevere vores første aflevering, som er et program der er lavet i java og det skal være tekst baseret og det kan pt. ikke andet end at printet noget text ud. Jeg spørg om hjælp til denne opgave fordi at jeg er gået i stå og kan simpelthen ikke komme videre. Opgave skal kunne dette: https://raw.githubusercontent.com[...] "Imagine that you are designing a computer game. The game is text based, meaning that no graphics are involved, so only a text story printed in the console. The game is at the moment not able to take any instructions from the person who plays the game (you), but it can only do what you will code it to do. You can think of it as a “Demo” game that shows how it could be played, but in fact is not playable yet. The game consists of 2 animals: a rabbit and a snake. The screen consists of coordinate system with an x and y axis, 10 on each axis. So the animals can be located by the number they are on. In this text based game you can not see where the animals are at a given time, but they should “tell” it to the console, every time they have moved, like this: “I am the nice rabbit, i am now standing on square 1, 3” “I am the evil snake, i am now standing on the square 3, 10” So both the rabbit and the snake should be able to move. And they should both be able to tell about their position. The snake should be able to kill the rabbit if they are on the same coordinates. And the rabbit should be able to beeg for mercy just before it is killed, maybe if the snake is on a neighboring square."
--
Sidst redigeret 04-10-2018 16:28
#1
efilNET
Super Nørd
04-10-2018 17:27

Rapporter til Admin
#0 Hvad er du gået i stå med? Hvad har du lavet ind til nu? Der er tale om et console spil, hvor der f.eks. kan køre en while løkke, som for hver "tur" udføre en handling, for X, så hvis du skifter en boolsk variable, for hvert tur ved du om det er player1s tur. Selve handlingerne kan så f.eks. enten være prædefinere ud således at du ved nøjagtigt hvornår slangen fanger kaninen (så det er en kendt demo), eller det kan være total random, dvs. at dine x,y koordinater enten bliver (x+[-1, 0 eller 1], y+[-1, 0, 1]) Du kan evt. indkode dine dyr træk som to arrays, og så hoppe igennem det for hver iteration. Du skal så tjekke, for kaninen om slangen er inden for de 8 omliggende felter, og hvis det er begge for mercy, samt undlade at flyttet kaninen, og så næste gang tjekke (if sætning) med slangen (eller sætte en bool, captured=true) og så laden slangen spise den og afbryde din spil løkke når slangen "spiser" kaninen. bool game = true; while(gameRunning) {...}
--
#2
Kunoy
Ny på siden
04-10-2018 19:19

Rapporter til Admin
#1 Indtil videre har jeg kunne få koordinatorne fra begge dyr ud i console som random numre mellem 1-10 Men der hvor jeg går i stå er hvordan får man den til at læse når de er på samme koordinat, hvor slagen så skal spise kaninen og kaninen skal beeg for mercy.
--
#3
efilNET
Super Nørd
04-10-2018 22:25

Rapporter til Admin
Umiddelbart så ville jeg nok gøre noget i retningen af: 1. Opstille variabler boolean playerRabbitTurn = true; // Er det kaninens tur? boolean gameRunning = true; // Er spillet i gang? String[][] board = new String[10][10]; // Selve spillepladen der er 10x10 2. Lave en funktion private int rand0_9(...) der random giver et (x, y) koordinat fra 0-9 - Brug det til at sætte initial position for de to dyr. ex. board[random_x1][random_y1] = rabbit; board[random_x2][random_y2] = snake; 3. Lav en funktion metode private boolean ckeckHasNeighbor(...) der kan tjekke om board[x][y] er tomt eller om den indeholder en string - Søg efter "2D array check neighbor cells." 4. Lave en while løkke (game loopet) der køre så længe gameRunning == true. 5. I loopet udføre følgende tjek: - Tjek om det er playerRabbitTurn eller ej. - - Lav en dobbelt for løkke, der får render dobbelt arrayet board igennem - - - Find f.eks kaninens position if board[i][j] == "rabbit" then - - - Tjek om den "har en nabo". - - - Hvis råb om hjælp, og lad være med at flytte kaninen - - - hvis ikke så flyt kaninen til en (tilfældig) nabo celle (inden for arrayet 0 til 9). - - - og sæt den gamle position til "" (empty string) - - - Hvis kaninen råber om hjælp (slangen er i en nabo celle) så lad slangen vinde og afslut dit spi (while løkken) gameRunning = false; - - - Hvis ikke så skift tur - - - Og enten lad forløkken løbe ud (spild af tid), eller ved at bruge "break" til at springe ud af for loopet. Overstående er skrevet lidt fluffy og taget ud af hovedet, så det er ikke nødvendigvis eneste eller den optimale løsning, men jeg vil ikke skrive koden for dig, så men når du har skrevet 90% selv så er der sikkert massere hjælpe at hente fra mig og andre. Når du poster kode herinde så brug https://pastebin.com[...] til det. Håber det er nogenlunde brugbart og ikke skaber mere forvirring end det gavner. Gode søge ord til opgaven er: java gameloop java 2d array traversal java double for loop java 2d array check neighbor cell
--
Sidst redigeret 04-10-2018 22:29
#4
Koldbrandt
Bruger
05-10-2018 08:04

Rapporter til Admin
Du kan eventuelt skrive til mig i pb. Jeg har lavet stort set samme opgave i indledende programmering på DTU. Det gælder om at nedbryde opgaven, så er den rimelig lige til. Lidt ligesom #3 skriver
--

Opret svar til indlægget: Datamatiker

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning