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