void loop()
{
String AnzahlTreffer = "";
String GespielteZahlen = "";
String GezogeneZahlen = "";
byte Treffer = 0;
String Auswertung;
// auf Clienten warten ...
client = server.available();
if (client)
{
String SchaltungLesen;
// solange der Client verbunden ist ...
while (client.connected())
{
if (client.available())
{
// Anforderung vom Clienten lesen ...
char Zeichen = client.read();
// return (\n) gesendet
if (Zeichen == '\n')
{
// wenn der String SchaltungLesen leer ist
if (SchaltungLesen == "")
{
/*
HTML-Seite aufbauen
die folgenden Anweisungen müssen
mit print oder println gesendet werden
println "verschönert" den Quelltext
(erzeugt einen Zeilenumbruch im Quelltext)
" müssen mit \ maskiert werden " -> \"
*/
// HTML-Seite aufbauen
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
// Leerzeile zwingend erforderlich
client.println();
client.println(F(""));
client.println(F(""));
client.println(F("
"));
client.println("Lottozahlen mit WiFi ziehen (6 aus " + String(Maximum) + ")
");
client.println(F("
"));
client.println(F(""));
client.println(F("
"));
// Ziehung der "angekreuzten" Zahlen
Ziehung();
ZahlenSortieren(LottoZahl, 6);
// String GespielteZahlen aus den Elementen des Arrays LottoZahl
// zusammensetzen
for (int i = 0; i < Anzahl; i++)
{
GespielteZahlen = GespielteZahlen + LottoZahl[i] + " ";
SpielZahl[i] = LottoZahl[i];
}
// Ziehung der Lottozahlen
Ziehung();
// Zahlen sortieren
ZahlenSortieren(LottoZahl, 6);
// Vergleichen der Elemente der Arrays SpielZahl und LottoZahl
for (int i = 0; i < Anzahl; i++)
{
for (int ii = 0; ii < Anzahl; ii++)
{
// Übereinstimmung gefunden -> Treffer um 1 erhöhen
// AnzahlTreffer: String für übereinstimmende Zahlen erzeugen
if (SpielZahl[i] == LottoZahl[ii])
{
AnzahlTreffer = AnzahlTreffer + SpielZahl[i] + " ";
Treffer ++;
}
}
}
// String GezogeneZahlen aus den Elementen des Arrays LottoZahl
// zusammensetzen
for (int i = 0; i < Anzahl; i++)
{
GezogeneZahlen = GezogeneZahlen + LottoZahl[i] + " ";
}
DateTime aktuell = rtc.now();
char Datum[] = "DD.MM.YYYY";
client.println(aktuell.toString(Datum));
char Zeit[] = " Uhrzeit: hh:mm:ss";
client.println(aktuell.toString(Zeit));
// Zeit schreiben
Durchlauf ++;
switch (Treffer)
{
case 1:
EinTreffer ++;
break;
case 2:
ZweiTreffer ++;
break;
case 3:
DreiTreffer ++;
break;
case 4:
VierTreffer ++;
break;
case 5:
FuenfTreffer ++;
break;
case 6:
SechsTreffer ++;
break;
}
client.println(F("
---------------------------------------------------------"));
client.println(F("
Gespielte Zahlen: "));
client.println(GespielteZahlen);
client.println(F("
---------------------------------------------------------"));
client.println(F("
Gezogene Zahlen: "));
client.println(GezogeneZahlen);
client.println(F("
---------------------------------------------------------"));
if (Treffer == 0) client.println(F("
keine Treffer!"));
// getroffene Zahlen anzeigen
else
{
client.print("
" + String(Treffer));
client.print(F(" Treffer: "));
client.print(AnzahlTreffer);
}
client.println(F("
"));
client.println(F("Statistik:"));
client.println(F("---------------------------------------------------------"));
client.println("
Anzahl Ziehungen: " + String(Durchlauf) + "
");
client.println(F("
Anzahl der Treffer:"));
client.println(F("
---------------------------------------------------------"));
client.println("
1 Treffer: " + String(EinTreffer));
String EinTrefferProzent = String(float(EinTreffer) / float(Durchlauf) * 100);
EinTrefferProzent.replace(".", ",");
client.println(" " + String(EinTrefferProzent) + "%");
client.println("
2 Treffer: " + String(ZweiTreffer));
String ZweiTrefferProzent = String(float(ZweiTreffer) / float(Durchlauf) * 100);
ZweiTrefferProzent.replace(".", ",");
client.println(" " + String(ZweiTrefferProzent) + "%");
client.println("
3 Treffer: " + String(DreiTreffer));
String DreiTrefferProzent = String(float(DreiTreffer) / float(Durchlauf) * 100);
DreiTrefferProzent.replace(".", ",");
client.println(" " + String(DreiTrefferProzent) + "%");
client.println("
4 Treffer: " + String(VierTreffer));
String VierTrefferProzent = String(float(VierTreffer) / float(Durchlauf) * 100);
VierTrefferProzent.replace(".", ",");
client.println(" " + String(VierTrefferProzent) + "%");
client.println("
5 Treffer: " + String(FuenfTreffer));
String FuenfTrefferProzent = String(float(FuenfTreffer) / float(Durchlauf) * 100);
FuenfTrefferProzent.replace(".", ",");
client.println(" " + String(FuenfTrefferProzent) + "%");
client.println("
6 Treffer: " + String(SechsTreffer));
String SechsTrefferProzent = String(float(SechsTreffer) / float(Durchlauf) * 100);
SechsTrefferProzent.replace(".", ",");
client.println(" " + String(SechsTrefferProzent) + "%");
client.println(F("
"));
// IPs anzeigen
client.print(F("Eigene IP: "));
client.print(client.remoteIP());
client.print(F(""));
if (festeIP) client.print(F("
statische IP Arduino: "));
else client.print(F("
IP Adresse Arduino DHCP "));
client.print(WiFi.localIP());
client.print(F(""));
client.println(F(""));
client.println(F(""));
// HTTP-Antwort endet mit neuer Zeile
client.println();
// Seite vollständig geladen -> loop verlassen
break;
}
// wenn Auswertung nicht leer ist -> Inhalt löschen
else
{
Auswertung = "";
}
}
// bei einem anderen Zeichen als return (\r)
// -> Zeichen dem String Auswertung hinzufügen
else if (Zeichen != '\r')
{
Auswertung += Zeichen;
}
}
}
client.stop();
}
}