Java / Schiffe versenken: Wie kann ich dafür sorgen, dass die Schiffe nur horizontal und vertikal platziert werden können?

Ich habe diesen Schiffe-versenken-Code geschrieben. Jetzt weiß ich allerdings nicht, wie ich dafür sorgen kann, dass die Schiffe nur horizontal und vertikal plaziert werden können. Das soll durch if-Verzweigungen geregelt werden.

import javax.swing.JOptionPane;

public class Schiffeversenken {
  public static void main(String[] args) {
    // Spielfelderstellung
    int größefeld = Integer.parseInt(JOptionPane.showInputDialog("Wie groß soll das Spielfeld sein?"));
    String[][] spielerarray = new String[größefeld][größefeld];

    // Spielfeld leere Felder Befüllung
    for (int i = 0; i < spielerarray.length; i++) {
      for (int j = 0; j < spielerarray.length; j++) {
        spielerarray[i][j] = "o";
      }
    }

    // Anzahl Schiffe
    int anzahlschiffe = Integer.parseInt(JOptionPane.showInputDialog("Wie viele Schiffe hast du?"));

    for (int i = 0; i < anzahlschiffe; i++) {
      // Größe des Schiffes
      int größeschiff = Integer.parseInt(JOptionPane.showInputDialog("Wie groß ist dein " + (i + 1) + " Schiff?"));

      for (int j = 0; j < größeschiff; j++) {
        // Koordinateneingabe
        JOptionPane.showMessageDialog(null, "Wähle Koordinaten von 0-" + (spielerarray.length - 1));
        int koordinate1;
        int koordinate2;
        koordinate1 = Integer.parseInt(JOptionPane.showInputDialog("Was ist die 1 Koordinate des "+ (j + 1) + " Teil deines Schiffs?"));
        koordinate2 = Integer.parseInt(JOptionPane.showInputDialog("Was ist die 2 Koordinate des "+ (j + 1) + " Teil deines Schiffs?"));
        spielerarray[koordinate1][koordinate2] = "x";
      }
    }

    // Ausgabe Spielfeld
    for (int i = 0; i < spielerarray.length; i++) {
      for (int x = 0; x < spielerarray.length; x++) {
        System.out.print(spielerarray[x][i] + " ");
      }

      System.out.println();
    }
  }
}
Java, Array, Programmiersprache, Algorithmus
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
Wechselgeld Rechner in C?

Ich habe den folgenden Code:

#include <stdio.h>

int main(void)
{
    /* declarate variables */
    float price, paid, change;
    int cents;
    int rest;
    int cent1;
    int cent2;
    int cent5;
    int cent10;
    int cent20;
    int cent50;
    int eur1;
    int eur2;

    /* print out price and paid amount */
    printf("Rechnungsbetrag: ");
    scanf("%f", &price);

    printf("Erhaltener Betrag: ");
    scanf("%f", &paid);

    /* calculate the change as float */
    change = paid - price;

    printf("======================\n");
    printf("Rückgeld: %.2f EUR\n", change);
    printf("======================\n");

    /* calculate the change in cents */
    cents = change * 100;


    eur2   = cents / 200;
    rest = cents % 200;

    eur1   = rest / 100;
    rest = cents % 100;

    cent50 = rest / 50;
    rest = cents % 50;

    cent20 = rest / 20;
    rest = cents % 20;

    cent10 = rest / 10;
    rest = cents % 10;

    cent5  = rest / 5;
    rest = cents % 5;

    cent2  = rest / 2;
    rest = cents % 2;

    cent1  = rest / 1;


    printf("1 Cent:  %d\n", cent1);
    printf("2 Cent:  %d\n", cent2);
    printf("5 Cent:  %d\n", cent5);
    printf("10 Cent: %d\n", cent10);
    printf("20 Cent: %d\n", cent20);
    printf("50 Cent: %d\n", cent50);
    printf("1 EUR:   %d\n", eur1);
    printf("2 EUR:   %d\n", eur2);


    return 0;
}

Es werden zwei Werte Eingeben, einmal den Rechnungspreis und den erhaltenen Betrag, dann wird das Wechselgeld ausgerechnet. Danach soll die Anzahl der jeweiligen Münzen errechnet werden, die es benötigt um den Betrag des Wechselgeldes zu erreichen.

Wenn ich, zum Beispiel, als Rechnungsbetrag 1.50 habe, und als Erhaltenen Betrag 2.00, dann gibt es mir 1 50 Cent münze und eine 10 cent münze aus.

Ich habe verschiedene Beträge ausprobiert und es kommt immer diese extra 10 Cent Münze raus.

Wie kann ich das beheben?

Computer, Linux, Code, Programmiersprache, Algorithmus, C (Programmiersprache)
Binäre suche mit Java, system falls Zahl nicht vorhanden?

Moin,

Folgendes:

Ich habe ein array mit 25.000 Feldern, in diesem sind aufsteigend quadratzahlen gespeichert. Das Programm fragt aktuell ab nach welcher Zahl man sucht und sucht dann systematisch das Array ab mittels annäherung. Ich hab nur absolut keine idee wie ich es einbauen kann, dass er merkt wenn die Zahl nicht vorhanden ist. Meine idee war, das er die Variable des letzten versuchs, mit der des aktuellen versuchs dividiert und wenn das Ergebnis = 0 ist, soll er ausgeben das die zahl nicht vorhanden ist. Leider passiert es dadurch aber manchmal das er anzeigt das die Zahl nicht vorhanden ist obwohl sie das ist, immer dann wenn er ein Feld neben der gesuchten Zahl sucht. Hier mal der relevante Teil des Codes:

int resultIndex;
int bereich = 12500;
int alg = 6250;
int bereich2 = 0;

while(true)
{


    if(quadratZahlen[bereich] < zahl)
    {
        bereich = bereich + alg;
        alg = alg / 2;

    }
    else if(quadratZahlen[bereich] == zahl)
    {
        resultIndex = bereich;
        break;
    }
    else if(quadratZahlen[bereich] > zahl)
    {
        bereich = bereich / 2;

        alg = bereich / 2;

    }


    int test = bereich - bereich2;

    if (test == 0)
    {
        resultIndex = -1;
        break;
    }

    bereich2 = bereich;

}

bereich2 ist die variable der letzten suche

bereich die der aktuellen suche

alg dient nur zur neu berechnung von bereich wenn die Zahl nicht gefunden wurde

resultIndex zeigt den Platz der gefundenen Zahl

Computer, Software, Studium, Mathematik, Technik, programmieren, Java, Array, Entwicklung, Informatik, Programmiersprache, Softwareentwicklung, Algorithmus, binär, Programmierung Java, IntelliJ IDEA
Online Marketing mit Instagram, alte Reels löschen und nochmal posten, oder direkt neuen Account erstellen?

Es gibt Instagram-Account, die haben mit nur sehr wenigen Reel-Posts einen Treffer gelandet und plötzlich sehr viele Aufrufe auf ein Reel erhalten. Ist das auch noch möglich, wenn ich schon mehrmals unterschiedliche Sachen gepostet habe, die (laut Algorithmus) schlecht waren und niemand geliked hat und die ich dann wieder gelöscht habe, oder hat der Algorithmus mein Profil über die letzten 2 Jahre so blacklisted, dass ich besser einen neuen Account erstellen sollte?

Und welche Erfahrung habt ihr gemacht, das gleiche Reel nochmal zu posten, wenn man es nach einer gewissen Zeit gelöscht hat? Ich habe Leute gesehen, die hatten über 1 Millionen Aufrufe. Ich habe meine Inhalte daran angepasst (nichts gestohlen), aber bei mir hat es gar nichts bewirkt. Kann das erneute Posten meine Glückswahrscheinlichkeit erhöhen? Ich habe teilweise einfach viel zu viel Zeit in die Erstellung bestimmter Videos gesteckt, dafür dass sie keine einzige Reaktion erhalten haben.

Also, solche Videos löschen und nochmal posten, oder neuen Account erstellen, wenn ihr der Meinung seid, dass der Alte "versucht" ist?

Sollte ich für Instagram Reels einen neuen Account erstellen, wenn ich die letzten beiden Jahre keinen Erfolg hatte? Stimmt meine Annahme, das der Algorithmus meinen Account nach einer gewissen Zeit als "schlecht" gebrandmarkt hattet?

Marketing, Account, App, Story, Business, Social Media, Online-Marketing, Erfolg, Social Media Marketing, Algorithmus, Follower, Likes, Instagram, Instagram Story

Meistgelesene Fragen zum Thema Algorithmus