Autor |
Beitrag |
Jumpy
Hält's aus hier
Beiträge: 23
Erhaltene Danke: 5
|
Verfasst: Fr 23.12.16 10:12
|
|
ub60
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Fr 23.12.16 11:31
Jumpy hat folgendes geschrieben : | Und ich Depp schau seit 18 Stunden auf den Monitor und warte drauf irgendein 3D-Muster zu erkennen |
Kein Wunder, dass das nichts wird. Das Bild sieht man erst nach 22 Stunden .
ub60
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.12.16 13:29
|
|
Blawen
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Fr 23.12.16 14:28
_________________ Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.12.16 14:45
Blawen hat folgendes geschrieben : | Mit Paint habe ich es auch nicht lösen können, mit der .Net Version hingegen ging es relativ schnell - wenn auch meine Augen mehr als nur strapaziert wurden |
Was ist denn eine ".Net Version"? Eine von Paint?
Kenne ich nicht.
Es soll sich ja schon mit Windows 3.1-Bordmitteln lösen lassen. Damals gab es (m.E. zum Glück) kein .Net.
|
|
Gausi
Beiträge: 8539
Erhaltene Danke: 475
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 23.12.16 14:55
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 23.12.16 14:58
Der letzte offene Versuch beim Rätsel vom 22.12. ist beendet.
Lösung:
Die Aufgabe verwendete eine einfache Form der visuellen Kryptografie.
siehe mathematikalpha.de/visuelle-kryptografie
D.h., die beiden Bilder müssen absolut genau und transparent übereinander gelegt werden. Damit ergibt sich
also: Weihnachten 2016
Wie kann man das nun erreichen? Der meiner Meinung einfachste Weg ist:
1. mit Tastenkombination ALT-DRUCK das Aufgabenfenster in die Zwischenablage kopieren
2. Windowsprogramm Paint (pbrush.exe) öffnen
3. Zwischenablage einfügen
4. unter Auswählen unbedingt "transparente Auswahl" einstellen
5. unteres Bild auswählen und absolut genau über das obere verschieben
Möglich ist auch, das Aufgabenfenster auf Folie ausdrucken, zerschneiden und per Hand übereinander legen.
Beste Grüße
Mathematiker
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Christian S., Delphi-Laie, Narses
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.12.16 15:00
Also doch die überlagerten Bitmasken, genau, wie ich es ahnte.
Das ohne ausgedruckte Folie(n) (die zu erstellen ich überhaupt keine Lust hatte) hinzubekommen, erfordert allerdings Computerkenntnisse, die mir auch nach über 25 Jahren noch nicht untergekommen sind. In Paint auf XP finde ich kein "Auswählen".
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 23.12.16 15:08
Delphi-Laie hat folgendes geschrieben : | In Paint auf XP finde ich kein "Auswählen". |
Das ist kein Problem.
Ist Transparenz eingestellt, dann einfach das Bild aus der Zwischenablage noch einmal einfügen und dann verschieben.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.12.16 15:10
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 23.12.16 15:16
Delphi-Laie hat folgendes geschrieben : | Und wo wird "Transparenz" eingestellt? |
Ich habe kein XP mehr, aber ich glaube das Einstellen von Weiß als Hintergrundfarbe macht es auch.
Wenn nicht, dann habe ich mich wohl getäuscht. Dann geht es wohl so doch erst ab W7(?).
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.12.16 15:22
Mathematiker hat folgendes geschrieben : | Delphi-Laie hat folgendes geschrieben : | Und wo wird "Transparenz" eingestellt? |
Ich habe kein XP mehr, aber ich glaube das Einstellen von Weiß als Hintergrundfarbe macht es auch.
Wenn nicht, dann habe ich mich wohl getäuscht. Dann geht es wohl so doch erst ab W7(?). |
Tut mir leid, aber auch das verstehe ich nicht.
Wenn man Paint öffnet, ist doch das vorbereitete Bitmap automatisch weiß voreingestellt.
Weiterhin haben doch diese Bitmasken schwarz oder eben weiß als Farbe. Und wenn ich ein Teilbild über das andere schiebe, wird ersteres verdeckt.
|
|
Christian S.
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 23.12.16 15:28
Hier gibt es ein Bild von Paint unter XP: www.askdavetaylor.co...ot_windows_xp_winxp/
Die gesuchte Einstellung ist, soweit ich weiß, die ganz unten in der Werkzeugpalette (die mit dem Kubus, der Kugel und dem Zylinder)
//edit: die verlinkte Seite hat sonst nichts mit dem Problem zu tun, ich wollte nur nicht das Bild einfach "klauen".
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Für diesen Beitrag haben gedankt: Delphi-Laie, Mathematiker
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Fr 23.12.16 15:40
Jetzt habe ich es geschafft, ist doch abhängig von diesen beiden ominösen"Körpericons", danke!
Das untere Teilbild wird dann nicht überdeckt, sondern das obere ist transparent. Wußte ich bis eben noch nicht, daß so etwas mit Paint überhaupt möglich ist.
|
|
ub60
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Fr 23.12.16 16:08
Ich habe eben mal meine VM mit XP angeschmissen und siehe da, es geht:
Außerdem kann man das Ganze natürlich auch programmieren (ist ja schließlich ein Programmiererforum ):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var x, y : Integer; Wert1, Wert2 : TColor; begin for y:=0 to 199 do for x:=0 to 399 do begin Wert1:=Image_1.Canvas.Pixels[x, y]; Wert2:=Image_2.Canvas.Pixels[x, y]; if (Wert1=clBlack) AND (Wert2=clBlack) then Image_Ges.Canvas.Pixels[x, y]:=clBlack else Image_Ges.Canvas.Pixels[x, y]:=clWhite; end; end; |
Der Mathematiker war hier auch äußerst kooperativ (eventuell gar nicht mit Absicht ?). Es funktionieren nämlich z.B. auch OR, AND NOT, OR NOT und XOR.
Hier mal die Beweise:
AND:
OR:
ub60
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Mathematiker
|
|
ub60
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Fr 23.12.16 16:12
Ich schiebe mal noch die 3 restlichen Bilder nach (man darf nur 3 Bilder in einem Post einfügen):
XOR:
AND NOT
OR NOT
ub60
Einloggen, um Attachments anzusehen!
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 23.12.16 20:31
Hallo,
irgendwie fehlt eine Lösung für die Springer-Tour vom 17.12
Hier mal eine Version mit dem Kopf durch die Wand
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:
| program roessel; {$IFDEF FPC}{$MODE DELPHI}{$ELSE}{$APPTYPE CONSOLE}{$ENDIF} uses sysutils; const cLaenge = 8; cHoehe = 5; cCount = cLaenge*cHoehe;
type tSpielfeld = array[-1..cLaenge+2,-1..cHoehe+2] of boolean; tDelta = record dl,dh : integer; end; tarrDelta = array[0..7] of tDelta; tPosition = record actLaenge, actHoehe : integer; end; tAblauf = array[1..cCount] of tPosition;
const cDelta : tarrDelta = ((dl:-1;dh:-2), (dl:-1;dh:+2), (dl:-2;dh:-1), (dl:-2;dh:+1), (dl:+1;dh:-2), (dl:+1;dh:+2), (dl:+2;dh:-1), (dl:+2;dh:+1)); var Spielfeld : tSpielfeld; Ablauf : tAblauf; cnt,Anzahl: integer;
procedure Init(var sf:tSpielfeld); var l,h: integer; Begin cnt := cCount; Anzahl := 0; Fillchar(Ablauf,sizeof(Ablauf),#0); Fillchar(sf,sizeof(sf),chr(ord(True))); For l := 1 to cLaenge do For h := 1 to cHoehe do sf[l,h] := false; end;
procedure Spielzugausgeben; var l,h: integer; Begin l := cLaenge; For h := cCount downto 1 do Begin with Ablauf[h] do write(chr(actLaenge+64),'|',actHoehe,'->'); dec(l); If l <= 0 then Begin l := cLaenge; writeln; end; end; end;
procedure NextStep(position:tPosition); var dir: integer; neuPos : tPosition; begin with position do Spielfeld[actLaenge,actHoehe]:= true; Ablauf[cnt] := Position;
For dir := 0 to 7 do Begin neupos := Position; with neuPos do Begin actLaenge:= position.actLaenge +cDelta[dir].dl; actHoehe := position.actHoehe +cDelta[dir].dh; IF Not(Spielfeld[actLaenge,actHoehe]) then Begin dec(cnt); IF cnt <=1 then Begin inc(Anzahl); Ablauf[cnt] := neuPos; IF anzahl >=1 then Begin SpielZugAusgeben; Halt(0); end; end; NextStep(neuPos); inc(cnt); end; end; end;
with position do Spielfeld[actLaenge,actHoehe]:= false; end; var StartPosition : tPosition; Begin Init(Spielfeld); with StartPosition do Begin actLaenge:= 1; actHoehe := 1; end; NextStep(StartPosition); Spielzugausgeben; end. |
Gruß Horst
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 23.12.16 20:36
Hallo Horst,
Danke für die Lösung zum Springerproblem.
Es gibt eine heuristische Methode, die fast immer zu Ziel führt und die man per Hand spielen kann.
1) mit einem Randfeld beginnen
2) immer zu dem Feld mit der kleinsten Möglichkeit zum Weiterspielen springen
3) gibt es mehrere solche Felder, so möglichst am Spielfeldrand bleiben
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 23.12.16 20:56
Hallo,
de.wikipedia.org/wiki/Springerproblem gibt ja Tipps, aber irgendwie wollte es nicht so, wie ich es wollte.
Es gab auch keine Zugrücknahme, wie beim Kistenschieben.
Mir fiel const wege schach ein, aber das war mir zu aufwendig.
Gruß Horst
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 23.12.16 21:01
Horst_H hat folgendes geschrieben : | Es gab auch keine Zugrücknahme, wie beim Kistenschieben. |
Doch die gibt es. In der letzten Zeile steht:
"Durch Klicken auf eine Zahl werden alle Züge bis zu dieser Zahl rückgängig gemacht."
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|