mirror of
https://github.com/Cametendo/EMVs-Creative-coding.git
synced 2026-06-20 17:45:02 +02:00
commit.sh
This commit is contained in:
3
week-4/apfel.txt
Normal file
3
week-4/apfel.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
Das ist ein Haus.
|
||||
Das ist ein Hund
|
||||
Das könnte sein.
|
||||
29
week-4/benutzerliste.txt
Normal file
29
week-4/benutzerliste.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
BENUTZERLISTE
|
||||
|
||||
1. PRIMÄRE NUTZER (Main Target Group)
|
||||
- Alltags-Organisierer
|
||||
Nutzen die App täglich oder fast täglich, brauchen schnelle Erfassung und verlässliche Erinnerungen.
|
||||
- Strukturierte Listen-Nutzer
|
||||
Arbeiten gern mit einfachen Listen und Kategorien, möchten Übersicht ohne Komplexität.
|
||||
- Deadline-/Reminder-Nutzer
|
||||
Nutzen die App vor allem für „Erinnere mich rechtzeitig“, weniger für grosse Strukturen.
|
||||
|
||||
2. SEKUNDÄRE NUTZER (gelegentliche Nutzer)
|
||||
- Gelegenheits-Planer
|
||||
Öffnen die App nur ein paar Mal pro Woche, nutzen Basisfunktionen.
|
||||
- Kalender-Fokus-Nutzer
|
||||
Denken zeitbasiert, nutzen die App als Ergänzung zum Kalender.
|
||||
- Projekt-orientierte Nutzer
|
||||
Nutzen die App temporär für grössere Schul-/Arbeitsprojekte.
|
||||
|
||||
3. SONSTIGE (nicht Hauptzielgruppe, aber real vorhanden)
|
||||
- Interessierte Test-Nutzer
|
||||
Installieren → testen → eventuell behalten.
|
||||
- Minimalisten
|
||||
Nutzen selten ToDos, brauchen aber manchmal schnelle Erinnerungen oder kurze Notizen.
|
||||
|
||||
4. NICHT-NUTZER
|
||||
- Bewusste Nicht-Nutzer
|
||||
Organisieren alles im Kopf oder auf Papier, wollen keine App.
|
||||
- Technische Pflichtrollen
|
||||
Devs, Support, Admins – gehören nicht zur echten Produktzielgruppe.
|
||||
18
week-4/index.html
Normal file
18
week-4/index.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<title>Sketch</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
|
||||
<script src="/libraries/p5.min.js"></script>
|
||||
<script src="/libraries/p5.sound.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script src="markov-chain.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
68
week-4/l-system.js
Normal file
68
week-4/l-system.js
Normal file
@@ -0,0 +1,68 @@
|
||||
let angle;
|
||||
let axiom = "F";
|
||||
let sentence = axiom;
|
||||
let len = 100;
|
||||
let rules = [];
|
||||
rules[0] = {
|
||||
a: "F",
|
||||
// b: "FF-[-F-F-F]+[+F+F+F]",
|
||||
c: "FF*[*F/F/F]/[/F*F*F]",
|
||||
};
|
||||
|
||||
function generate() {
|
||||
len *= 0.5;
|
||||
let nextSentence = "";
|
||||
for (let i = 0; i < sentence.length; i++) {
|
||||
let current = sentence.charAt(i);
|
||||
let found = false;
|
||||
for (let j = 0; j < rules.length; j++) {
|
||||
if (current == rules[j].a) {
|
||||
found = true;
|
||||
nextSentence += rules[j].b;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
nextSentence += current;
|
||||
}
|
||||
}
|
||||
sentence = nextSentence;
|
||||
createP(sentence);
|
||||
turtle();
|
||||
}
|
||||
|
||||
function turtle() {
|
||||
background(51);
|
||||
resetMatrix();
|
||||
translate(width / 2, height);
|
||||
stroke(255, 100);
|
||||
for (let i = 0; i < sentence.length; i++) {
|
||||
let current = sentence.charAt(i);
|
||||
if (current == "F") {
|
||||
line(0, 0, 0, -len);
|
||||
translate(0, -len);
|
||||
} else if (current == "+") {
|
||||
rotate(angle);
|
||||
} else if (current == "-") {
|
||||
rotate(-angle);
|
||||
} else if (current == "*") {
|
||||
rotate(angle * 2);
|
||||
} else if (current == "/") {
|
||||
rotate(angle / 2);
|
||||
} else if (current == "[") {
|
||||
push();
|
||||
} else if (current == "]") {
|
||||
pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setup() {
|
||||
createCanvas(400, 400);
|
||||
angle = radians(10);
|
||||
background(51);
|
||||
createP(axiom);
|
||||
turtle();
|
||||
let button = createButton("generate");
|
||||
button.mousePressed(generate);
|
||||
}
|
||||
67
week-4/markov-chain.js
Normal file
67
week-4/markov-chain.js
Normal file
@@ -0,0 +1,67 @@
|
||||
let myData;
|
||||
const amountOfWords = 100;
|
||||
let uniqueArray = [];
|
||||
let sentenceArray = [];
|
||||
let exist = false;
|
||||
|
||||
function preload() {
|
||||
myData = loadStrings("apfel.txt");
|
||||
}
|
||||
|
||||
function setup() {
|
||||
createCanvas(400, 300);
|
||||
console.log(myData);
|
||||
background(200);
|
||||
|
||||
const myDataSplit = myData.flatMap((str) => str.split(" ")).filter(Boolean);
|
||||
//console.log(myDataSplit);
|
||||
|
||||
for (let i = 0; i < myDataSplit.length; i++) {
|
||||
for (let j = 0; j < uniqueArray.length; j++) {
|
||||
if (myDataSplit[i] === uniqueArray[j]) {
|
||||
exist = true;
|
||||
}
|
||||
}
|
||||
if (!exist) {
|
||||
uniqueArray.push(myDataSplit[i]);
|
||||
}
|
||||
exist = false;
|
||||
}
|
||||
console.log(uniqueArray);
|
||||
|
||||
let map = new Map();
|
||||
let nextWords = [];
|
||||
for (let i = 0; i < uniqueArray.length; i++) {
|
||||
nextWords = [];
|
||||
for (let j = 0; j < myDataSplit.length; j++) {
|
||||
if (uniqueArray[i] === myDataSplit[j]) {
|
||||
nextWords.push(myDataSplit[j + 1]);
|
||||
}
|
||||
}
|
||||
map.set(uniqueArray[i], nextWords);
|
||||
// map.set("nextWords", uniqueArray[i + 1]);
|
||||
}
|
||||
|
||||
map.set("abc", ["a", "b", "g"]);
|
||||
|
||||
console.log(map);
|
||||
|
||||
// Select a random line from the text.
|
||||
/*let phrase = "";
|
||||
for (let i = 0; i < amountOfWords; i++) {
|
||||
let phrasePart = random(myDataSplit);
|
||||
phrase = phrase + " " + phrasePart;
|
||||
}
|
||||
console.log(phrase); */
|
||||
|
||||
textAlign(LEFT, CENTER);
|
||||
textFont("Courier New");
|
||||
textSize(12);
|
||||
|
||||
// text(phrase, 20, 100, 300);
|
||||
|
||||
// describe(`${phrase}`);
|
||||
text("- William Shakespeare", 20, 250);
|
||||
}
|
||||
|
||||
function generateWords() {}
|
||||
36
week-4/markovtest.js
Normal file
36
week-4/markovtest.js
Normal file
@@ -0,0 +1,36 @@
|
||||
// An array of lines from a text file
|
||||
let lines;
|
||||
// The Markov Generator object
|
||||
let markov;
|
||||
// An output element
|
||||
let output;
|
||||
|
||||
// Preload some seed data
|
||||
function preload() {
|
||||
lines = loadStrings("shakespere.txt");
|
||||
}
|
||||
|
||||
function setup() {
|
||||
// Join everything together in one long string
|
||||
// Keep carriage returns so these will show up in the markov generator
|
||||
let text = lines.join("\n");
|
||||
|
||||
// N-gram length and maximum length
|
||||
markov = new MarkovGenerator(8, 400);
|
||||
markov.feed(text);
|
||||
//console.log(markov);
|
||||
|
||||
// Make the button
|
||||
let button = createButton("generate");
|
||||
button.mousePressed(generate);
|
||||
|
||||
noCanvas();
|
||||
}
|
||||
|
||||
function generate() {
|
||||
// Generate some text
|
||||
let result = markov.generate();
|
||||
// Put in HTML line breaks wherever there was a carriage return
|
||||
result = result.replace("\n", "<br/><br/>");
|
||||
createP(result);
|
||||
}
|
||||
121753
week-4/shakespeare.txt
Normal file
121753
week-4/shakespeare.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user