Wie kann ich für ein dynamisches Vier gewinnt eine Gewinnabfrage erstellen?

Hallo,

ich frage mich, wie ich für ein dynamisches Vier gewinnt eine Gewinnabfrage erstellen kann.

Mein aktueller Code (ohne Klassen für Grafik) sieht so aus:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media.Animation;
using System.Windows.Threading;

namespace N_Gewinnt_Mölleken
{
  public partial class MainWindow : Window
  {
    Linie linie;
    Chip chip;
    private bool isHorizontalMoveEnabled = true;
    int anzahlspalten = 40;
    int anzahlzeilen = 9;
    int BallColor = 1;
    int GewinnMenge = 4;
    DispatcherTimer timer;
    Double ticks_old;
    int Spieler = 1;
    Double BRadius;
    Double BallX;
    Double AktuellX = 0;
    int NichtAus;
    private bool isLeftKeyPressed = false;
    private bool isRightKeyPressed = false;
    int count = 0;
    int[,] BallPosition;

    public MainWindow()
    {
      InitializeComponent();
      BallPosition = new int[anzahlspalten, anzahlzeilen];
    }

    private void wnd_Loaded(object sender, RoutedEventArgs e)
    {
      this.WindowState = WindowState.Maximized;
      InitializeGame();
    }

    private void InitializeGame()
    {
      timer = new DispatcherTimer();
      timer.Tick += timer_Tick;
      timer.Interval = new TimeSpan(0, 0, 0, 0, 15);
      timer.Start();
      double screenwidth = SystemParameters.PrimaryScreenWidth;
      double screenheight = SystemParameters.PrimaryScreenHeight;
      double x1 = screenwidth - (screenwidth * 0.3), y1 = screenheight - (screenheight * 0.10), x2 = x1, y2 = screenheight - (screenheight * 0.9);

      for (int spalten = 0; spalten <= anzahlspalten; spalten++)
      {
        linie = new Linie(x1, y1, x2, y2);
        linie.Draw(cvs);
        x1 -= ((screenwidth - (screenwidth * 0.3)) / anzahlspalten);
        x2 = x1;
      }

      linie = new Linie(screenwidth * 0.7, screenheight * 0.9, x1 + ((screenwidth - (screenwidth * 0.3)) / anzahlspalten), screenheight * 0.9);
      linie.Draw(cvs);
      BRadius = ((screenwidth - 4 - (screenwidth * 0.3)) / anzahlspalten) / 2;
      BallX = ((screenwidth - (screenwidth * 0.3)) / anzahlspalten) / 2;
      chip = new Chip(BallX, 130, BRadius, 0, 0, Spieler);
      chip.Draw(cvs);
    }

    private void timer_Tick(object sender, EventArgs e)
    {
      Double ticks = Environment.TickCount;

      if (ticks_old == 0)
      {
        ticks_old = ticks;
        return;
      }

      double elapsed = (ticks - ticks_old);
      ticks_old = ticks;
    }

    private void wnd_KeyDown(object sender, KeyEventArgs e)
    {
      if (e.Key == Key.Left)
      {
        MoveBallLeft();
      }
      else if (e.Key == Key.Right)
      {
        MoveBallRight();
      }

      if (e.Key == Key.Down)
      {
        MoveBallDown();
      }
    }

    private void MoveBallRight()
    {
      if (isHorizontalMoveEnabled && count < anzahlspalten - 1)
      {
        AktuellX = AktuellX + BallX;
        Canvas.SetLeft(chip.Elli, AktuellX * 2);
        count += 1;
      }
    }

    private void MoveBallLeft()
    {
      if (isHorizontalMoveEnabled && count > 0)
      {
        AktuellX = AktuellX - BallX;
        Canvas.SetLeft(chip.Elli, AktuellX * 2);
        count -= 1;
      }
    }

    // ...

    private void MoveBallDown()
    {
      NichtAus = 0;

      for (int i = 0; i < anzahlzeilen; i++)
      {
        if (BallPosition[count, i] == 0)
        {
          BallPosition[count, i] = Spieler;
          // Logik für die Darstellung des Chips
          MessageBox.Show("ChipPlatziert");
          NichtAus = 1;
          MessageBox.Show($"Chip an Position ({count}, {i}) platziert. Wert im Array: {BallPosition[count, i]}");
          
          break;
        }
        MessageBox.Show("EineZeileBlockiert");
      }

      if (NichtAus == 0)
      {
        MessageBox.Show("Sie können in dieser Zeile nicht platzieren");
      }

      if (Spieler == 1)
      {
        Spieler = -1;
      }
      else if (Spieler == -1)
      {
        Spieler = 1;
      }
    }    
  }
}
C Sharp, Code, Programmiersprache, Algorithmus
Ist es sinnvoll immer wieder neue Szenen in Unity zu erstellen?

Hallo, ich habe in Unity ein Projekt (3D) vor einigen Monaten gestartet. In diesem Projekt bzw. Spiel geht es darum, Planeten bzw. die Atmosphäre der Planeten, einschließlich Exoplaneten zu erkunden, die so realistisch wie möglich versucht werden dar zu stellen. Ich arbeite an dem Projekt alleine. Nun möchte ich mit dem Arbeiten an den Planeten bzw. Terrains beginnen und habe vor für jeden einzelnen Planeten (die Planeten bestehen nur aus Terrains) eine neue Szene zu machen. Also beispielsweise, ich habe 200 neue Szenen gemacht und in jeder Szene sind die Unterschiedlichen Terrains, die die Atmosphäre der Planeten darstellen soll, die man erkundet. Also 200 Szenen für 200 Planeten. Aber ist das die schlauste oder beste Herangehensweise? Ich meine, für jedes Terrain eine neue Szene zu erstellen sodass es irgendwann nicht mehr übersichtlich ist, ist doch nicht die beste Methode, oder? Ich habe jedoch keine Ahnung, wie ich es viel einfacher machen könnte und bei einem Update nicht jede Szene überschreiben müsste, wie Dynamische Generierung oder so. Ich bin noch relativ neu in Unity. Fazit: Ich möchte nicht unendlich viele Szenen erstellen müssen, sondern eine übersichtlichere Methode finden, um Terrains in Unity zu machen und nicht pro Terrain eine komplett neue Szene machen zu müssen. Wie Dynamische Generierung oder Scene Management, habe aber keine Ahnung wie das funktioniert. Kennt jemand eine übersichtlichere, leichtere oder Schlauere Methode? Wenn ja, würde es mir sehr weiter helfen. Danke für alle Antworten.

Spiele, Computer, programmieren, C Sharp, Spieleentwicklung, Unity 3D, Unity
Wie kann ich die Fehler von PHP einzeln in der Unity-Konsole ausgeben?

Hallo,

wie schaffe ich es, die Fehler zu splitten und wenn es z.B. zwei Fehler sind, beide einzeln in Unity in der Konsole auszugeben?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using TMPro;
using System;
using Newtonsoft.Json;

public class RegisterUser : MonoBehaviour
{
  public TMP_InputField EmailInput;
  public TMP_InputField UsernameInput;
  public TMP_InputField PasswordInput;

  private void Update()
  {
  }

  public void RegisterButton()
  {
    StartCoroutine(Register(EmailInput.text, UsernameInput.text, PasswordInput.text));
  }

  IEnumerator Register(string email, string username, string password)
  {
    string url = "geheim";

    WWWForm form = new WWWForm();
    form.AddField("email", email);
    form.AddField("username", username);
    form.AddField("password", password);

    using (UnityWebRequest www = UnityWebRequest.Post(url, form))
    {
      yield return www.SendWebRequest();

      if www.result != UnityWebRequest.Result.Success)
      {
        Debug.Log("Error: " + www.error);
      }
      else
      {
        // hier Fehler checken
      }
    }
  }
}

Meine PHP if-Abfrage, wo mögliche Fehler ermittelt werden:

if (blablazeug) {
  if ($resultemail->num_rows > 0) {
    echo  "1"; // errorcode for already used email
  }

  if ($resultuser->num_rows > 0) {
    echo  "2"; // error code for already used username
  }

  if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo  "3"; // error code for wrong email
  }

  if (strlen($username) < 4 || strlen($username) > 10 || !preg_match('/^[a-zA-Z0-9]+$/', $username)) {
    echo  "4"; // error code for wrong username conditions
  }

  if (strlen($password) < 6 || strlen($password) > 20 || !preg_match('/[0-9]+/', $password) || !preg_match('/[A-Z]+/', $password) || !preg_match('/[a-z]+/', $password) || !preg_match('/[.,!@#$%^&*()\-_=+{};:?]+/', $password)) {
    echo "5"; // error code for wrong password conditions
  }

  die();
}
C Sharp, Error, PHP, Programmiersprache, Visual Studio, Unity
C# Programm das gerecht Verteilen kann?

Hallo Leute, ich hoffe euch geht's gut.

Ich bin noch ziemlich neu hier und auch in der Welt von C# nicht gerade der Profi, aber ich liebe es, in meiner Freizeit zu programmieren.

Vor ein paar Wochen habe ich mit C# angefangen und arbeite jetzt an einem Projekt für eine App. Ich tüftle an einem Programm, das verschiedene Dinge (zum Beispiel 3 Tomaten, 4 Bananen und 6 Äpfel) gerecht auf eine festgelegte Anzahl von Tüten verteilt (sagen wir 3 Tüten).

Die Gesamtanzahl jeder Obstsorte und die Gesamtanzahl der Dinge insgesamt dürfen sich höchstens um eins unterscheiden, damit es für jede Tüte so fair wie möglich bleibt.

Mein Ansatz ist, eine Liste von Integer-Arrays zu erstellen, die ich

bags
nennen würde.

Jeder Teil dieser Liste würde dann ein Integer-Array beinhalten, in dem die Gegenstände für jede Tüte gespeichert werden.

Versteht ihr, worauf ich hinauswill? Ich könnte echt eure Hilfe gebrauchen und wäre dankbar für eure Gedanken dazu, wie ich am besten vorgehen sollte. Sollte ich die Anzahl der Dinge teilen oder wie würdet ihr das angehen? Bin gespannt auf eure Vorschläge! Danke schon mal im Voraus.

Mein C# Code Ansatz:

// Online C# Editor for free
// Write, Edit and Run your C# code using C# Online Compiler

using System;

public class HelloWorld
{
  public static void Main() 
  {
    double[] objects = new double[]{4,4,2};
    Pack(objects, 3);
  }
   
  public static void Pack(double[] things, int numBags)
  {
    double[] results = new double[]{0,0,0};
    double[] sumUp = new double[]{0,0,0};
     
    for(int i = 0; i < things.Length; i++) 
    {
      double current = things[i] / numBags;
      double nextnumber = (double)Math.Floor(current);
       
      results[i] = current;
       
      double part = current - nextnumber;
      sumUp[i] = part;
       
      Console.WriteLine(results[i] + "/" + Math.Floor(current) + "/" + part);
    }
     
    for(int b = 0; b < sumUp.Length; b++) 
    {
      sumUp[b] = sumUp[b] * numBags;
      Console.WriteLine(sumUp[b]);
    }
  }
}
Programm, programmieren, C Sharp, Programmiersprache, Algorithmus
Warum schlägt der Docker Build meines C#-Projekts fehl?

Ich versuche gerade mein C#-Projekt mit Docker zu bauen.

Ich baue aus dem Repo Root Context. Das Dockerfile liegt im Unterordner vom Gateway.WebApi.

Der Build schlägt leider mit einem Fehler fehl:

 error MSB3030: Could not copy the file "/Jwt.Service.Shared/Configurations/appsettings.json" because it was not found

Das ist mein Dockerfile:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Gateway.WebApi/Gateway.WebApi.csproj", "./"]
COPY ["Gateway.Application/Gateway.Application.csproj", "../Gateway.Application/"]
COPY ["Entitys.Shared/Entitys.Shared.csproj", "../Entitys.Shared/"]
COPY ["Gateway.Domain/Gateway.Domain.csproj", "../Gateway.Domain/"]
COPY ["Gateway.Infrastructure/Gateway.Infrastructure.csproj", "../Gateway.Infrastructure/"]
COPY ["Jwt.Service.Shared/Jwt.Service.Shared.csproj", "../Jwt.Service.Shared/"]
RUN dotnet restore "Gateway.WebApi.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "Gateway.WebApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Gateway.WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Gateway.WebApi.dll"]
[1:14 PM]

Die Datei existiert und die Berechtigungen sind richtig. Ich bin auf Linux btw..

ASP.NET, C Sharp, dotNet, Docker
Wieso geht mein C# Code nicht mit Blazor?

Hallo, ich programmiere momentan eine WetterApp mit Blazor zur Übung und habe einen C# Code geschrieben, allerdings funktioniert da nichts. Kann mir wer helfen?

Hier mein C# Code

@if (weatherData != null)
{
    <h4>@weatherData.Name</h4>
    <p>Temperatur: @Math.Round(weatherData.Main.Temperature)°C</p>
    <p>Luftfreuchtigkeit: @weatherData.Main.Humidity%</p>
    <p>Windgeschwindigkeit: @weatherData.Wind.Speed km/h</p>
    <p>Wetter: @weatherData.Weather[0].Main</p>
}

@code{
    private string city;
    private WeatherData weatherData;


    private async Task CheckWeather()
    {
        string apiKey = "6958878b02398eb62a27936168c23c6";
        string apiUrl = "https://api.openweathermap.org/data/2.5/weather?units=metric&q=";

        using (HttpClient client = new HttpClient())
        {
            try
            {
                HttpResponseMessage response = await client.GetAsync($"{apiUrl}{city}&appid={apiKey}");


                response.EnsureSuccessStatusCode();

                string responseBody = await response.Content.ReadAsStringAsync();

                weatherData = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherData>(responseBody);
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine($"Fehler: {e.Message}");
            }
        }
    }
    public class WeatherData
    {
        public string Name{ get; set; }
        public MainData Main { get; set; }
        public WindData Wind { get; set; }
        public WeatherCondition [] Weather { get; set; }
    }

    public class MainData
    {
        public double Temperature { get; set; }
        public int Humidity { get; set; }
    }

    public class WindData
    {
        public double Speed { get; set; }
    }
    public class WeatherCondition
    {
        public string Main { get; set; }
    }
}

Hier mein HTML Code:

<body class="backgroundimage">
    <div class="card">
        <div class="search">
            <button @onclick="CheckWeather">
                <img src="images/SuchIcon.png"/>
                <input type="text" placeholder="Search" spellcheck="false" id="cityInput" @bind="city">
        </div>
            </div>
            <div class="weather">
                <div class="center margin-top">
                    <img src="images/image1.png" width="200" height="200" style="opacity: 1" class="weather-icon"/>
                </div>
                <div>
                    <h1 class="temp">22°c</h1>
                </div>
                <div class="center">
                    <h2 class="city center margin-top">New York</h2>
                </div>
                <hr class="hr1 line1"/>
                <div id="imagesMain">
                    <img src="/images/image1.png" width="75" height="75" class="imageline "/>
                    <img src="/images/image1.png" width="75" height="75" class="imageline "/>
                    <img src="/images/image1.png" width="75" height="75" class="imageline " style="margin-left: 5px; margin-right: -5px;"/>
                    <img src="/images/image1.png" width="75" height="75" class="imageline " style="margin-left: 12px; margin-right: -10px;"/>
                    <img src="/images/image1.png" width="75" height="75" class="imageline " style="margin-left: 2px; margin-right: -14px;"/>
                </div>
                <div>
                    <p style="color:black;" class="line0 title margin-left ">Monday</p>
                    <p style="color:black;" class="line0 title margin-left ">Tuesday</p>
                    <p style="color:black;" class="line0 title margin-left ">Wednesday</p>
                    <p style="color:black;" class="line0 title margin-left ">Thursday</p>
                    <p style="color: black;" class="line0 title margin-left ">Friday</p>
                </div>
                <hr class="hr1 line"/>
                <div class="details">
                    <div class="col">
                        <img src="images/humidity.png"/>
                        <div>
                            <p class="speed">Humidity</p>
                            <p class="humidity">50%</p>
                        </div>
                    </div>
                    <div class="col">
                        <img src="images/wind.png"/>
                        <div>
                            <p class="speed">Wind Speed</p>
                            <p class="wind">15 km/h </p>
                        </div>
                    </div>
                </div>
            </div>
        </body>
    </html>

   Ich verstehe nicht weshalb mein ClickEvent nicht funktioniert und die Wetterdaten nicht angezeigt werden.

HTML, programmieren, C Sharp, Programmiersprache
Welche Programmiersprache nach javascript?

ich hab eine lange zeit nichts anderes als javascript gemacht darunter ist auch Typescript und react und vieles mehr und klar man kann noch mehr lernen. Php kann ich ausreichend fürs backend.

aber immer auf den Browser beschränkt zu sein und websites macht auf Dauer keinen spass. Ich will auch in der lage sein desktop programme zu schreiben.
electron js kann das aber ist auch nicht das beste was man nutzen kann und sobalds aufwendiger wird hat man Probleme und riesige Dateien. Man lernt auch nichts neues dadurch das ist nichts für mich.

c# c++ c java oder rust hatte ich im kopf.

(python syntax gefällt mir auch nicht , mir geht es auch ums lernen. Nicht nur mit pip install irgendwas nutzen von jemand anderes. Am ende hast du keine ahnung von der programmierung)

aber wie weiss ich welches der oben genannten Sprachen eher was für mich ist.

Java ist Typescript sehr ähnlich, läuft überall und ich könnte da schnell zurechtkommen aber dafür ist es deutlich langsamer als C++ und nicht so mächtig.

Mit c++ lernst du auch viel und wird oft in Unis oder Schulen gelehrt, hätte damit einen vorteil wenn ich es schon gut kann.
Rust hat einen kleinen hype und viele meinen es wird in zukunft wichtiger werden = mehr jobs.

c# ist soweit ich weiss
nur für windows Anwendungen gut, mit den anderen sprachen könnte man auch in zukunft was für linux machen wenn man lust drauf hat.

ich seh da keinen grossartigen vorteil zu java oder c++ in der schnelligkeit.

Computer, Microsoft, App, IT, Webseite, Java, JavaScript, compiler, Cplusplus, C Sharp, CPP, Informatik, Oracle, Programmiersprache, Python, sdk, C (Programmiersprache), React, Angular
Hilfe für c# code mit HTML &CSS in Blazor?

Hallo, ich möchte eine WetterApp programmieren mit Blazor und sitze jetzt schon 4 Tage an dem Problem mit C#, da ich keine Ahnung habe wo ich anfangen soll und generell neu bin und nicht ganz vertraut bin. Ich habe die WetterApp mit JavaScript programmiert, allerdings soll ich C# verwenden und nicht JavaScript deshalb brauch ich eure Hilfe! Kann mir wer dabei helfen einen C# Code zu schreiben, welcher dasselbe macht wie mein javaScript-Code:

1. Ich möchte das mein "SeachrIcon-Button" aus einem HTML-Code als Suchbutton fungieren kann, womit ich die einzelnen Städte suchen kann, damit mir dabei dann die Wetterdaten angezeigt werden.

2.

Ich möchte, dass dann die Bilder der zu den jeweiligen Wetter vorkommnissen angepasst werden, also die Wetter Daten sollen in der Console angezeigt werden aber nicht auf dem Display

Hier mein Html Code:

<body class="backgroundimage">


  <div class="card">
      <div class="search">
          <button><img src="/images/SuchIcon.png"></button>


              <input type="text" placeholder="Search" spellcheck="false" />
        
      
      </div>
  </div>
    
     
  <div class="weather"> 
      <div class="center margin-top">
      <img src="images/image1.png" width="200" height="200" style="opacity: 1" class="weather-icon" />
      </div>


     <div>
          <h1 class="temp">22°c</h1>
     </div>
      
      
      <div class="center">
          <h2 class="city center margin-top">New York</h2>
      </div>


          <hr class="hr1 line1" />

          <div id="imagesMain">
              <img src="/images/image1.png" width="75" height="75" class="imageline " />
              <img src="/images/image1.png" width="75" height="75" class="imageline " />
              <img src="/images/image1.png" width="75" height="75" class="imageline " style="margin-left: 5px; margin-right: -5px;" />
              <img src="/images/image1.png" width="75" height="75" class="imageline " style="margin-left: 12px; margin-right: -10px;" />
              <img src="/images/image1.png" width="75" height="75" class="imageline " style="margin-left: 2px; margin-right: -14px;"/>


          </div>

          <div>
           
              <p style="color:black;" class="line0 title margin-left ">Monday</p>
              <p style="color:black;" class="line0 title margin-left ">Tuesday</p>
              <p style="color:black;" class="line0 title margin-left ">Wednesday</p>
              <p style="color:black;" class="line0 title margin-left ">Thursday</p>
              <p style="color: black;" class="line0 title margin-left ">Friday</p>
             
           
          </div>

          <hr class="hr1 line" />

      <div class ="details">
          <div class="col">
              <img src="images/humidity.png"/>
              <div>
                  <p class="speed">Humidity</p>
                  <p class="humidity">50%</p>
                  
              </div>
          </div>
          <div class="col">
              <img src="images/wind.png" />
              <div>
                  <p class="speed">Wind Speed</p>
                  <p class="wind">15 km/h </p>
                 
              </div>

          </div>

      </div>
  </div>
  
   </body>

Im unteren Kommentar werd ich die restlichen Codes posten


HTML, CSS, JavaScript, C Sharp
Excel in VS einbinden?

Hallo,

aktuell erstelle ich ein Programm mit C#, welches Daten, die ich eingebe, in Excel einfügt. Um Excel zu verwenden, habe ich das EPPlus NuGet-Paket installiert. Irgendwie gab es dort Probleme mit dem Zugriff (Datenschutz). Daher wollte ich die Excel-Datei direkt in Visual Studio einfügen und sie so direkt bearbeiten. Dafür bin ich auf die Projektmappe gegangen, habe einen Rechtsklick gemacht, "Hinzufügen" ausgewählt, dann "Vorhandenes Element" und schließlich die zuvor erstellte (gespeicherte .xlsx) Datei aus Excel ausgewählt.

Danach kam immer die Meldung: "Entweder wird das Dokumentformat nicht unterstützt, oder das Dokument enthält binäre Zeichen, die mit einer anderen Anwendung geöffnet werden müssen."

Ich kann die Meldung bestätigen, und die Excel-Datei wird im Projektfenster als Element angezeigt. Allerdings funktioniert mein Code nicht, weil die Excel-Datei nicht richtig eingebunden wurde.

Zur Excel-Datei:

Ich habe in Excel einfach eine leere Arbeitsmappe erstellt und diese in einem leeren Ordner als "Ernährungsdaten.xlsx" abgespeichert, natürlich ohne Schreibschutz.

Wie man am Namen erkennen kann, geht es um Ernährungsdaten, die verarbeitet werden. Später kommen auch noch Datenbanken usw. hinzu und Vorgänge werden automatisiert. Allerdings muss ich jetzt erst einmal die Excel-Datei richtig einbinden.

Ich hoffe, Ihr könnt mir helfen.

Danke im Voraus.

Microsoft Excel, C Sharp, Visual Studio

Meistgelesene Fragen zum Thema C Sharp