Find Jobs
Hire Freelancers

Lösen einer Aufgabe

€8-30 EUR

Suljettu
Julkaistu noin 4 vuotta sitten

€8-30 EUR

Maksettu toimituksen yhteydessä
Programm in C# Schreiben Sie ein Programm, das ein Labyrinth von der Kommandozeile einliest und graphisch darstellt. Das Labyrinth ist in der Datei [login to view URL] mit dem folgenden Inhalt abgelegt: 19 13 ################### #.................# #.#.###.#.#.###.#.# #.#.#...#.#...#.#.# #.#.###.#.#.###.#.# #.................# #.#.#.### ###.#.#.# #.................# #.#.###.#.#.###.#.# #.#.#...#.#...#.#.# #.#.###.#.#.###.#.# #.................# ################### Der Wert in der ersten Zeile gibt die Anzahl der Spalten, der Wert in der zweiten Zeile die Anzahl der Zeilen an. Danach folgt das Labyrinth, wobei die Zeichen '#' Wände darstellen. Die '.' sind aufzusammelnde “Items”. Der Aufruf des Programms [login to view URL] < [login to view URL] stellt das Labyrinth graphisch dar, beispielsweise wie in der Abbildung gezeigt: siehe Datei Die Spielfigur – hier durch das Zeichen '@' charakterisiert – soll in der Mitte des Labyrinths platziert werden. Mit der Tastatur soll es nun möglich sein, die Spielfigur durch das Labyrinth zu steuern, wobei die “Items” aufgesammelt (d.h. aus dem Labyrinth entfernt) werden sollen und die Wände nicht durchdrungen werden dürfen. Die Spielfigur soll nun alle Items in dem Labyrinth automatisch aufsammeln. Hierzu müssen Sie einen Wegefindungsalgorithmus implementieren, wofür sich beispielsweise eine Breitensuche gut eignet. Für die Breitensuche benötigen Sie eine Warteschlange (eine Queue) sowie eine Hashtable (alternativ: Dictionary). Der Algorithmus lässt sich wie folgt skizzieren: 1. füge die aktuelle Spielerposition (x,y-Koordinaten) in die leere Queue ein; 2. so lange die Queue nicht leer ist, 2.1 hole das erste Koordinatenpaar aus der Queue; 2.2 falls sich hier ein Item befindet, breche ab: die Suche war erfolgreich. 2.3 für alle direkten Nachbarn (links, oben, rechts, und unten) dieser Koordinaten: 2.3.1 falls nicht blockiert (kein '#') und noch nicht in der Hashtable enthalten: füge den Nachbarn in die Queue ein; füge den Nachbarn als Key und die aktuellen Koordinaten als Value in die Hashtable ein; 2.4 weiter mit 2. Die Hashtable enthält nun Koordinatenpaare, wobei jedes besuchte Feld als Key vorkommt. Der zugehörige Value ist das Koordinatenpaar, von dem aus man in der Suche gekommen ist (from). Um nun von der Spielerposition zum Ziel zu finden, müssen Sie den Weg rückwärts in der Hashtable suchen. Hierzu eignet sich ein Stack in der folgenden Art: 1. falls ein Ziel gefunden wurde, lege die Zielposition auf den leeren Stack; 2. lese den zugehörigen Value (die vorherige Position from) aus der Hashtable; 3. so lange from nicht der Ausgangsposition entspricht: 3.1 lege from auf den Stack; 3.2 lese die vorherige Position von from aus der Hashtable und weise diese from zu; 3.3 weiter mit 3. Für den Weg der Spielfigur zum Ziel müssen Sie nun nur noch den Stack abarbeiten. Machen Sie sich an einem einfachen Beispiel klar, dass der Algorithmus funktioniert. Schreiben Sie eine Klasse ComputerPlayer, die diesen Wegefindungsalgorithmus implementiert. Die Spielfigur soll nun selbständig mit einem Timer gesteuert alle Items des Labyrinths aufsammeln. Die Suche startet also erneut von der aktuellen Position, wenn ein item aufgesammelt wurde. Das wird solange wiederholt, bis das komplette Labyrinth leer gefressen ist. Erstellen Sie auch mindestens ein eigenes Labyrinth. Hinweis: verwenden Sie die Klasse [login to view URL] zur Speicherung der Koordinaten in den Collections-Datenstrukturen, da diese Klasse bereits die für die Hashtable benötigten Methoden Equals und GetHashCode implementiert.
Projektin tunnus (ID): 23631253

Tietoa projektista

3 ehdotukset
Etäprojekti
Aktiivinen 4 vuotta sitten

Haluatko ansaita rahaa?

Freelancerin tarjouskilpailun edut

Aseta budjettisi ja aikataulu
Saa maksu työstäsi
Kuvaile ehdotustasi
Rekisteröinti ja töihin tarjoaminen on ilmaista
3 freelancerit tarjoavat keskimäärin €39 EUR tätä projektia
Käyttäjän avatar
Hi I can help you with this maze program, I have done something similar in the past, send me a private message and lets talk about it
€80 EUR 3 päivässä
5,0 (8 arvostelua)
4,1
4,1
Käyttäjän avatar
Ich habe das College of Computer Science abgeschlossen und ich mache mehr von diesem Projekt als Aufgabe oder Mission, wenn Sie mich für dieses Angebot annehmen, dann werde ich diese Angelegenheit in weniger als 3 Tagen beenden und wenn Sie nach Algorithmen oder Strukturen fragen möchten ich werde verfügbar sein
€8 EUR 3 päivässä
0,0 (0 arvostelua)
0,0
0,0
Käyttäjän avatar
HI I am a student I have professional experience of working as a C# programmer I am fully motivated and also I can deliver the project on time.
€30 EUR 20 päivässä
0,0 (0 arvostelua)
0,0
0,0

Tietoja asiakkaasta

Maan GERMANY lippu
Stuttgart, Germany
0,0
0
Maksutapa vahvistettu
Liittynyt tammik. 29, 2020

Asiakkaan vahvistus

Muita töitä tältä asiakkaalta

Bearbeiten einer C# Aufgabe
€20-30 EUR
Kiitos! Olemme lähettäneet sinulle sähköpostitse linkin, jolla voit lunastaa ilmaisen krediittisi.
Jotain meni pieleen lähetettäessä sähköpostiasi. Yritä uudelleen.
Rekisteröitynyttä käyttäjää Ilmoitettua työtä yhteensä
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Ladataan esikatselua
Lupa myönnetty Geolocation.
Kirjautumisistuntosi on vanhentunut ja sinut on kirjattu ulos. Kirjaudu uudelleen sisään.