#include <stdio.h>

int main() {
    printf("Hi,Amar!\nAusgaben in der Konsole zu machen ist in C einfach.");
    return 0;
}

Das wäre der Code!

mit

printf()

kannst du etwas in der Konsole Ausgeben in die doppelten Klammern Können nicht nur Texte(Strings) sondern auch zahlen(integer) ausgeben es gibt noch weitere Datentypen die für dich jetzt aber erstmal unwichtig sind.

mit diesem

/n

was für „new Line“ steht wird in der nächsten Zeile weiter geschrieben!

Das

return 0

am Ende der main-Funktion signalisiert, dass das Programm erfolgreich beendet wurde

...zur Antwort
Wie kann ich bei Unity einem 2D generierten Mesh einen Collider geben?

Ich arbeite in Unity zurzeit an einen kleinen Projekt und bin auf folgendes Problem gestoßen:

Ich generiere dieses Mesh mit Perlin Noises, also quasi eine Berglandschaft. Sie sieht auch gut aus, nur jetzt habe ich das Problem mit den Collider. Und zwar mache ich das aktuell mit einem Polygon Collider, wo ich die Punkte per Code selber erstelle:

private void GenCollider()
{
  GrassMashObject.AddComponent<PolygonCollider2D>();
  GrassMashObject.GetComponent<PolygonCollider2D>().sharedMaterial = GrassPhysics;
  PolygonCollider2D polygonCollider = GrassMashObject.GetComponent<PolygonCollider2D>();

  if (polygonCollider != null)
  {
    Vector2[] points = new Vector2[(WorldSize + 1) * (yHight + 1)];

    for (int i = 0, y = 0; y <= yHight; y++)
    {
      for (int x = 0; x <= WorldSize; x++)
      {
        points[i] = new Vector2(x, y - (WorldSize / 4f));

        if (y == 1)
        {
          float perlin1 = (float)x / PerlinScale;
          float perlin2 = (float)y / PerlinScale;
          float perlin3 = Mathf.PerlinNoise(perlin1, perlin2);
          float perlin4 = Mathf.PerlinNoise(perlin1 * 2, perlin2 * 2);
          float perlin5 = Mathf.PerlinNoise(perlin1 / 2, perlin2 / 2);
          points[i].y = y + ((perlin3 + perlin4 + perlin5) * PerlinHeight);
        }

        i++;
      }
    }

    polygonCollider.points = points;
  }
}

Es funktioniert ganz gut, nur werden manche Punkte falsch zusammengesetzt und deshalb werden sehr unnötige "Linien" zwischen den Punkten generiert. Deshalb kommt es auch manchmal zu massiven Performenceeinbrüchen.

Ich bin für jede Hilfe dankbar! Danke im Voraus!

...zur Frage
private void GenCollider()
{
    EdgeCollider2D edgeCollider = GrassMashObject.AddComponent<EdgeCollider2D>();
    edgeCollider.sharedMaterial = GrassPhysics;

    List<Vector2> points = new List<Vector2>();

    for (int y = 0; y <= yHight; y++)
    {
        for (int x = 0; x < WorldSize; x++) // Reduziert um 1, um Überlappung der Linien zu vermeiden
        {
            Vector2 startPoint = new Vector2(x, y - (WorldSize / 4f));

            float perlin1 = (float)x / PerlinScale;
            float perlin2 = (float)y / PerlinScale;
            float perlin3 = Mathf.PerlinNoise(perlin1, perlin2);
            float perlin4 = Mathf.PerlinNoise(perlin1 * 2, perlin2 * 2);
            float perlin5 = Mathf.PerlinNoise(perlin1 / 2, perlin2 / 2);
            float height = y + ((perlin3 + perlin4 + perlin5) * PerlinHeight);

            Vector2 endPoint = new Vector2(x + 1, height); // Nächster Punkt

            points.Add(startPoint);
            points.Add(endPoint);
        }
    }

    edgeCollider.points = points.ToArray();
}

...zur Antwort
Reinforcment Learning (RL) in PyTorch - habe ich einen Denkfehler?

Guten Tag allerseits.

Ich möchte mittels PyTorch und RL ein neuronales Netzwerk (NN) trainieren und ich komme gerade nicht weiter. Das NN soll ein Strategiespiel (Meta-Tic-Tac-Toe) lernen. Das Spiel ist deterministisch und zwei Spieler wechseln sich ab und platzieren auf ein großes Feld X und O. Das NN erhält als Input das Feld (wo ist X, wo ist O, wo ist leer) und soll als Output den besten Zug für X und den besten Zug für O in der gegebenen Situation vorhersagen.

Mein Training soll so aussehen:
1) Das NN schätzt einen Zug, anhand der Spielfeldinformationen
2) Ist der Zug valide, so wird die Belohnung berechnet. Ist der Zug nicht valide, so wird die negative Belohnung (Bestrafung) berechnet.
3) Es wird eine "learn"-Methode des NNs aufgerufen, die folgende drei Parameter hat: [Spielfeldinformationen, geschätzter Zug und Belohnung]. Das NN soll mit diesen Parametern Backpropagation machen und sich verbessern.
4) War der Zug nicht valide, so soll wieder bei Schritt 1 angefangen werden (bis ein valider Zug herauskommt). War der Zug valide, wird dieser in das Spiel eingetragen und man beginnt wieder mit Schritt 1, diesmal aber mit dem aktualisierten Spielfeld (bis das Spiel endet).

So soll das NN sehr häufig gegen sich selbst spielen und seine X-Präzision und O-Präzision verbessern.

Mein Problem ist die learn-Methode.
Online finde ich jede Menge Algorithmen, die viele Spiele spielen und die Spielfeldinformationen, geschätzten Züge und Belohnungen speichern und erst später auswerten. Das will ich ungerne machen, da ich das unintuitiv finde, da man ja bei jedem Zug lernt.
Chat-GPT will mir ständig eine learn-Methode aufdrücken, die die Backpropagation lediglich mit den Parametern "geschätzter Zug" und "Belohnung" machen will, ohne den Spielfeldzustand zu berücksichtigen. Das ergibt für mich keinen Sinn, da man ja Züge anhand des Spielfelds macht.

Eine für mich angepasste learn-Methode finde ich nicht, obwohl ich denke gelesen zu haben, dass mein Lernprinzip auch funktionieren soll.

Ich nutze Adam als optimizer.

Deswegen frage ich mich, ob ich einen Denkfehler habe und ob mein Algorithmus nicht funktionieren kann. Das ist mein erstes RL-Projekt, ich kenne mich also nicht aus.

Falls also jemand einen Denkfehler findet, wäre es nett mich darauf hinzuweisen :)

Wenn jemand eine learn-Methode mit den 3 Parametern kennt, wäre es nett sie mir zu teilen.

...zur Frage

Der Ansatz ist genau richtig! Ist nicht mein Fachgebiet.. aber ich habe keine Fehler gefunden!

import torch

class NeuralNetwork(torch.nn.Module):
    def __init__(self):
        super(NeuralNetwork, self).__init__()
        # Definiere dein neuronales Netzwerk hier

    def forward(self, input):
        return output

def learn(network, input_state, estimated_move, reward):
    optimizer.zero_grad()
    output = network(input_state)
    loss = loss_function(output, estimated_move) + reward_function(reward)
    loss.backward()
    optimizer.step()

so könnte man es Lösen!

Guck ob die Struktur stimmt und dann wird das was!
Aber für den Anfang, Repekt!

...zur Antwort

Einfach mit

pygame.quit()

...zur Antwort

Legal ist das nicht! Wenn der Arzt sagt das du keinen Sport treiben darfst dann ist das so. Die Schule muss halt haften wenn etwas passiert!

...zur Antwort
Dass neue Sterne oder Planeten dazu kommen?

Ne wenn vergrößert sich ja die Distanz!

Die Entdeckung beruht auf der Beobachtung der Rotverschiebung von Edwin Hubble in den 1920er Jahren, die darauf hinweist, dass sich Galaxien voneinander entfernen.

Google das mal!

...zur Antwort

Gotisches Rathaus, futuristischer Wolkenkratzer, prächtiges Schloss, riesiges Baumhaus, Unterwasserobservatorium, orientalische Pagode, viktorianisches Herrenhaus, mittelalterliches Kloster, luxuriöses Spa-Resort.

...zur Antwort
def loese_lineare_gleichung(a, b, c):
    # Überprüfen, ob a nicht gleich Null ist (wir können nicht durch Null teilen)
    if a == 0:
        print("Ungültige Eingabe: 'a' darf nicht Null sein.")
        return
    
    # Berechnen von x
    x = (c - b) / a
    
    # Ausgabe der Lösung
    print(f"Die Lösung der Gleichung {a}x + {b} = {c} ist:")
    print("x =", x)

# Eingabe der Koeffizienten a, b und c durch den Benutzer
a = float(input("Geben Sie den Koeffizienten a ein: "))
b = float(input("Geben Sie den Koeffizienten b ein: "))
c = float(input("Geben Sie den Koeffizienten c ein: "))

# Aufruf der Funktion zum Lösen der linearen Gleichung
loese_lineare_gleichung(a, b, c)

So könnte man das Lösen…

Aber wenn du nur hier nachfragst wird das nichts! Du solltest es ja auch können.

Quelle: ChatGPT: ich kann zwar Python aber so ging schneller

...zur Antwort

Also zum Telefonieren, Gaming sind die „übertrieben“! Also ich glaube du telefonierst nicht auf 60 dB…

Für Musik sind die natürlich cool, wie du an der Seite sehen kannst hat dieser Lautsprecher auch Rädchen für z.B. Höhen und Tiefen(Bass).

Ich persönlich benutze meinen Bildschirm als Lautsprecher… das reicht aus meinen Augen 😅

Die Lautsprecher sollten natürlich für das reichen was du vor hast. Wenn du mehr Musik hören möchtest dann würde ich dir eventuell was anderes empfehlen!

Vg

...zur Antwort

Du brauchst n Hacken also das du ein Offizieller acc bist wie bei insta! WhatsApp vergibt den blauen Haken an öffentliche Personen, Prominente und Unternehmen. Du kannst dich bewerben, aber die Entscheidung liegt bei WhatsApp.

...zur Antwort

Wenn das überhaupt geht…

Der Besitzer hat eine Hausordnung er kann das bestimmen!

...zur Antwort