-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAufgabenstellungMitBlueJ.js
More file actions
142 lines (122 loc) · 4.51 KB
/
AufgabenstellungMitBlueJ.js
File metadata and controls
142 lines (122 loc) · 4.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
var angabe;
var nummer;
var width = window.innerWidth;
var height = window.innerHeight;
var frage;
var zeit;
var endText;
var href;
var typ;
var txtAngabe;
var untertitel;
/*
Daten aus der data.json Datei laden
*/
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function () {
jsonData = JSON.parse(this.responseText);
document.getElementById("Titel").innerHTML = jsonData.titel;
// document.getElementById("btnWeiter").innerHTML = "<Button class='small' onclick='weiter()'>Weiter</button>";
document.getElementById("quelle").innerHTML = "Bildquelle: " + jsonData.copyright +
"<br>2022 Rainer Hille <br> Unter Verwwendung von <a href='https://www.cssscript.com/toast-style-web-notifications-in-vanilla-javascript-vanillatoasts/'>VanillaToasts.js</a>";
var s="Klicken um die Vorlage herunterzuladen ⇒ Rechtsklick auf heruntergeladene Datei ⇒ Öffnen mit BlueJ<br>"+
"<a href=\"https://Hi2272.github.io/00Informatik/"+jsonData.blueJ+"\">BlueJ Vorlage</a>";
document.getElementById("BlueJ").innerHTML=s;
/*
Variablen umwandeln
*/
angabe = jsonData.angabe; // Allgemeine Angabe
txtAngabe=jsonData.txtAngabe; // Textaufgabe an Stelle von Bildern
endText = jsonData.ende;
typ = jsonData.typ;
untertitel= jsonData.untertitel;
nummer = 0;
frage = true;
start();
}
href = window.location.href;
href = href.substring(0, href.lastIndexOf("/"));
xmlhttp.open("GET", href + "/data.json");
xmlhttp.send();
function start(){
menue=document.getElementById("Menue");
menue.style.visibility='visible';
document.getElementById("btnWeiter").style.visibility='hidden';
document.getElementById("Angabe").innerHTML="Klicke auf die Übung, mit der du starten willst!<br>";
document.getElementById("Ueberschrift").innerHTML="Hauptmenü";
s="";
// typ="Hallo";
for (i=0;i<angabe.length;i++){
if (typ=="Bild"){
s1='<img class="full" src="' + href + '/Screenshot_' + (i+1).toString() + '.png" >';
s=s+'<Button class="big" onclick="startNummer('+i.toString()+')">'+s1+"</Button>";
} else {
s1='<Button style="'+'padding: 10px;margin:10px;';
s1=s1+'width:'+(width/5).toString()+'px;height:'+(height/4).toString()+'px;"';
s=s+s1+'onclick="startNummer('+i.toString()+')">'+txtAngabe[i]+"</button>"
}
}
menue.innerHTML=s;
}
function startNummer(nr){
nummer=nr;
document.getElementById("Menue").style.visibility='hidden';
document.getElementById("Menue").innerHTML="";
document.getElementById("btnWeiter").style.visibility="visible";
document.getElementById("Ueberschrift").innerHTML=untertitel;
anzeigen();
}
function weiter() {
var dauer = (Date.now() - zeit) / 1000;
// dauer=200;
if (frage && dauer < angabe[nummer].zeit) {
sdauer = "Gelöst in " + Math.round(dauer.toString()) + " Sekunden?";
s = "Du solltest dich mindestens " + angabe[nummer].zeit + " Sekunden mit der Aufgabe beschäftigen!";
ausgabe(sdauer, s, 3000, "info");
} else {
if (frage) {
frage = false;
} else {
nummer++;
frage = true;
}
if (nummer < angabe.length) {
anzeigen();
} else {
endeAnzeigen();
}
}
}
function anzeigen() {
var s = (nummer + 1).toString();
var txt;
if (!frage) {
s = s + "L";
txt = "<Button class='breit' onclick='weiter()'>Lösungsvorschlag: Zur nächsten Frage</button>";
} else {
txt = "Aufgabe " + (nummer + 1).toString() + "/" + angabe.length + ": " + angabe[nummer].txt;
txt=txt+"<br> <Button class='breit' onclick='weiter()'>Lösung</button>";
}
document.getElementById("Angabe").innerHTML = txt;
if (typ == "Bild"||!frage) {
pfad = '<img class="big" src="' + href + '/Screenshot_' + s + '.png" width="'+(width*0.6).toString()+'">';
} else {
pfad = txtAngabe[nummer];
}
document.getElementById("Bild").innerHTML = pfad;
zeit = Date.now();
}
function endeAnzeigen() {
document.getElementById("Ueberschrift").innerHTML = "Super, du hast alle Aufgaben gelöst!";
document.getElementById("Angabe").innerHTML = endText;
document.getElementById("Bild").innerHTML = "";
document.getElementById("btnWeiter").innerHTML = "";
}
function ausgabe(title, msg, dauer, type) {
VanillaToasts.create({
title: title,
text: msg,
timeout: dauer,
type: type,
});
}