# Speksit & Konseptielementit: KeinoelC$mC$simulaattori
## 1. Datan rakenne (8-bittinen solu)
* **1 Tavu per solu (8 bittiC$)**:
* **Bitit 06 (7-bit ASCII, 0127)**: Solun "geeni", materiaali ja
toiminnallinen koodi.
* **Bitti 7 (0 tai 1)**: ElC$mC$n kipinC$ (1 = Elossa, 0 = Kuollut/Ruumis).
Kuollut solu ei hC$viC$, vaan jC$C$ passiiviseksi rakennusaineeksi, kilveksi
tai ravinnoksi.
---
## 2. Koodaus- ja suoritusrajoitukset
* **10 merkin raja**: YksittC$isen symbolin koodikenttC$ (`alive`, `dead`,
`react`) saa olla korkeintaan 10 merkkiC$ pitkC$. Pakottaa monisoluisuuteen ja
erikoistumiseen.
* **Mikrokielen merkistC6** (luonnos):
* `?` = Ehto / Tunnistus
* `*` = MikC$ tahansa kohde
* `!` = Tuhoa / Sammuta 8. bitti
* `@` = Tuhoa itsesi
* `>` = TyC6nnC$ eteenpC$in
* `<` = VedC$ perC$ssC$
* `^` = HerC$tC$ / Kytke 8. bitti pC$C$lle
---
## 3. Symbolien lC$hdetaulukko (YAML)
```yaml
[SYMBOLS]
H:
nimi: Happo
materiaali: {opasiteetti: 0.5, absorptio: 0.1, johtavuus: 0.2, kapasiteetti:
20}
alive: "?*:!@" # Jos edessC$ mitC$ vain (*), tapa se (!), tuhoa itsesi
(@)
dead: ""
react: "!@"
M:
nimi: Moottori
materiaali: {opasiteetti: 0.8, absorptio: 0.2, johtavuus: 0.8, kapasiteetti:
50}
alive: ">" # TyC6nnC$ eteenpC$in (kuluttaa lC$mpC6C$)
dead: ""
react: ""
L:
nimi: Lihas / Tarttuja
materiaali: {opasiteetti: 0.7, absorptio: 0.2, johtavuus: 0.6, kapasiteetti:
40}
alive: "<*" # VedC$ takana olevaa mitC$ tahansa mukana
dead: ""
react: ""
V:
nimi: Vampyyri
materiaali: {opasiteetti: 0.9, absorptio: 0.0, johtavuus: 0.5, kapasiteetti:
80}
alive: "?*:!_SND^" # Ime elC$mC$ naapurilta, lC$hetC$ herC$te taaksepC$in
dead: ""
react: ""
A:
nimi: Aurinkopaneeli / Lehti
materiaali: {opasiteetti: 0.9, absorptio: 0.8, johtavuus: 0.5, kapasiteetti:
50}
alive: "" # KerC$C$ valoa lC$mmC6ksi
dead: ""
react: ""
B:
nimi: Akku / SydC$n
materiaali: {opasiteetti: 1.0, absorptio: 0.0, johtavuus: 0.9, kapasiteetti:
500}
alive: "" # Suuri lC$mpC6varasto
dead: ""
react: ""
G:
nimi: Lasi / Valokanava
materiaali: {opasiteetti: 0.1, absorptio: 0.05, johtavuus: 0.1,
kapasiteetti: 20}
alive: "" # LC$pC$isee 90% valosta
dead: ""
react: ""
R:
nimi: Radium / Resonaattori
materiaali: {opasiteetti: 1.0, absorptio: 0.0, johtavuus: 0.1, kapasiteetti:
100}
alive: "?R:*2^" # Jos vieressC$ R, kerro sC$teily kahdella ja herC$tC$
dead: ""
react: ""
S:
nimi: Itio / Siemen (Spore)
materiaali: {opasiteetti: 0.6, absorptio: 0.4, johtavuus: 0.3, kapasiteetti:
30}
alive: "?E:>S" # SyC6 kuollutta koodiromua ja rakentaa uuden
mini-kuvion
dead: ""
react: ""
K:
nimi: Kopioija (Kloner)
materiaali: {opasiteetti: 0.8, absorptio: 0.2, johtavuus: 0.5, kapasiteetti:
60}
alive: "?*:>*^" # Kopioi edessC$ olevan solun taakseen ja herC$ttC$C$
sen
dead: ""
react: ""
```
---
## 4. Kuvioiden anatomia (YAML)
* *Huomio*: Iso kirjain = syntyessC$C$n elossa (bitti 8 = 1). Pieni kirjain =
kuollut ruumis/kilpi (bitti 8 = 0).
```yaml
[PATTERNS]
Puskutraktori:
suunta: Oikea
kuvio: |
.H.
mMM
.H.
Kastemato:
suunta: Oikea
kuvio: |
MLMLM
```
---