dump - CaffeineCoderz/Fungorium GitHub Wiki

Miket kell megcsinálni:

**CommandProcessor **osztály gpt-vel elkezdtem de még finomítgatni kell **MultiplyInsect **osztály (változtatások miatt) **FeedThread **osztály (változtatások miatt)

compile.sh változás: commands osztály compileolása, többi automatán történik test.sh változtatás: commands osztály compileolása, többi automatán történik

statikus diagram kibővítése és javítása Új szekvenciák

  1. Rovarosztódás
  2. Fonal életben tartó tekton működése
  3. Grow thread javítása (új fajta megoldás miatt)
  4. Elrágott fonal nem pusztul el azonnal(Fonaltípus függő idő--> Híd fonál pusztuljon el egyből, tektonon lévő maradjon X körig életben)
  5. Fonal bénult rovart eszik
  6. Tekton törés átdolgozás(Rovar meghal nem át rakódik)
  7. Insect move javítás (Levezetni, hogy hogyan dönti el, hogy melyik tektonra lép. Pl híd átkelés)

Új Metódusok összegyűjtése, Változó metódusok leírása Interfész leírása: Input Output alapú tesztelés Parancsok megalkotása Kimenet és Bemenet formátum Összes Use-Case összegyűjtése Tesztelési Terv Tesztelést támogató segéd- és fordítóprogramok specifikálása

Ezeket csak itthagyom

sporeNames = tekton.getSpores().stream()
                    .map(spore -> {
                        String sporeName = createdObjects.entrySet().stream()
                                .filter(entry -> entry.getValue() == spore)
                                .map(Map.Entry::getKey)
                                .findFirst()
                                .orElse("N/A");
                        String sporeType = spore.getClass().getSimpleName();
                        return sporeType + "(" + sporeName + ")";
                    })
                    .toList()
                    .toString();


public void processSporulateCommand(String[] parts) {
    String name = parts[1];

    if (!createdObjects.containsKey(name)) {
        System.out.println("Hiba: Nem létezik ilyen nevű objektum: " + name);
        return;
    }

    Object obj = createdObjects.get(name);
    if (obj instanceof FungusBody) {
        FungusBody body = (FungusBody) obj;
        body.sporulate();

        // Hozzáadjuk a spórákat a createdObjects-hez
        int sporeIndex = 1;
        for (Spore spore : body.getSpores()) {
            String sporeName = name + "_spore" + sporeIndex++;
            createdObjects.put(sporeName, spore);
            System.out.println("Spóra létrehozva: " + sporeName);
        }
    } else {
        System.out.println("Hiba: Nem lehet sporulálni ezt az objektumot: " + name);
    }
}

Csak ötletelésnek hoztam létre egyenlőre!

Ha swinget kell majd használni kezdhetünk valami ilyesmivel, ez még nem mostani probléma

import javax.swing.*;
import java.awt.*;
import java.util.Map;
import tektonTypes.Tekton;

public class GameMap extends JFrame {
    private JPanel gridPanel;
    private Map<String, Tekton> tektons;

    public GameMap(Map<String, Tekton> tektons) {
        this.tektons = tektons;

        setTitle("Tekton Map");
        setSize(600, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Create a grid layout (e.g., 10x10 grid)
        int gridSize = (int) Math.sqrt(tektons.size());
        gridPanel = new JPanel(new GridLayout(gridSize, gridSize));
        add(gridPanel);

        // Initialize the grid with Tekton states
        for (Tekton tekton : tektons.values()) {
            JLabel cell = new JLabel();
            cell.setOpaque(true);
            cell.setHorizontalAlignment(SwingConstants.CENTER);
            cell.setVerticalAlignment(SwingConstants.CENTER);
            cell.setBackground(getColorForState(tekton.getState())); // Initial state
            cell.setText(tekton.getName());
            gridPanel.add(cell);
        }

        setVisible(true);
    }

    // Update the grid based on Tekton states
    public void updateGrid() {
        Component[] cells = gridPanel.getComponents();
        int i = 0;
        for (Tekton tekton : tektons.values()) {
            JLabel cell = (JLabel) cells[i++];
            cell.setBackground(getColorForState(tekton.getState()));
        }
    }

    // Map Tekton states to colors
    private Color getColorForState(String state) {
        switch (state) {
            case "stable":
                return Color.GREEN;
            case "active":
                return Color.YELLOW;
            case "critical":
                return Color.RED;
            default:
                return Color.GRAY;
        }
    }
}