Java Input/Output Tests Junit?

Hallo, 

Ich habe folgendes Problem: Ich habe eine Klasse, die die Benutzerinteraktion (Input/Output) handhabt und ich muss Junit4 Tests dafür schreiben. 

Die Klasse, die ich testen möchte, sieht in etwa so aus:

package program;
// imports
public class UserInteraction {
    private Program program;


    private UserInteraction(){
        program = new Program();
    }


    // Menu display
    private void start() {
        while (!program.getProgramStarted) {
            String input = readInput();
            switch (input) {
            case "1":
                addUser();
                break;
            case "2":
                deleteUser();
                break;
            case "3":
                // ...
            default:
                System.err.println("Unknown option");
                break;
            }
        }
    }


    private void addUser() {
        // Output
        String username = readInput();
        program.addUser(username);
        System.out.println("User " + username + "added");
    }


    private void deleteUser() {
        // Output
        String username = readInput();
        program.deleteUser(username);
        System.out.println("User " + username + "deleted");
    }


    @SuppressWarnings("resource")
    private String readInput() {
        return (new Scanner(System.in)).nextLine();
    }


    public void main(String[] args) {
        UserInteraction ui = new UserInteraction();
        ui.start();
    }


}

Die Program Klasse so:

package program;
// imports
public class Program {
    // fields
    private User currentUser;
    private List<User> user = new ArrayList<User>();
    // constructor


    public void addUser(String name) throws Exception {
        if (user.size() >= 6) {
            throw new Exception();
        }
        int newID = user.size() + 1;
        user.add(new User(name, newID));
    }


    public String[] getALlUser() {
        int counter = 0;
        String[] userArray = new String[user.size()];


        for (User s : user) {
            userArray[counter++] = s.toString();
        }
        return userArray;
    }
}

Nun möchte ich zum Beispiel testen, ob die folgende Eingabe korrekt verarbeitet wird:

1
John
=> Benutzer John hinzugefügt

Zu diesem Zweck habe ich einen Junit-Test geschrieben, der wie folgt aussieht:

package tests;


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.PrintStream;


import org.junit.After;
import org.junit.Test;


import program.*;


public class UserInteractionTest {


    private final InputStream originalIn = System.in;
    private final PrintStream originalOut = System.out;
    private Program program;


    @After
    public void restoreStreams() {
        System.setIn(originalIn);
        System.setOut(originalOut);
    }


    @Test
    public void testCreateUser() throws Exception {
        String input = "1\nJohn\n";
        ByteArrayInputStream in = new ByteArrayInputStream(input.getBytes());
        System.setIn(in);
        ByteArrayOutputStream outContent = new ByteArrayOutputStream();
        System.setOut(new PrintStream(outContent)); // Leitet System.out um


        program = new Program();
        try {
            program.main(null);
        } finally {
            System.setIn(originalIn);
        }
        String expectedOutput = "User John added";
        assertTrue("Output not found", outContent.toString().contains(expectedOutput));
    }


}

Die Eingabe ("1\n") wird gemacht, aber danach wird keine Eingabe eingefügt, so dass der Test hängen bleibt.

Weiß jemand, wie man dieses Problem lösen kann? Oder gibt es vielleicht eine bessere Möglichkeit, die Eingabe/Ausgabe meines Java-Programms zu testen/zu überprüfen?

Vielen Dank im Voraus!

Java, Code, Eclipse, Programmiersprache
Wieso funktioniert meine "Browser Extension" nicht auf dieser Seite?

Mir ist unter Linux aufgefallen das ich gar nicht den Auto-Scroll von Windows habe in zb. Google Chrome wenn man auf das Mauspad klickt, nutze ich gerne und dachte mir als Challenge ohne Chat Gpt dass ich mal schnell probieren könnte ein eigenes zu programmieren.

Ich weiß da gibt es fertige Software und Extension's, die laufen ohne Probleme und Ressourcen sparender wahrscheinlich.

Hab das erst in einer Html Datei (Extension in "") gemacht zum testen dann in anderen Websites den JS Code in eine Konsole eingefügt und es funktioniert eigentlich ganz gut.

Das Problem ist das ich nicht verstehe wieso er nicht hier funktioniert https://www.tennon.io/ , mir fällt beim inspizieren nichts auf und es scheint mit Next JS umgesetzt zu sein.

<!DOCTYPE html>
<html lang="de">


<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Auto Scroll Extension</title>
    <style>
        html {
            min-width: 100%;
        }
    </style>
</head>


<body>
    <script>
        /* Render Dummy Content, cursor change wont work with min-height */
        for (let i = 0; i < 1000; i++) {
            document.body.innerHTML += "Lorem Ipsum ";
        }
        const scrollSpeed_Up = -1;
        const scrollSpeed_Down = 1;
        const middlehalf = window.innerHeight / 2;
        let AutoScroll_Interval; /* Global acess */
        let isScrolling = false;
        let isScrollingUp = false; /* Default Scrolling Down, Prevent Errors */


        const ToggleScrolling = Enable => {
            if (Enable) {
                console.log("Auto Scroll Active");
                document.body.style.cursor = "all-scroll";
                AutoScroll_Interval = setInterval(AutoScroll, 1);
                isScrolling = true; /* Prevent Multiple Interval's */
            } else if (!Enable && isScrolling) {
                /* Stop Interval , Reset Cursor and Variables */
                console.log("Auto Scroll Stopped");
                document.body.style.cursor = "auto";
                clearInterval(AutoScroll_Interval);
                isScrolling = false;
            }
        }


        const AutoScroll = () => {
            /* Get Current Vertical Scroll Position : console.log(window.scrollY); */
            isScrollingUp ? window.scrollBy(0, scrollSpeed_Up) : window.scrollBy(0, scrollSpeed_Down);
        }


        window.addEventListener("mousemove", e => {
            e.clientY > middlehalf ? isScrollingUp = false : isScrollingUp = true;
        });


        /* Check if Scroll Button is Pressed */
        window.addEventListener("mousedown", e => {
            e.button === 1 && !isScrolling ? ToggleScrolling(true) : ToggleScrolling(false);
        });


        /* ############## IGNORE ##############
        Check if Client has reached Bottom
        const scrollableHeight = document.documentElement.scrollHeight - window.innerHeight;
        if (window.scrollY >= scrollableHeight) { 
            // Reached Bottom Code ... 
        } else {
            // Code ...
        }
        */
    </script>
</body>


</html>
Browser, Linux, HTML, IT, Webseite, JavaScript, Ubuntu, HTML5, Informatik, Programmiersprache, Webentwicklung, Frontend, React, node.js, React Native
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
Ist das schlimm wenn man ein Script/Code komplizierter schreibt als es sein könnte?

Hallo,

Ich bin Programmieranfänger und habe eine Frage bezüglich dem Titel und zwar habe ich um mehr Praxiserfahrung zu sammeln ein simplen Kalkulator für die Konsole programmiert (in Java). Dieser ist jedoch spürbar komplizierter geworden als es sein müsste.

import java.util.Objects;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        calculate();
    }
    public static void calculate() {

        System.out.println("Rechenart:");
        Scanner scanner = new Scanner(System.in);
        String arithmeticMethod = scanner.next();

        if (Objects.equals(arithmeticMethod, "addition") || Objects.equals(arithmeticMethod, "+")) {
            addition();
        } else if (Objects.equals(arithmeticMethod, "subtraction") || Objects.equals(arithmeticMethod, "-")) {
            subtraction();
        } else if (Objects.equals(arithmeticMethod, "multiplication") || Objects.equals(arithmeticMethod, "*") || Objects.equals(arithmeticMethod, "x")) {
            multiplication();
        } else if (Objects.equals(arithmeticMethod, "division") || Objects.equals(arithmeticMethod, ":") || Objects.equals(arithmeticMethod, "/")) {
            division();
        } else if (Objects.equals(arithmeticMethod, "stop")) {
            System.out.println("Program ended.");
        }
    }
    public static void addition() {

        Scanner scanner = new Scanner(System.in);

        int firstSummand;
        int secondSummand;

        System.out.println("1. Summand: ");
        firstSummand = scanner.nextInt();
        System.out.println("2. Summand: ");
        secondSummand = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(firstSummand + secondSummand);
        calculate();
    }
    public static void subtraction() {

        Scanner scanner = new Scanner(System.in);

        int minuend;
        int subtrahend;

        System.out.println("Minuend: ");
        minuend = scanner.nextInt();
        System.out.println("Subtrahend: ");
        subtrahend = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(minuend - subtrahend);
        calculate();
    }
    public static void multiplication() {

        Scanner scanner = new Scanner(System.in);

        int firstFactor;
        int secondFactor;

        System.out.println("1. Factor: ");
        firstFactor = scanner.nextInt();
        System.out.println("2. Factor: ");
        secondFactor = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(firstFactor * secondFactor);
        calculate();
    }
    public static void division() {

        Scanner scanner = new Scanner(System.in);

        int dividend;
        int divisor;

        System.out.println("Dividend: ");
        dividend = scanner.nextInt();
        System.out.println("Divisor: ");
        divisor = scanner.nextInt();
        System.out.println("Ergebnis: ");
        System.out.println(dividend / divisor);
        calculate();
    }
}

(Entschuldigung dass ich es nicht über ein Bild zeigen kann da nicht alles auf ein Bild passt.) Ist das schlimm? Sollte ich mir das schnell abgewöhnen?

Schonmal Danke im voraus.

Java, Programmiersprache
PowerShell / REST Microsoft Azure: Get-AzPolicyStateSummary?

Moin!

Ich möchte den Ist-Status der Policy Compliance in einer Subscription reporten.

Ich ziehe also folgend die Daten:

$azState = Get-AzPolicyStateSummary -SubscriptionId $subscriptionId
    $exportObject.Compliance.TotalRessources = $azState.Results.ResourceDetails[0].Count + $azState.Results.ResourceDetails[1].Count + $azState.Results.ResourceDetails[2].Count
    $exportObject.Compliance.CompliantRessources = $azState.Results.ResourceDetails[0].Count
    $exportObject.Compliance.NonCompliantRessources = $azState.Results.ResourceDetails[1].Count
    $exportObject.Compliance.Exceptions = $azState.Results.ResourceDetails[2].Count
    $exportObject.Compliance.Percentage = [math]::Round((1.0 - $exportObject.Compliance.NonCompliantRessources / ($exportObject.Compliance.CompliantRessources + $exportObject.Compliance.NonCompliantRessources + $exportObject.Compliance.Exceptions)) * 100)

Beziehen kann ich so erfolgreich die Resource Compliance in Prozent, die Gesamtzahl der Ressourcen sowie die Aufteilung wie viel Compliant, Non-Complient und 'Other' sind.

Problematisch ist aber, dass ich nicht die Non-Compliant Initiatives und Non-Compliant Policies beziehen kann. Die Werte, wie ich sieh auch beziehe scheinen nie mit diesen Werten übereinzustimmen. Entweder kriege ich deutlich niedrigere oder deutlich höhere Werte.

Hat daher jemand eine Idee, wie ich die Daten richtig filtern kann oder z.B. über die Graph API die korrekten Daten beziehen kann?

PC, Computer, Microsoft, programmieren, Programmiersprache, Rest, Softwareentwicklung, Cloud, API, azure, PowerShell
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
Javafx intersec funktioniert nicht?
class GameWindow {
    int circleX = 0;
    int circleY = 0;
    int maxX = 500;
    int maxY = 500;
    Circle circle,circlerand;
    HBox root;
    public void fenster()
    {
        figure();
        Stage stage = new Stage();
        root = new HBox();
        create();
        if(circle.getBoundsInParent().intersects(circlerand.getBoundsInParent())){
            System.out.println("circle x =" + circle.getCenterX() + " circlrand x =" + circlerand.getCenterX());
            System.out.println("GameWindow.fenster() getroffen");
            root.getChildren().remove(circlerand);
            create();
        }
        
        
        Scene scene = new Scene(root,maxX, maxY);
        scene.setOnKeyPressed((KeyEvent event) -> {
            switch (event.getCode()) {
                case UP -> {
                    if(circleY >= 2)
                    {
                        circleY -= 1;
                        circle.setTranslateY(circleY);
                        System.out.println("circle Y =" + circleY);
                        
                    }
                }
                case DOWN -> {
                    if(circleY <= (maxY - 42)){
                        circleY += 1;
                    circle.setTranslateY(circleY);
                    System.out.println("circle Y =" + circleY);
                    }
                    
                }
                case LEFT -> {
                    if(circleX >= 0){
                        circleX -= 1;
                        circle.setTranslateX(circleX);
                        System.out.println("circle x = " + circleX);
                    }
                }
                case RIGHT -> {
                    if(circleX <= maxX - 30){
                        circleX += 1;
                        circle.setTranslateX(circleX);
                        System.out.println("circle x =" + circleX);
                        
                    }
                }
                case SHIFT -> {
                System.out.println("circlerand x =" + circlerand.getCenterX() + " y=" + circlerand.getCenterY());
                    System.out.println("circle x = " + circle.getCenterX() + " y = " + circle.getCenterY());
                    
                       
                }
            }
        });
        
        
        
        root.getChildren().addAll(circle);
        stage.setScene(scene);
        stage.show();
    }
    
    private void figure(){
        circle = new Circle(circleX,circleY,15);
          
    }
    
        private void create(){
            Random rand = new Random();
            int x = rand.nextInt(450);
            int y = rand.nextInt(450);
            circlerand = new Circle(x,y,10);
            circlerand.setTranslateX(x);
            circlerand.setTranslateY(y);
            System.out.println("circlerand x =" + circlerand.getCenterX() + " y=" + circlerand.getCenterY());                    
            root.getChildren().add(circlerand);
            
            
        }
    
}

Moin, ich möchte abfragen ob 2 Kreise kollidieren jedoch funktioniert es nicht. Jemand ne Idee woran es liegt?

Java, Programmiersprache
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)
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
Wie mache ich eine ziemlich spezielle Linux Distro?

Es wird vielleicht etwas länger werden, aber das sollte nicht so kompliziert sein.

Also, ich möchte aus meinem Raspberry Pi meine eigene Spielekonsole machen. Und ich meine nicht einfach: RetroPie installieren oder sowas. Ich möchte nicht, das meine Konsole einfach nur ein Emulator ist.

Erstmal: Warum möchte ich das machen? - Weil ich da Lust drauf habe. Ich habe diese Idee seit Monaten in meinem Kopf, und werde sie nicht los, bis ich es endlich gemacht habe.

Also, ich möchte meine eigene Linux-Distro machen, für meine eigene Konsole (Der Raspberry Pi, wo ich die Distro drauflade). Warum Linux-Distro? Weil ein komplett eigenes Betriebssystem quasi unmöglich ist.

Was soll die Distro können?

Sie soll ziemlich ähnlich einer PS1 sein (Einziges Beispiel von mir, da ich sonst nicht so wirklich eine vergleichbare Konsole kenne.) Also: Kein Desktop, kein Dateimanager, kein Texteditor, nichts. Nur eine einfache Instanz von cmd (Ich weiß nicht wie dass in Linux heißt, ich benutze hauptsächlich Windows.) welches aber nur Python installiert hat, und bei jedem Start einfach nur ein Python Script startet.

Warum Python? - Ich habe meine eigene Programmiersprache in Python geschrieben, auf die meine Spiele basieren sollen. Meine Programmiersprache ist nicht Grafisch oder so, sondern einfach nur Konsole, wie JavaScript (Standalone). Ich weiß, das ist nicht gerade "spiel-isch" um Spiele zu erstellen, aber Hey! Ich will es trotzdem.

Also, Ich drücke den An-Knopf auf meinem Pi, ein Startup-Jingle wird abgespielt mit dem Logo, python startet im Hintergrund shell.py (Die shell für meine Programmiersprache) welche direkt ein Skript ausführt (home.tlps, ausgeführt durch start("home.tlps"), welches ich direkt in der shell.py für die Konsole implementieren werde.) und dann einfach meine Programmiersprachen-Shell anzeigt, mit dem home.tlps Programm welches ich bereits geschrieben habe, und halt Spiele vom Internen Speicher anzeigt, abspielt, etc. Das ist alles in meiner Sprache schon erstellt worden.

Also Kurz: Eine Linux-Distro, welche beim Start nicht diesen ganzen Mount-Gibberisch und so anzeigt, kurz das Logo einblendet, den Startup-Jingle abspielt, cmd in Vollbild startet, und automatisch ein Python-Skript ausführt.

Eigentlich ganz einfach oder? Nur wie mache ich die Distro?

Betriebssystem, Linux, Konsolen, Distribution, Programmiersprache, Linux-Distribution

Meistgelesene Fragen zum Thema Programmiersprache