πŸ’­ Π§Π°ΡΡ‚ΡŒ 67: Π”Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ мыслСй β€” ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ пространствами

ΠœΡ‹ создадим систСму, которая позволяСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ мыслями ΠΈ идСями, ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ измСрСниями!

ΠœΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ:

cpp

#include <avr/pgmspace.h>

#define THOUGHT_SPACE_SIZE 16
#define IDEA_COUNT 8

// Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° мысли
struct Thought {
    uint8_t id;
    uint8_t content[THOUGHT_SPACE_SIZE];
    uint8_t intensity;
    uint8_t coherence;  // Π‘Π²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ
    uint8_t novelty;    // Новизна
};

// Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ΄Π΅ΠΈ
struct Idea {
    uint8_t id;
    uint8_t concept[THOUGHT_SPACE_SIZE];
    uint8_t potential;
    uint8_t difficulty;
};

Thought currentThought;
Thought thoughtSpace[8];
Idea ideaSpace[IDEA_COUNT];
uint8_t thoughtIndex = 0;

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ пространства
void initMentalSpace() {
    // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ мысли
    for (uint8_t t = 0; t < 8; t++) {
        thoughtSpace[t].id = t;
        for (uint8_t i = 0; i < THOUGHT_SPACE_SIZE; i++) {
            thoughtSpace[t].content[i] = random(256);
        }
        thoughtSpace[t].intensity = random(0, 100);
        thoughtSpace[t].coherence = random(0, 100);
        thoughtSpace[t].novelty = random(0, 100);
    }
    currentThought = thoughtSpace[0];
    
    // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ΄Π΅ΠΈ
    for (uint8_t i = 0; i < IDEA_COUNT; i++) {
        ideaSpace[i].id = i;
        for (uint8_t j = 0; j < THOUGHT_SPACE_SIZE; j++) {
            ideaSpace[i].concept[j] = random(256);
        }
        ideaSpace[i].potential = random(0, 100);
        ideaSpace[i].difficulty = random(0, 100);
    }
}

// ГСнСрация Π½ΠΎΠ²ΠΎΠΉ мысли (ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ)
void generateThought() {
    uint8_t newId = random(1, 8);
    
    // ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π²Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ мысли
    uint8_t src1 = random(8);
    uint8_t src2 = random(8);
    
    for (uint8_t i = 0; i < THOUGHT_SPACE_SIZE; i++) {
        thoughtSpace[newId].content[i] = 
            (thoughtSpace[src1].content[i] + thoughtSpace[src2].content[i]) / 2;
        // ДобавляСм ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ„Π»ΡƒΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ
        if (random(100) < 20) {
            thoughtSpace[newId].content[i] ^= (1 << random(8));
        }
    }
    
    thoughtSpace[newId].intensity = 
        (thoughtSpace[src1].intensity + thoughtSpace[src2].intensity) / 2;
    thoughtSpace[newId].coherence = random(0, 100);
    thoughtSpace[newId].novelty = 100 - thoughtSpace[newId].coherence / 2;
}

// ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ мыслями
void navigateThoughts(uint8_t target) {
    if (target >= 8) return;
    if (target == thoughtIndex) return;
    
    // БохраняСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΌΡ‹ΡΠ»ΡŒ
    currentThought = thoughtSpace[thoughtIndex];
    
    // ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ
    thoughtIndex = target;
    currentThought = thoughtSpace[thoughtIndex];
    
    Serial.print("πŸ’­ ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ мысли ");
    Serial.print(thoughtIndex);
    Serial.print(" | Π˜Π½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ: ");
    Serial.print(currentThought.intensity);
    Serial.print(" | Новизна: ");
    Serial.println(currentThought.novelty);
}

// РСализация ΠΈΠ΄Π΅ΠΈ (творчСский Π°ΠΊΡ‚)
void realizeIdea(uint8_t ideaId) {
    if (ideaId >= IDEA_COUNT) return;
    
    // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ
    if (ideaSpace[ideaId].difficulty > currentThought.intensity) {
        Serial.println("⚠️ ИдСя слишком слоТна для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ");
        return;
    }
    
    Serial.print("πŸ’‘ РСализация ΠΈΠ΄Π΅ΠΈ ");
    Serial.print(ideaId);
    Serial.print(" | ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»: ");
    Serial.println(ideaSpace[ideaId].potential);
    
    // ИдСя становится ΠΌΡ‹ΡΠ»ΡŒΡŽ
    uint8_t newThought = random(1, 8);
    for (uint8_t i = 0; i < THOUGHT_SPACE_SIZE; i++) {
        thoughtSpace[newThought].content[i] = ideaSpace[ideaId].concept[i];
    }
    thoughtSpace[newThought].intensity = ideaSpace[ideaId].potential;
    thoughtSpace[newThought].novelty = 100;
    thoughtSpace[newThought].coherence = 100 - ideaSpace[ideaId].difficulty;
}

// Визуализация ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ пространства
void renderMentalSpace() {
    clearScreen();
    
    // ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ мысли
    for (uint8_t t = 0; t < 8; t++) {
        uint8_t x = t * 8;
        uint8_t y = 60 - thoughtSpace[t].intensity / 4;
        
        // ВСкущая ΠΌΡ‹ΡΠ»ΡŒ подсвСчСна
        uint8_t color = (t == thoughtIndex) ? 2 : 1;
        drawPixel(x, y, color);
        drawPixel(x + 1, y, color);
        
        // БоСдиняСм связанныС мысли
        if (thoughtSpace[t].coherence > 50) {
            for (uint8_t t2 = t + 1; t2 < 8; t2++) {
                if (thoughtSpace[t2].coherence > 50) {
                    uint8_t y2 = 60 - thoughtSpace[t2].intensity / 4;
                    drawLine(x + 2, y, t2 * 8, y2, 1);
                }
            }
        }
    }
    
    // ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ ΠΈΠ΄Π΅ΠΈ
    for (uint8_t i = 0; i < IDEA_COUNT; i++) {
        uint8_t x = 60 + i * 2;
        uint8_t y = 60 - ideaSpace[i].potential / 4;
        drawPixel(x, y, ideaSpace[i].difficulty < 50);
    }
    
    updateDisplay();
}

void setup() {
    initLEDMatrix();
    Serial.begin(115200);
    randomSeed(analogRead(A0));
    
    initMentalSpace();
    Serial.println("πŸ’­ ΠœΠ•ΠΠ’ΠΠ›Π¬ΠΠ«Π™ Π”Π’Π˜Π“ΠΠ’Π•Π›Π¬ ΠΠšΠ’Π˜Π’Π˜Π ΠžΠ’ΠΠ");
    Serial.println("ΠœΡ‹ΡΠ»ΠΈ β€” это измСрСния...");
}

void loop() {
    // ГСнСрация Π½ΠΎΠ²Ρ‹Ρ… мыслСй
    if (random(100) < 20) {
        generateThought();
        Serial.println("✨ Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° новая ΠΌΡ‹ΡΠ»ΡŒ!");
    }
    
    // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ мыслями
    static uint32_t lastNavigate = 0;
    if (millis() - lastNavigate > 3000) {
        uint8_t target = random(8);
        navigateThoughts(target);
        lastNavigate = millis();
    }
    
    // РСализация ΠΈΠ΄Π΅ΠΉ
    if (random(100) < 10) {
        uint8_t ideaId = random(IDEA_COUNT);
        realizeIdea(ideaId);
    }
    
    // Визуализация
    renderMentalSpace();
    delay(100);
}

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *