Files
exercises-300-digital-dojo-…/DDApp/DDApplication/spieleinstieg.txt

634 lines
19 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Digital Dojo <https://dd.countit.at/> Menü //
* //Coden lernen<https://dd.countit.at/programmieren-lernen>
o //Programmier-Roadmap <https://dd.countit.at/programmieren-lernen>
o //Programmierschule <https://dd.countit.at/programmierschule>
o //Übungsräume <https://dd.countit.at/dojos>
o //Katas <https://dd.countit.at/katas>
o //Tutorials <https://dd.countit.at/tutorials>
* //Dojo Game<https://dd.countit.at/dojo-game/multiplayer-modus>
o //Besiege unseren Bot <https://dd.countit.at/dojo-game>
o //Spieleinstieg <https://dd.countit.at/dojo-game/spieleinstieg>
o //Levels & Bots <https://dd.countit.at/dojo-game/levels>
o //Leaderboard <https://dd.countit.at/dojo-game/leaderboard>
o //Multiplayer Modus <https://dd.countit.at/dojo-game/
multiplayer-modus>
o //Tipps <https://dd.countit.at/dojo-game/tipps>
* //Programmier-Challenge <https://dd.countit.at/programmierwettbewerb>
* //Bewerben <https://dd.countit.at/bewerben>
* //Feedback <https://dd.countit.at/feedback>
* // <#>
Ausloggen
/
/
/
/
//Teilen //Facebook <https://www.facebook.com/sharer/sharer.php?
u=https%3A%2F%2Fdd.countit.at%2Fdojo-game%2Fspieleinstieg> //Instagram
<https://www.instagram.com/count_it_group/> //LinkedIn <https://
www.linkedin.com/shareArticle?
mini=true&url=https%3A%2F%2Fdd.countit.at%2Fdojo-
game%2Fspieleinstieg&title=&summary=&source=> //E-Mail
<mailto:m.mustermann@countit.at?subject=Lese-
Tipp%3A%20Dojo%20Game%20%7C%20Wichtige%20Infos%20zum%20Spieleinstieg&body=Hey%2C%0D%0A%0D%0Aich%20habe%20auf%20https%3A%2F%2Fkarriere.countit.at%20einen%20Beitrag%20gefunden%2C%20der%20dich%20interessieren%20k%C3%B6nnte%3A%0D%0A%22Dojo%20Game%20%7C%20Wichtige%20Infos%20zum%20Spieleinstieg%22%0D%0ASchau%20ihn%20dir%20mal%20an%3A%20https%3A%2F%2Fkarriere.countit.at%2Fdojo-game%2Fspieleinstieg%3Fkaid%3Dsharemail%0D%0A%0D%0ABeste%20Gr%C3%BC%C3%9Fe>
Spieleinstieg
Dojo Game
//Dojo Game | Dein Einstieg ins Spiel
------------------------------------------------------------------------
In diesem Abschnitt findest du alle notwendigen Infos, um das Dojo Game
zu starten und erste Aktionen durchzuführen.
*Hinweis: *Hol dir deinen persönlichen Zugang <https://dd.countit.at/
register> bevor du startest bzw. logge dich ein <https://dd.countit.at/
login>. So erscheinst du später auch am Leaderboard!
Inhaltsverzeichnis
1. Das Spiel <#spiel>
2. Vorbereitung <#vorbereitung>
3. API-Schlüssel <#api>
4. Spiel starten & beenden <#starten>
5. Ritter steuern <#ritter>
//Das Spiel
Im Dojo Game geht es, einfach erklärt, um einen *Server*, auf welchem
ein Spiel für dich bereitgestellt wird. In diesem Spiel gibt es im
Singleplayer-Modus *einen Gegner, den sogenannten Dojo-Bot,* und deinen
Charakter. *Dein Ritter* hat dieselben Eigenschaften wie ein vom
Computer gesteuerter Ritter. Über bestimmte Befehle (diese werden über
URLs aufgerufen) kannst du deinen Spieler steuern und so programmieren,
dass dieser mit deinen Gegnern kämpft, vor ihnen wegläuft oder andere
strategische Aktionen ausführt. Ziel ist es, so viele Gegner wie möglich
zu eliminieren.
*Ein Spiel dauert maximal 15 Minuten* - danach wird deine Sitzung
geschlossen. Es gibt innerhalb dieser 15 Minuten unendlich viele Gegner.
Wird ein Bot getötet, wird dieser auf einer zufälligen anderen Stelle
der Map wiedergeboren. Bei Start eines neuen Spiels beginnst du immer
automatisch neu in Level 1.
//Vorbereitung
Um am Dojo Game teilzunehmen, benötigst du einen an das Internet
angeschlossenen Computer, einen *Digital Dojo Zugang* <https://
dd.countit.at/register>. Sobald du eingeloggt <https://dd.countit.at/
login> bist, findest du im Folgenden deinen *API-Schlüssel*, den du
schon bald brauchen wirst.
Die Logik deines Spielers kannst du in jeder beliebigen
Programmiersprache implementieren, da Web-Requests an eine API von fast
jeder verfügbaren Programmier- und Skriptsprache unterstützt werden.
Falls du Starthilfe benötigst und auf bereits erstellte Algorithmen
aufbauen möchtest, kannst du dich hier <https://dd.countit.at/dojo-game/
tipps> umsehen.
Die REST-API Befehle können auch mithilfe vom Fiddler <https://
www.telerik.com/fiddler> oder dem Postman <https://www.postman.com/
> gesendet werden. Diese Programme werden meistens zum Testen oder für
Prototypen verwendet und benötigen keinen Programm-Code zum Funktionieren.
//API-Schlüssel
Mithilfe deines Keys kannst du dich mit unseren Servern verbinden um
dein Spiel zu starten. Zudem werden damit deine gesendeten Befehle
identifiziert, damit Aktionen, welche du ausführst, auch wirklich nur
für dich gelten. Somit wird verhindert, dass du die Spiele anderer User
stören oder manipulieren kannst.
*Halte deinen Schlüssel geheim* - er könnte es anderen Nutzern
ermöglichen, Befehle auszuführen welche nicht in deinem Sinne sind!
//Los geht's
------------------------------------------------------------------------
In diesem Abschnitt erfährst du, wie du ein Spiel startest und beendest,
den Status des laufenden Spiels abfragen kannst, und wie sich dein
Ritter steuern lässt.
Wie starte ich ein Spiel? [POST]
Um ein Spiel zu starten, benötigst du deinen API-Schlüssel <#api>. Wurde
dieser Befehl erfolgreich ausgeführt, wird das Spiel automatisch
gestartet und du kannst direkt Aktionen zum Bewegen des Ritters ausführen.
Falls bereits ein Spiel mit deinem Charakter läuft, musst du dieses
zuerst beenden, bevor du ein neues erstellen kannst. Spiele werden
mithilfe eines POST-Requests erzeugt.
https://game-dd.countit.at/api/game/{key}/create
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/game/{key}/create
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#spielstart>
<http://countit-azure-test.westeurope.cloudapp.azure.com:1337/dojo-
game/postman#spieleinstieg>
Wie beende ich ein Spiel? [POST]
Ein Spiel wird beendet, wenn du mit deinem API-Key folgenden Befehl als
POST-Request ausführst:
https://game-dd.countit.at/api/game/{key}/close
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/game/{key}/close
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#spielende>
Status des laufenden Spiels abfragen [GET]
Um abfragen zu können, ob mit deinem API-Schlüssel bereits ein Spiel
läuft, kannst du den folgenden Befehl verwenden. Du erhältst als
Rückgabewert dasselbe wie beim Erstellen und Schließen eines Spiels
sowie eine Fehlermeldung, falls kein Spiel vorhanden ist.
https://game-dd.countit.at/api/game/{key}/status
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/game/{key}/status
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#status>
Beim Erstellen und Beenden eines Spiels werden jeweils dieselben Daten
zurückgeliefert:
→ Game-ID: Diese macht dein Spiel identifizierbar.
→ Running: Damit werden dein Spielstatus und der Name des geladenen
Levels sichtbar.
Der zurückgegebene String ist im JSON Format.
{"gameid":"d2144a67-733a-4e06-8a6b-9ce877b99753","running":true,"level":"The Default Level"}
text/x-csharp
xxxxxxxxxx
{"gameid":"d2144a67-733a-4e06-8a6b-9ce877b99753","running":true,"level":"The Default Level"}
➯ Was ist JSON? <https://dd.countit.at/dojo-game/tipps#technologie>
//Steuere deinen Ritter
------------------------------------------------------------------------
Ein Ritter hat die Möglichkeit auf einem zweidimensionalen Spielfeld
verschiedenste Aktionen auszuführen. Aktionen sowie ihre Wirkungen und
REST Aufrufe sind hier gelistet. Versuche deine Aktionen nicht zu
schnell hintereinander auszuführen, da du nach jeder Aktion eine gewisse
Zeit abwarten musst, bis du diese wieder einsetzen kannst. Dein Ritter
führt nur Befehle aus, welche du ihm gibst. Sendest du deinem Spieler
keine Aktionen, welche dieser ausführen soll, steht dieser durchgehend
auf derselben Position und ist verletzbar.
Move [POST]
Du kannst deinen Ritter alle 250 Millisekunden um ein Feld in eine der
vier Himmelsrichtungen bewegen.
Das Feld "Direction" sollte eine Zahl zwischen 0 und 3 enthalten:
→ 0 für Norden
→ 1 für Osten
→ 2 für Süden
→ 3 für Westen
https://game-dd.countit.at/api/player/{key}/move/{direction}
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/move/{direction}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#move>
Dash [POST]
Dash lässt dich 5 Blöcke in eine von dir bestimmte Richtung bewegen.
Es hat außerdem einen besonderen Cooldown: Du kannst Dash schon 3
Sekunden nach der Aktivierung verwenden, aber dein Spieler wird zu
erschöpft sein und sich nur 3 Blöcke bewegen. Doch aufgepasst, wenn du
gegen eine Wand dasht nimmst du Schaden in Höhe der verbleibenden Dash-
Distanz. Nachdem du diese Aktion verwendet hast, musst du 5000
Millisekunden warten.
https://game-dd.countit.at/api/player/{key}/dash/{direction}
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/dash/{direction}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#dash>
Hit [POST]
Diese Aktion wird benutzt, um mit deinem Ritter zu schlagen. Es kann
jeweils nur in eine Himmelsrichtung (0 für Norden, 1 für Osten, 2 für
Süden und 3 für Westen) geschlagen werden und dies nur einen Block weit.
Danach musst du 250 Millisekunden warten, bis du wieder angreifen
kannst. Ein normaler Schlag, welcher mit einem Abstand von einem Block
erzielt wurde, fügt dem Gegner weniger Schaden zu als wenn du auf
demselben Block wie ein Gegner stehst. Hierbei ist es egal, wie viele
Gegner auf einem Fleck stehen. Jeder bekommt gleich viel Schaden.
https://game-dd.countit.at/api/player/{key}/hit/{direction}
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/hit/{direction}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#hit>
Shoot [POST]
Shoot benötigt, wie Peek, eine Direction (0 für Norden, 1 für Osten, 2
für Süden und 3 für Westen), also eine Richtung. Shoot verwendet diese
Richtung, um einen Schuss in diese Richtung abzugeben. Als Antwort kommt
zurück, ob diese Aktion ausgeführt wurde und ob ein Gegner getroffen
wurde. Die Kugel stoppt beim ersten Spieler. Nachdem du diese Aktion
verwendet hast, musst du 1000 Millisekunden warten.
https://game-dd.countit.at/api/player/{key}/shoot/{direction}
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/shoot/{direction}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#shoot>
Radar [GET]
Mit dem Befehl "Radar" kannst du die Umgebung um deinen Spieler im
Umkreis von 5 Blöcken auf Feinde überprüfen. Das Feld wird aufgeteilt
und durchsucht. Danach erhältst du Informationen über die Anzahl der
Spieler in den 4 Himmelsrichtungen und den Block, auf dem du stehst.
Nachdem du diese Aktion verwendet hast, musst du 250 Millisekunden warten.
Radar <https://dd.countit.at/media/dojo-game/dojo-game_radar-
himmelsrichtungen.png>
https://game-dd.countit.at/api/player/{key}/radar
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/radar
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#radar>
Scan [GET]
Mit Scan kannst du den am nächsten stehenden Spieler im Umkreis von 3
Blöcken finden. Durch den Rückgabewert weißt du dann auch, was seine
relative Position zu dir ist. Nachdem du diese Aktion verwendet hast,
musst du 2000 Millisekunden warten.
https://game-dd.countit.at/api/player/{key}/scan
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/scan
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request? <https://dd.countit.at/dojo-game/postman#scan>
Peek [GET]
Peek benötigt, wie Move und Hit, eine Direction (0 für Norden, 1 für
Osten, 2 für Süden und 3 für Westen). Peek verwendet diese Richtung, um
zu überprüfen, ob sich in der angegebenen Richtung ein Spieler in deinem
Sichtfeld befindet. Peek gibt dir dann die Anzahl der Gegner in der
Sichtlinie und die Distanz zum nächsten stehenden Spieler in dieser
Sichtlinie zurück. Dies kannst du alle 1000 Millisekunden verwenden.
https://game-dd.countit.at/api/player/{key}/peek/{direction}
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/peek/{direction}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#peek>
Stats [GET]
Mit Stats hast du die Möglichkeit dir deine Kills und Deaths des aktiven
Spiels anzusehen. Der Rückgabewert weicht vom Rückgabewert der anderen
Funktionen ab - enthalten sind Informationen zum derzeitigen Level,
allgemeine Stats sowie Informationen zu den Lebenspunkten eines Spielers.
*progress* - gibt an, wie weit du ein Level bereits abgeschlossen hast (%)
*remainingtime* - gibt an, wieviele Minuten noch übrig sind bevor das
Spiel gestoppt wird
*deathsleft* - gibt an, wie oft du noch sterben darfst, bevor das Spiel
gestoppt wird
https://game-dd.countit.at/api/player/{key}/stats
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/stats
Der Rückgabewert dieser Funktion wurde mit dem letzten Update verändert.
Hier ein Beispiel für den neuen Rückgabewert:
{"action":"stats","executed":true,"stats":
{"kills":1,"deaths":1},"level":
{"progress":6.6,"remainingtime":14.44,"deathsleft":999,"levelid":2,"name":"Bigger Map Level"},"health":{"currenthealth":10.0,"maxhealth":10.0}}
text/x-csharp
xxxxxxxxxx
{"action":"stats","executed":true,"stats":{"kills":1,"deaths":1},"level":{"progress":6.6,"remainingtime":14.44,"deathsleft":999,"levelid":2,"name":"Bigger Map Level"},"health":{"currenthealth":10.0,"maxhealth":10.0}}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#stats>
Specialattack [POST]
Specialattack ist eine Aktion, welche du viel seltener als einen
normalen Schlag ("Hit") einsetzen kannst. Diese hat allerdings eine
bestimmte Fähigkeit und verursacht dadurch mehr Schaden an deinem
Gegner. Specialattack nimmt keine Direction als Parameter entgegen,
sondern führt den Angriff in allen Richtungen mit einem Wirkungskreis
von 3 Blöcken gleichzeitig aus. Du kannst die Specialattack alle 5000
Millisekunden ausführen.
https://game-dd.countit.at/api/player/{key}/specialattack
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/specialattack
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#specialattack>
Teleport [GET]
Mit Teleport kannst du dich auf ein beliebiges Feld teleportieren. Der
Trick dabei: Du musst das Feld relativ zu deiner Position mithilfe von x
und y Koordinaten angeben.
Cooldown: 20000 Millisekunden (20 Sekunden)
Achtung: Falls du in einer Wand landest bist du sofort tot. Wenn du
allerdings einen Gegner erwischst, wird dieser sofort getötet.
https://game-dd.countit.at/api/player/{key}/teleport/{x}/{y}
text/x-csharp
xxxxxxxxxx
https://game-dd.countit.at/api/player/{key}/teleport/{x}/{y}
➯ Problem? <https://dd.countit.at/dojo-game/tipps#fehler>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#teleport>
Rückgabewert
Jede Aktion gibt im Prinzip immer einen gleich strukturierten JSON-
String zurück. Jedoch können sich die Datentypen der einzelnen Felder je
nach Aktion unterscheiden.
Hier zwei Beispiele, um dies zu verdeutlichen:
Die Move-Aktion, ohne speziellen Rückgabewert:
{"action":"move","move":"true","executed":"true"}
text/x-csharp
xxxxxxxxxx
{"action":"move","move":"true","executed":"true"}
Die Radar-Aktion, mit einem Integer als Rückgabewert:
{"action":"radar","radar":2,"executed":"true"}
text/x-csharp
xxxxxxxxxx
{"action":"radar","radar":2,"executed":"true"}
➯ Was ist JSON? <https://dd.countit.at/dojo-game/tipps#technologie>
➯ Postman-Request <https://dd.countit.at/dojo-game/postman#rueckgabewerte>
Bereit für die ultimative Programmier-Challenge an deiner Schule?
Alle Infos dazu findest du hier //
<https://dd.countit.at/programmierwettbewerb>
/
/
Ultimative Coding-Roadmap
Unsere Roadmap weist dir den Weg zum Coding-Profi!
Mehr erfahren // <https://dd.countit.at/programmieren-lernen>
/
/
Besiege unseren Bot
Egal ob als Einzelspieler oder im Mulitplayer-Modus: Stelle dich dem
Dojo-Bot und beweise, dass du auf das Leaderboard gehörst!
Ich bin bereit! // <https://dd.countit.at/dojo-game>
/
/
Bewerbung bei COUNT IT
Starte deine Karriere als Softwareentwickler*in bei COUNT IT.
Zum Formular! // <https://dd.countit.at/bewerben>
Über Digital Dojo
Das Digital Dojo ist der virtuelle Übungsraum von COUNT IT.
Angehende Programmierer*innen, Code-Neulinge, Wiedereinsteiger*innen und
Fortgeschrittene finden hier das nötige Rüstzeug für ihre Karriere.
Du möchtest deine Lehre bei COUNT IT starten? Dann bist du hier richtig
- besiege deine Gegner im Dojo Game und sichere dir deine Lehrstelle!
Inspire your career.
Navigation
Programmieren lernen <https://dd.countit.at/programmieren-lernen> News
<https://dd.countit.at/news>
Programmierschule <https://dd.countit.at/programmierschule> Partner
<https://dd.countit.at/partner>
Programmier-Challenge <https://dd.countit.at/programmierwettbewerb>
Dojo Game <https://dd.countit.at/dojo-game>
Datenschutz <https://www.countit.at/datenschutz> Karriere @ COUNT IT
<https://karriere.countit.at/>
Impressum <https://www.countit.at/impressum> COUNT IT
Softwarehouse <https://it.countit.at/>
Newsletter abonnieren
Der COUNT IT Newsletter liefert viermal jährlich interessante
Neuigkeiten über das Unternehmen. Gleich anfordern!
E-Mail-Adresse
Senden
// <https://de-de.facebook.com/COUNTITGroup/> // <https://
www.instagram.com/count_it_group/> // <https://de.linkedin.com/company/
count-it-group>
//
COUNT IT Group verwendet Cookies, um die Website bestmöglich an die
Bedürfnisse der User anpassen zu können.
* Google
* Microsoft
* Ahrefs
* Statistik
Akzeptieren
Individuelle EinstellungenIndividuelle Einstellungen ausblenden |
Datenschutz­erklärung <https://www.countit.at/datenschutz>
Google
Google Analytics und Optimize aggregiert Daten über unsere Besucher und
ihr Verhalten auf unserer Website. Wir nutzen diese Informationen zur
Verbesserung unserer Seite.
Microsoft
Microsoft aggregiert Daten über unsere Besucher und ihr Verhalten auf
unserer Website. Wir nutzen diese Informationen zur Verbesserung unserer
Seite.
Ahrefs
Ahrefs aggregiert Daten über unsere Besucher und ihr Verhalten auf
unserer Website. Wir nutzen diese Informationen zur Verbesserung unserer
Seite.
Statistik
Es werden grundlegend notwendige, anonymisierte Userdaten aufgezeichnet,
welche nur von uns für Auswertungen verwendet werden!
Cookie Entscheidung speichern