Ich habe nun einmal in deine Fragehistorie geschaut, um den Themenbereich einzugrenzen. So lässt sich effektivert nach einer Internetecke fahnden, in der man auf Hilfe treffen kann.

Gefunden habe ich nur eine einzige Frage zur Programmierung. Sie bezieht sich auf libGDX. Das libGDX-Forum selbst kann als tot betrachtet werden. Dafür werden auf der offiziellen Herstellerseite aber andere Alternativen aufgelistet, wo sich die Community noch gesammelt hat.

...zur Antwort
  1. Mit der text-Methode (ohne Argument) kannst du dir den Text holen.
  2. Mit der substring-Methode (pures JS) ermittelst du den letzten Teilstring, der bleiben soll.
  3. Das Resultat übergibst du einem weiteren Aufruf der text-Methode (also diesmal mit Argument).
...zur Antwort

Wie bei so vielen Aufgaben der Rat: Gehe schrittweise vor.

Zuerst einmal sollte die Datei zeilenweise eingelesen werden. Das kann man beispielsweise mit der Files-Klasse bewerkstelligen.

List<String> lines = null;

try {
  lines = Files.readAllLines(Paths.get("your_csv_file.csv"));
}
catch (IOException ex) {
  ex.printStackTrace();
}

Dem folgt die Aufteilung der Daten (Zeile für Zeile) in Spalten. Dafür brauchst du den Separator, der in der Datei verwendet wird. Normalerweise wird das Kommazeichen verwendet, es könnte aber auch ein Semikolon (oder irgendein anderes Zeichen) sein. Schau dazu einfach in die CSV-Datei, du kannst sie ja mit einem einfachen Texteditor öffnen. Mit der split-Methode der String-Klasse lässt sich die Auftrennung anhand eines Trennzeichens jedenfalls leicht umsetzen.

Das, was du mit einer gewissen Nummerzuordnung versuchst, zu erklären, verstehe ich nicht ganz (generell ist dein Text schwer verständlich, nicht zuletzt wegen seltsamer Schachtelsätze). Es scheinen jedenfalls nur die ersten drei Spalten von Interesse zu sein und möglicherweise musst du nochmal Daten (1-3 4-5 6-8) anhand eines Bindestrich auftrennen, was allerdings kein Problem sein sollte.

Das Umwandeln einzelner Strings (die Zahlen beinhalten) in Integer, kannst du mit parseInt (Integer-Klasse) durchführen. Wenn du von diesen den Durchschnitt berechnen möchtest, brauchst du sie (und das geht gut im gleichen Zug mit der Konversion) lediglich miteinander addieren und zu guter Letzt die Summe durch die Anzahl an Zahlen teilen, die du summiert hast.

Beachte, dass du dabei eine Integer-Division vornehmen würdest, die Dezimalstelle also abgeschnitten werden würde. Das lässt sich verhindern, indem du entweder den Dividend oder den Divisor in eine Fließkommazahl umwandelst.

float average = sum / (float) countOfNumbers;
...zur Antwort

Impossible Rush mit JavaScript: Wie kann ich mein Quadrat für das Spiel in mein Canvas bekommen?

Hallo,

ich arbeite seit zwei Tagen bei meiner Aufgabe von der Schule, jedoch komme ich gerade nicht weiter und wollte euch fragen, ob ihr mir bitte helfen könnt.

Hier kann man bis jetzt meinen Code erkennen:

<!DOCTYPE html>
<html>
  <h1> Impossible Rush</h1>
  <style>
    canvas {
      background-color: #afa;
      border: 1px solid #000;
    }
  </style>
  <script>
    var y;

    function drawAll() {
      var ele = document.getElementById("myCanvas");
      var y = document.getElementById("myImage");
      var ctx = ele.getContext("2d");
      ctx.drawImage(y, 75, 220, 100, 100);
    }

    function start() {
      drawAll();
    }
  </script>
  <body onload="start()">
    <canvas id="myCanvas" width="250" height="350" style="border:5px solid #000000;"></canvas>
    <img id="myImage" src="Images/red.png" style="width:100px">
    <button onclick="document.getElementById('myImage').src='Images/red.png'">Red</button>
    <button onclick="document.getElementById('myImage').src='Images/blue.png'">Blue</button>
    <button onclick="document.getElementById('myImage').src='Images/yellow.png'">Yellow</button>
    <button onclick="document.getElementById('myImage').src='Images/green.png'">green</button>
  </body>
</html>

Das Problem, wo ich nicht weiterkomme ist das, dass ich nicht weiß, wie ich mein Quadrat für das Spiel in meinen Canvas bekommen soll. Ein Freund von mir meinte, ich soll eine Variable setzen und den Canvas neu zeichnen. Aber leider weiß ich auch nicht genau, wie er das meint und ob das stimmt.

Vielleicht kann mir ja jemand von euch weiterhelfen und mir sagen, wie ich das Quadrat in mein Canvas hineinbekomme.

...zur Frage

1) Ein h1-Element gehört keinesfalls in den head, sondern in den body-Bereich. Tausche es gegen ein title-Element, das fehlt dir sowieso.

2) Ich würde dazu raten, eindeutige und aussagekräftige Bezeichner zu verwenden und zudem HTML, CSS und JavaScript so gut wie möglich voneinander zu trennen.

Es könnte also so aussehen:

<!DOCTYPE html>
<html>
  <head>
    <title>Impossible Rush</title>
    <style>
      canvas {
        background-color: #afa;
        border: 5px solid black;
      }

      #myImage {
        display: none;
        width: 100px;
      }
    </style>
  </head>
  <body>
    <h1>Impossible Rush</h1>
    <canvas height="350" id="myCanvas" width="250"></canvas>
    <img alt="Some colored rectangle" id="myImage" src="path/to/some/image.jpg">

    <button data-image="path/to/red/image.jpg" type="button">Red</button>
    <button data-image="path/to/blue/image.jpg" type="button">Blue</button>
    <button data-image="path/to/yellow/image.jpg" type="button">Yellow</button>
    <button data-image="path/to/green/image.jpg" type="button">Green</button>

    <script>
      const image = document.getElementById("myImage");
      const canvas = document.getElementById("myCanvas");
      const context = canvas.getContext("2d");

      image.addEventListener("load", function() {
        context.drawImage(image, 75, 220, 100, 100);
      });

      const colorChangeButtons = document.querySelectorAll("button[data-image]");

      for (const colorChangeButton of colorChangeButtons) {
        colorChangeButton.addEventListener("click", function() {
          image.src = this.getAttribute("data-image");
        });
      }
    </script>
  </body>
</html>

Das Skript lasse ich ausführen, sobald die Seite geladen wurde. Da die meisten Variablen (canvas, image, context) nur einmal geladen werden brauchen und öfter verwendet werden könnten, habe ich sie als globale konstante Variablen definiert.

Die Buttons machen stets das Gleiche, lediglich der Wert ändert sich. Den kann ein data-Attribut bestimmen. Ich hole mir also erst alle Buttons mit entsprechendem data-Attribut und verpasse ihnen allen einen Event Listener, der bei einem Klickereignis die Quelle des Bildes ändert.

Beim Ändern der Bildquelle (und auch initial beim Laden der Seite) wird einmal das load-Event des Bildes ausgelöst. Das kann als Signal dienen, das Canvas zu bezeichnen. Das Bild wird einfach über das alte Bild gezeichnet.

...zur Antwort
Kann mir jemand bei der Aufgabe helfen (...)

Gehe schrittweise vor:

  1. Wie kann Initialzustand der Pflanze dargestellt/formuliert werden?
  2. Wie lässt sich der Zustand der Pflanze je Woche berechnen?
  3. Wie lässt sich der Zustand der Pflanze nach zehn Wochen berechnen?
  4. Wie kann man eine Zahl (ich vermute, in der Konsole) ausgeben?

Im Unterricht werdet ihr zudem gewisse Themen schon behandelt haben, die bei der konkreten Umsetzung helfen.

(...) und den Quelltext für Processing aufschreiben?

Nein. Weder erfüllst du damit die Aufgabenstellung (Quelltext selber vollständig erstellen), noch lernst du effektiv / ausreichend dabei.

...zur Antwort

Du definierst für deine Methode zwar einen Rückgabewert (IEnumerator), gibst aber nirgendwo etwas zurück.

...zur Antwort

Zuerst einmal eine Gegenrede zu den vorherigen Antworten: Nein, du benötigst kein PHP. Das ersetzt du für deinen Fall ja mit Python.

Beschäftige dich mit Django.Womöglich hast du damit sogar schon begonnen.

Relevant wird für dich im ersten Schritt sein, wie du

  • dir eine passende Entwicklungsumgebung einrichtest (sei es über einen Webhoster oder meist besser, über einen lokalen Webserver - Apache mit mod_wsgi wäre eine Option)
  • die Daten in einer Datenbank lagerst
  • mit der Datenbank kommunizierst
  • dynamisch Seiten (anhand eines Templates) generieren kannst
  • (Formular-)Daten von der Webseite entgegennehmen kannst
  • Sessions erstellst (für den durch den Login geschützten Bereich)

Bis auf die offizielle Dokumentation (und vermutlich lässt sich auf RealPython ebenso etwas zu Django finden) habe ich keine besonderen Geheimtipps an Quellen. Schau einfach, was du via Google findest. Hier gibt es bspw. ein Tutorial zu einem Diskussionsforum.

Zudem dürfte JavaScript ein nützliches Werkzeug sein, um mehr Interaktionsmöglichkeiten und Dynamik in die Webseite zu bringen.

Bezüglich des Projekts an sich solltest du zunächst mit dem Model und der Hintergrundlogik beginnen. Dafür musst du aber erst wissen, welche Anforderungen es gibt. Wie GuteFrage ist da noch viel zu unkonkret. Halte schriftlich (z.B. in Stichpunkten) fest, welche Funktionen du umsetzen möchtest. Dann kannst du im Anschluss besser planen, was für die Umsetzung notwendig sein könnte. Wenn du das alles erst Stück für Stück planst, schaffst du dir eher Mehraufwand und Fehlerquellen.

...zur Antwort

Im Grunde ja. Beides sind IDEs, die dir bei der Entwicklung von Programmen helfen sollen.

Nur ist Xcode vorrangig für Apple-Sprachen (Objective-C, Swift) konzipiert, doch kann man die Umgebung auch für Projekte mit anderen Sprachen (C/C++, Ruby, Java, ...) nutzen. Das Programm selbst ist nur auf Apple OS verfügbar.

Visual Studio wiederum ist auf .NET-Entwicklung (C#, VB.NET) ausgelegt. Wie Xcode gibt es aber auch Support für noch andere Sprachen (in dem Fall z.B.: C++, Typescript, JavaScript, Python, ...).

...zur Antwort

Dropdown wird nicht angezeigt?

Hallo,

wie Ihr schon von der Frage ableiten könnt, möchte mein Dropdown sich nicht sehen lassen. Ich möchte eine Website erstellen und ich arbeite mit Brackets.

Hier mein HTML code:

<div id="navigation">

      <nav class="navbar">

        <ul class="navlist">    

          <li><a href="Web.html">Home</a></li>

          <li><a href="Web.html">Unser Wein</a></li>  

          <li><a href="Web.html" target="_blank">Weingut</a>

          <ul class="dropdown">

              <li><a href="Web.html">Vorstellung</a></li>

              <li><a href="Web.html">Weinreben</a></li>

            </ul>

          </li>

          <li><a href="Web.html" target="_blank">Das Team</a></li>

        </ul>

      </nav>

</div>

Hier mein CSS Code:

.navbar{

  background-color: darkgray;

  height: 55px;

  width: 1200px;

}

.navlist{

  float:left;

  margin-right: 0px;

}

.navlist li{

  display:inline-block;

}

.navlist li a{ 

  color:white;

  margin: 0 20px 0 20px;

  text-decoration: none;

}

.navlist li a:hover {

  color:darkred;

   text-decoration: underline;

}

.dropdown{

   position: absolute; 

 left: -9999em;

 top: -9999em;

 display: block;

  background-color: gainsboro;

 width: 130px;

}

.dropdown li{

   margin: 5px 0;

  float: left;

}

.dropdown li:hover{

   background-color: darkgray;

}

Ich hoffe sehr, dass mir jemand helfen kann.

Grüße:)

...zur Frage

Das ist nicht verwunderlich. Du hast es ja außerhalb des sichtbaren Bereichs verschoben und hast nirgendwo definiert, diese Position zu verändern.

Gib dem li-Container ein class-Attribut:

<li class="dropdown-container">
  <!-- ... -->
</li>

und ergänze diese beiden CSS-Selektoren:

.dropdown-container {
  position: relative;
}

.dropdown-container:hover .dropdown {
  left: 0;
  top: 0;
}

Feinjustierungen kannst du selbst durchführen.

...zur Antwort

Um das zu realisieren, könnte man sich ein Array an Bildern erstellen sowie eine Zählervariable. Mit jedem Klick wird der Zähler erhöht und das dazu entsprechende Element aus dem Array geholt. Dann ändert man das img-Element, welches die Bilder anzeigen soll. Wenn der Zähler am Ende angelangt ist, setzt man ihn zurück auf 0.

<!doctype html>
<title>Example</title>
<img alt="Description of first image" id="presentation" src="path/to/first/image.jpg">
<script>
  const images = [
    { "alt": "Description first image", "src": "path/to/first/image.jpg" },
    { "alt": "Description second image", "src": "path/to/second/image.jpg" },
    // ...
  ];
  let index = 1;
  document.getElementById("presentation").addEventListener("click", function() {
    if (index === images.length) {
      index = 0;
    }

    const image = images[index];
    this.setAttribute("alt", image.alt);
    this.setAttribute("src", image.src);
    ++index;
  });
</script>
...zur Antwort

Ja, natürlich. Immerhin liegt der Fokus dann ja auch nicht mehr auf dem input-Element.

Es wäre wohl besser, die versteckbaren Elemente über einen anderen Trigger wieder auszublenden.

...zur Antwort

Du brauchst eigentlich nur einen an den Link gebundenen Bezugspunkt, von dem aus sich das Element absolut positionieren soll.

Wenn du bspw. dieses Markup hast:

<nav class="menu">
  <a href="#">Menu</a>
  <ul class="submenu">
    <li>Item 1</li>
    <li>Item 2</li>
  </ul>
</nav>

Sollte das nav-Element explizit relativ positioniert werden. Der left-Wert für das Submenü kann auf 0 gesetzt werden, und top bemisst sich an der Höhe des Links.

.menu {
  margin-left: 50px; /* for demo */
  position: relative;
}

.menu a {
  background: yellow; /* for demo */
  display: inline-block;
  height: 50px;
}

.submenu {
  border: 1px solid black; /* for demo */
  left: 0;
  margin: 0;
  position: absolute;
  top: 50px;
}

Demo

...zur Antwort

Das wird normalerweise über die server.xml geregelt. Man trägt in ihr den virtuellen Host ein.

Dazu eine detailliertere Anleitung: https://quysnhat.wordpress.com/2016/05/18/how-to-map-a-domain-to-tomcats-web-application/

Wie das bei deinem Fall spezifisch geregelt ist, kann ich nicht sagen.

...zur Antwort

Es gibt keine vordefinierte Reihenfolge, an der du dich halten müsstest, außer du hast dir selbst bestimmte Prioritäten (bei der Umsetzung bestimmter Funktionen) gesetzt.

Wenn du deine Webseite interaktiver/dynamischer gestalten möchtest, kommst du an JavaScript (oder zumindest einer Abstraktion wie TypeScript während der Entwicklungsphase) kaum herum. Mehr Dynamik / Interaktion bedeutet bspw.:

  • Animationen einbauen (auch wenn sich da schon viel mit CSS realisieren lässt; z.B. für animierte Statistiken/Diagramme oder die überaus beliebten Schneeflocken zur Weihnachtszeit 🎅)
  • Module wie: Akkordions, Slider, Popups
  • parallele Server-Client-Kommunikation, ohne die Notwendigkeit, die Webseite neu laden zu müssen (nützlich für Chats, Live-Ticker, Formularauswertung, ...)
  • Generelle Verarbeitung von Nutzerevents (Aktionen, die bei Mausklick / Tastendruck ausgeführt werden)

PHP wiederum wird für die Entwicklung serverseitiger Webanwendungen verwendet (ist auf diesem Gebiet aber nicht die einzige Option, es gibt auch andere, wie: (erneut) JavaScript, C#, Java, ...), die deine Webseite letztendlich auch dynamischer gestaltet. Du kannst bspw. Templates erstellen, die später als Grundlage dienen, um konkrete HTML-Seiten anhand der URL zu generieren oder HTML-Formulare auswerten (Dateien auf den Server laden, E-Mails verschicken, ...).

Auf Serverseite findet vorrangig die Datenverwaltung / Datenzusammenstellung für die Webseite statt, oft also auch eine Kommunikation mit einer Datenbank.

Wenn es dir wiederum darum geht, welche Sprache von beiden leichter zum Erlernen ist, würde ich PHP benennen. JavaScript umfasst etwas mehr kompliziertere Themen (z.B. in Hinsicht auf Vererbung), wenn man sich etwas genauer mit der Sprache befasst.

...zur Antwort

Die meisten CMS unterstützen ein Rollensystem. Und so wie ich das verstehe, habt ihr diese drei Gruppen:

  • den Administrator (das seid ihr)
  • eingeschränkte Content Editoren (Anbieter), die also selbst Seitem im CMS bearbeiten / anlegen können
  • normale Nutzer (Abnehmer), die nur auf der Webseite selbst agieren

Schaut euch Joomla!, WordPress, Umbraco oder Drupal an.

...zur Antwort

Der Aufruf von

fenster.setVisible(true);

gehört an den Schluss der Methode. Eine Revalidation ist nicht notwendig.

...zur Antwort

Bezüglich der Seriösität reicht eine einfache Google Recherche:

  • https://www.derbrutkasten.com/programmierschule-smartninja-wien/
  • https://www.stadt-koeln.de/leben-in-koeln/veranstaltungen/daten/28060/index.html

Da sie den DHC als Partner aufgeführt haben, lohnt sich auch ein Gegencheck:

  • https://digitalhubcologne.de/events/smart-ninja-web-development-1/

Anhand der Angaben auf https://www.smartninja.de/about könntest du des Weiteren noch weitere Nachforschungen anstellen. Neben den verlinkten LinkedIn-Profilen findest du bei den Trainern auch oft einen Verweis auf ein GitHub-Profil. GitHub ist eine Plattform, auf der Entwickler ihre Projekte öffentlich stellen können.

Hinsichtlich des Mehrwerts kann ich dir konkret zu diesem Dienstleister nicht viel sagen.

Grundsätzlich ist es bei einem Kurs vorteilhaft, einen direkten Ansprechpartner für Probleme zu haben. Zudem wird auf der Webseite damit geworben, viel unter Praxiseinsatz zu lehren.

Nachteilhaft hingegen kann es sein, nicht selbst über das Lerntempo bestimmen zu können, denn es handelt sich ja um einen Gruppenkurs. Wie das gehandhabt wird (ob andere Teilnehmer bspw. das Weiterkommen verzögern könnten), kannst du ja einmal direkt anfragen.

Eine billigere (aber sicherlich langsamere) Option wäre das Eigenstudium. Du müsstest dir erst entsprechende Lernquellen suchen (online / über Bücher - beziehe Bibliotheken in deine Suche mit ein). Fragen könntest du hier oder in anderen Programmierforen stellen.

...zur Antwort

Du brauchst nur über das Array iterieren und prüfen, welcher Eintrag dem gewählten entspricht.

let ergebnis;

for (const eintrag of eintraege) {
  if (eintrag.Beschlag === selektierterBeschlag && eintrag.Sicherheit === selektierteSicherheit) {
    ergebnis = eintrag;
    break;
  }
}

Da du hier einen Mix aus Deutsch und Englisch verwendest, habe ich mich dazu entschieden, besser alle Bezeichner in Deutsch zu halten. Die Variable eintraege entspricht data.

Die Variablen selektierterBeschlag und selektierteSicherheit sind die Werte, die bereits aus den Comboboxen bekannt sein sollten.

Im obigen Snippet gehe ich davon aus, dass in jedem Fall nur ein Ergebnis existiert. Sollte dem nicht so sein, verwende stattdessen ein Array:

const ergebnisse = [];

for (const eintrag of eintraege) {
  if (eintrag.Beschlag === selektierterBeschlag && eintrag.Sicherheit === selektierteSicherheit) {
    ergebnisse.push(eintrag);
  }
}

Um dessen Einträge zu verarbeiten, wäre später wieder eine Schleife notwendig.

Auf die Einträge eines Objekts kannst du mittels Punktnotation zugreifen.

Beispiel:

console.log(ergebnis.LangsamAuf);
...zur Antwort

Laut den Beez-Entwicklern wäre die layout.css eher ungeeignet.

Die position.css und die layout.css sind für die allgemeine Positionierung und die Abstände verantwortlich, während je nach Style-Auswahl die personal.css / natur.css für die Gestaltung zuständig sind.

Quelle

Schau nach, ob es bereits einen passenden Selektor gibt (nutze den im Browser integrierten Webinspektor als Hilfe für die Analyse), in dem du deinen Style hinzufügen kannst oder erstelle einen eigenen Selektor.

Kenntnisse in HTML und CSS sind dafür zwingend erforderlich.

...zur Antwort