M steht für Milestone. Diese Version ist noch nicht feature-complete und vermutlich instabil.

RC wäre Release Candidate, beinhaltet schon alle Features und ist großteils stabil.

GA bedeutet dann General Availability. Diese Versionen sind der offiziell fertig und werden auf dem Markt zum Kauf verfügbar gemacht.

Hier kannst du dir mehr dazu durchlesen:
https://en.wikipedia.org/wiki/Software_release_life_cycle

...zur Antwort

Versionsverwaltungssysteme wie Git arbeiten meistens mit Branches, also "Zweigen", die verschiedene Versionen des Projektes beinhalten.

Wenn du zum Beispiel eine Änderung vornehmen willst, möchtest du das nicht direkt im Hauptzweig (meistens "master"-Branch oder "develop"-Branch) machen, sondern dir einen eigenen Branch erstellen, wo du ganz sicher mit dem Programmcode herumspielen kannst (egal, ob was kaputt wird oder nicht, die Hauptversion gibt es ja noch im anderen Zweig).

Sollte deine Änderung nun fertig sein, kannst du einen Pull Request erstellen. Das ist quasi eine Anfrage, deinen neuen Branch mit einem anderen Branch zu vereinen ("mergen").
Der Reviewer sieht dabei ganz genau die Änderungen, die du gemacht hast, und kann sich dann entscheiden, die Zweige zusammenzuführen, sodass deine Änderungen in den anderen Branch kommen.

Beim Zusammenführen kann es dann natürlich auch Konflikte geben, wenn in beiden Zweigen Änderungen am selben Code-Fragment vorgenommen wurden. Derjenige, der das Mergen übernimmt, muss dann entscheiden, welche Änderung er nun beibehalten will.

...zur Antwort

Außerdem solltest du auf jeden Fall zuerst mal einfache Java-Konsolenprogramme schreiben, bevor du dich an komplexere Sachen wie Android Apps ranmachst.

...zur Antwort

Domain forwarding with masking.

Hier hast du eine Übersicht, wie man domain forwarding konfigurieren kann:

https://de.godaddy.com/help/manually-forwarding-or-masking-your-domain-name-422

...zur Antwort
The Holy Waffle TS3 Java API Events?

Hallöchen alle zusammen.

Ich hab folgendes Problem.

Ich bastel gerade einen Bot für TS. Der soll bei einem bestimmten Befehl dem User eine festgelegte Servergruppe verpassen.

Das ganze versuch ich mit den Events die die API bietet.

Das wäre dann das

ClientJoinEvent

und das

TextMessageEvent

Im Client Join Event hab ich die Möglichgeit mit getClientDatabaseId die Datenbank ID des Clienten ab zu rufen, der die Nachricht an den Bot geschickt hat. Diese brauch ich auch um dem Clienten die Servergruppe zu zu ordnen.

Jetzt hab ich das Problem, dass es diese Möglichkeit im TextMessageEvent nicht gibt.

Kennt einer eine Möglichkeit, wie ich jetzt auf das getClientDatabaseId aus dem ClientJoinEvent in dem TextMessageEvent zugreifen kann?

Hier mal noch der Code, der einzelnen Events:

TextMessageEvent:

            @Override
            public void onTextMessage(TextMessageEvent e) {
                
                for(Client c : api.getClients())
                
                if(e.getMessage().equalsIgnoreCase("!de")) {
                        api.addClientToServerGroup(20, );
                        api.sendPrivateMessage(c.getId(), "Deine Sprache wurde auf Deutsch gesetzt.");
                        
                        
                } else if (e.getMessage().equalsIgnoreCase("!en")) {
                        api.addClientToServerGroup(21, api.whoAmI().getDatabaseId());
                        api.sendPrivateMessage(api.whoAmI().getDatabaseId(), "Your language was set to english.");
                        
                }
                
            }

ClientJoinEvent

                        @Override
            public void onClientJoin(ClientJoinEvent e) {
                    
                    if(e.getClientServerGroups().equals("7")){
                        api.sendPrivateMessage(e.getClientId(), "Bitte wähle deine Sprache. Antworte mit '!de' für deutsch.");
                        api.sendPrivateMessage(e.getClientId(), "Please choose your favorite language. Answer with '!en' for english.");
                        
                        
                        
                    } else if(e.getClientServerGroups().equals("7")){
                        api.sendPrivateMessage(e.getClientId(), "test");
                        
                    } else if (e.getClientServerGroups().equals("21")){
                        api.sendPrivateMessage(e.getClientId(), "test");
                        
                    }
                
                    
            }
...zum Beitrag

Du kannst ja die Servergroups vom Client direkt abrufen.

http://theholywaffle.github.io/TeamSpeak-3-Java-API/1.0.13/

client.getServerGroups();
...zur Antwort

Die App selbst wurde vermutlich in Objective-C geschrieben, weil sie nur auf iOS verfügbar war und 2012 erstellt wurde. Heutzutage könnte man das natürlich auch in Swift machen.

Der Algorithmus selbst lief allerdings auf einem Backend-Server, weil die Ressourcen auf mobilen Geräten sehr beschränkt sind. Die Programmiersprache auf dem Backend könnte alles gewesen sein, vermutlich etwas wie Python, C# oder Java.

Entwickelt wurde der Algorithmus übrigens nicht von dem 17-Jährigen, der dadurch bekannt wurde, sondern von einem externen Team des Stanford Research Institute (SRI International), welches sich auf Machine Learning und Spracherkennungs-Algorithmen spezialisiert hat.

http://summly.com/technology.html

Java und C# kann man meines Wissens nach nicht direkt in Swift einbinden, da derzeit nicht einmal C++ in Swift nativ aufgerufen werden kann. Du müsstest also einen C Wrapper für deine Java/C# Library schreiben und das willst du dir sicher nicht antun.

...zur Antwort

Wie wärs mit der offiziellen JavaScript API von Elastic?

https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/index.html

...zur Antwort

Eine sehr gute Lösung dafür ist es, deinen eigenen TimerTask zu definieren (ihn also vom originalen TimerTask erben zu lassen) und die gewünschten Variablen im Konstruktor mitzugeben.

class CustomTimerTask extends TimerTask {
private String clientName;

public CustomTimerTask(final String clientName) {
this.clientName = clientName;
}

@Override
public void run() {
// use clientName here
}
}
...zur Antwort

Wenn du einen Aimbot wirklich nur für ein Video brauchst, dann google doch einfach nach "cod4 aimbot". Der erste Treffer war für mich sofort ein kostenloser Download.

Die kostenlosen Hacks haben natürlich alle keinen Anticheat-Bypass, aber um lediglich ein Video zu drehen, kannst du ja genauso gut auf einem privaten Server ohne Punkbuster spielen.

...zur Antwort

Naja, speichere doch einfach alle bereits verwendeten Buchstaben ab. Dann kannst du jedes Mal nachfragen, ob der Buchstabe schon einmal getippt wurde.

...zur Antwort
jQuery: An- und Ausschalter programmieren mit einer Variablen Programmieren?

Ich muss folgende Aufgabe lösen:

"Beim Überfahren des großen Bildes wird die Grafik „bild1.jpg“ gegen die Grafik „bild2.jpg“ ausgetauscht – beim Verlassen des Bildes wird die ursprüngliche Grafik wieder angezeigt.

Dieses Austauschen funktioniert aber nur, wenn zuvor der Ausschalter mit einem Klick „angeschaltet“ wurde – Grafiktausch mit Datei „schalterein.png“. Wird der Schalter wieder ausgeschaltet, dann geht auch die Mouseover-Funktionalität nicht mehr. Wichtig: Arbeiten Sie mit einer Variablen namens schalter."

Bei dem Schalter handelt es sich um ein Image und keinen Button.

Der erste Teil der Aufgabe - der Grafiktausch beim Hovern - ist kein Problem.

Den Schalter bekomme ich aber nicht programmiert. In anderen Aufgaben haben wir immer einen separaten An- und Ausschalter programmiert, bisher nicht beides zusammen und ich komme einfach nicht auf eine Lösung.

Bisher habe ich nur den Anschalter programmiert (kann natürlich falsch sein):

var Schalter=0;

$("img:eq(2)").click(function (){ Schalter=1; $("img:eq(2)").attr("src","schalterein.png"); })

Wenn man wieder auf das Schalter img klickt soll der Schalter=0 werden, das Bild soll sich wieder ändern & somit wäre er ausgeschaltet.

Ob der Schalter auf 0 oder 1 steht dient zur Abfrage um den Hover Effekt/ Grafiktausch zu aktivieren bzw. deaktivieren.

Kann auch sein, dass mein Ansatz total falsch ist. Ich hoffe jemand kann mir hier weiterhelfen.

...zum Beitrag

Die Variable schalter sollte ein boolscher Ausdruck sein (true oder false), der angibt, ob der Schalter ein (true) oder aus (false) ist.

Beim Klick auf irgendein Objekt (vermutlich ein Bild) mit der Klasse "schalter" änderst du dann die Variable schalter auf entweder true oder false (je nachdem, was es vorher war). Außerdem ändert sich das Bild auf "schalterein.png".

Dann fügst du beim Bild (hier mit der Klasse "image") noch einen hover Handler hinzu, der Funktionen beim mouse-enter und mouse-leave ausführt.

Wenn ihr noch ein Bild für den ausgeschalteten Schalter habt (geht nicht aus der Angabe hervor), dann musst du das beim Klick auf "schalter" noch einbauen.


var schalter = false;

$("#schalter").click(
function() {
schalter = !schalter;
$("#schalter").attr("src", "schalterein.png");
}
);

$("#image").hover(
function() {
if (schalter) {
$("#image").attr("src", "bild2.png");
}
},
function() {
if (schalter) {
$("#image").attr("src", "bild1.png");
}
}
);



...zur Antwort

Es ist bei allen dreien immer dasselbe Schema. Geschweifte Klammern kannst du immer setzen. Es ist nur nicht notwendig, wenn du nur einen Befehl im jeweiligen Block hast. Ich setze der Übersicht wegen beispielsweise immer geschweifte Klammern.

for(...) {
...
}

while(...) {
...
}

if(...) {
...
}
...zur Antwort

ui ist in dem Fall ein Parameter für die Funktion abc_de.

def methode1():
print("hallo")

def methode2(x):
print(x)

methode1 hat keine Parameter und gibt einfach nur hallo aus.

methode2 hat x als Parameter und gibt aus, was auch immer x ist.

Beispiele:

methode1()

Ausgabe: hallo
methode2("test")

Ausgabe: test
abc = "alphabet"
methode2(abc)

Ausgabe: alphabet

In deinem Fall willst du eine Variable ui an deine Methode abc_de übergeben, hast diese aber vorher nicht definiert. Schau dir das dritte Beispiel an, um zu sehen, wie man Variablen an Methoden als Parameter übergibt.

...zur Antwort

Für die Spieleentwicklung würde ich dir auf jeden Fall empfehlen, eine vorhandene Spieleengine (Unity, CryEngine, ...) zu verwenden.

Prinzipiell bestehen aufwendigere Spiele aus Grafikengine, Physikengine und KI-Engine. Alle drei dieser Engines sind eine Wissenschaft für sich und nur sehr schwer selbst umzusetzen. Ich musste selbst schon für Unikurse (vereinfachte) Engines in diesen drei Bereichen schreiben und der Spaß hielt sich dabei in Grenzen. Es macht viel mehr Sinn, Grafik, Physik und KI von bereits fertigen Engines zu verwenden und den eigenen Fokus auf die Spielelogik selbst zu setzen.

Diese Demo habe ich beispielsweise mit der Grafikengine "Ogre" und der Physikengine "Bullet" in C++ programmiert:

https://youtube.com/watch?v=6u1VUinIFQE

Mit den genannten Komplettlösungen (Unity, CryEngine, ...) erzielst du aber weitaus schneller und einfacher bessere Ergebnisse.

...zur Antwort

Die Gleichheit von String-Variablen ist mit .equals() zu überprüfen und nicht mit ==.

if (t.zeichen().equals('a')) {
...
}
...zur Antwort

Du hast dir diese Frage doch schon selbst beantwortet.

i² = -1

Also ist i die Wurzel aus  -1.

...zur Antwort