Code Monkey home page Code Monkey logo

bomberman-server's People

Contributors

eauw avatar

Watchers

 avatar  avatar

Forkers

rokkbert

bomberman-server's Issues

Minimale Wartezeit bzw. maximale Geschwindigkeit

Nice to have:
Es wäre gut, wenn der Server einen Parameter für die maximale Geschwindigkeit hätte, und nicht nur den timeout, wie lange eine Runde maximal dauert. Wenn alle Spieler sehr schnell sind dann hat man sonst keine Möglichkeit, überhaupt zu sehen, was abgeht. Gut wäre also so etwas wie "-maxSpeed 100", wobei die 100 dann Millisekunden wären. Den Clients braucht das nicht mitgeteilt zu werden, da sie ohnehin nicht davon ausgehen können, dass eine Runde schnell vorbei ist, weil jeder andere Spieler sich beliebig Zeit bis zum Timeout lassen könnte.

Wände müssen vor Explosionen schützen

Explodierende Bomben dürfen nicht durch Wände hindurch wirken, auch nicht durch zerstörbare Wände.
Beispiel, Ausgangssituation, Bombe der Stärke 3:
.|.|p|w|w|B|.|.|.|.
Wenn die Bombe hochgeht:
falsch: .|.||||||||.
richtig: .|.|p|w|
|||||.
D.h. auch hinter w-Wänden soll man sich verstecken können.

Nicht ueber bomben laufen

Bomben sollten den weg versperren, so dass man gegner in sackgassen einsperren kann. Man darf nur auf einer bombe stehen, wenn man sie gerade gelegt hat, aber man darf nicht auf ein feld laufen, auf dem eine bombe liegt.

Beobachter-Modus implementieren

Einen Modus für Clients bauen die nicht mitspielen wollen sondern den Spielverlauf nur beobachten oder visualisieren wollen.

Timeout überarbeiten

Timeout soll nur maximale Wartezeit darstellen. Die Runde muss starten sobald alle Spieler die Befehle gesendet haben, aber spätestens nach Ablauf des Timeouts.

Specials anwenden

implementieren: Wenn ein Spieler ein Special einsammelt den Effekt anwenden

Teleport vom Fuchs überarbeiten

  • zufaelligs feld
  • wenn das feld nicht leer ist (special, bombe, anderer spieler) dann neues feld auswaehlen
  • wenn das feld direkt neben einem anderen spieler ist dann neues feld auswaehlen
  • wenn das feld in der naechsten runde gespengt wird dann neues feld auswaehlen
    14:10 das letzte ist ein bisschen komplzierter, aber auch nicht sehr. Da muss man halt schauen ob horizontal oder vertikal von dem feld eine bombe liegt, ob sie nah genug dran ist und ob sie in der naechsten runde explodiert.

Platzierung der Wände überarbeiten

  1. Spieler darf zu beginn des Spiels nicht eingeschlossen sein, sodass eine Selbstsprengung der einzige Ausweg ist.
  2. Etwas Struktur ins Labyrinth bauen damit es nicht so zufällig ist.

Nicht ueber bomben laufen

Bomben sollten den weg versperren, so dass man gegner in sackgassen einsperren kann. Man darf nur auf einer bombe stehen, wenn man sie gerade gelegt hat, aber man kann nicht mehr auf ein feld gehen, auf dem schon eine bombe liegt.

Bomben werfen

Die Bomben sollen immer bis zu 9 Felder weit geworfen werden koennen.
Ueber/auf Specials werfen ist ok.
Vor Waenden, Spielern und anderen Bomben bleiben sie liegen.

Server muss doppelte Namen verhindern.

Wenn sich ein Client verbindet und seinen Namen in einen Namen ändern will, der schon vergeben ist, dann muss der Server das verhindern. Sonst hat man in der Liste der Spieler doppelte Namen und kann die Spieler nicht auseinanderhalten.
Mögliche Lösungen:

  1. der Server lehnt die Änderung einfach ab (mit Fehlermeldung) und der Name bleibt unverändert (i.d.R. also dann so was wie "Player3").
  2. der Server verändert den gewünschten Namen so, dass er Eindeutig ist (z.B. "SuperBot" -> "SuperBot2").

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.