Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   HQ9+fuck Interpreter (https://www.delphipraxis.net/146259-hq9-fuck-interpreter.html)

himitsu 21. Jan 2010 20:37

Re: HQ9+fuck Interpreter
 
Liste der Anhänge anzeigen (Anzahl: 4)
ich laß grad seit 'ner Weile 'ne modifizierte Version des "kleinen" Mandelbrotbildchen berechnen :wall:
aber schon erstaunlich, was man mit 8 Bit alles hinbekommt

FAlter 21. Jan 2010 20:54

Re: HQ9+fuck Interpreter
 
Verdammt, warn mich doch for das das nicht HQ9+fuck kompatibel ist. In dem crazy code kommen 9en vor und ich krieg immer wieder 99 bottles of beer. Bin schon ganz :drunken: nicht dass ich gleich :kotz: muss.

Nun, habe jetzt die 9en durch (nine) ersdetzt... und probier es mal im 7 bit Modus laufen zu lassen.

Gruß
FAlter

Mithrandir 21. Jan 2010 20:56

Re: HQ9+fuck Interpreter
 
*hust* Freaks.. *hust*

:mrgreen:

himitsu 21. Jan 2010 20:56

Re: HQ9+fuck Interpreter
 
Tschuldschung ... vergiß die Hs und Qs nicht :stupid:

hab noch ein Bild oben angehägt
und das ist zumindestens ein 8-Bit-Code ... bin mal gespannt, was bei bei 7 rauskommt.

FAlter 22. Jan 2010 08:33

Re: HQ9+fuck Interpreter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Er rechnet immer noch...

himitsu 22. Jan 2010 08:38

Re: HQ9+fuck Interpreter
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hätte den PC heute Nacht (um besser schlafen zu können) nicht nur auf Sparflamme laufen lassen sollen,
aber wer konnte denn Ahnen, daß es so lange dauert. :shock:

Aber die Auflösung ist doch schon beachtlich und mit viel mehr Zeit, wäre noch etwas mehr möglich
und das nur mit ein paar 8-Bit-Berechnungen.

[add]
Und noch was genial Einfaches oder einfach Geniales?

divBy0 22. Jan 2010 11:35

Re: HQ9+fuck Interpreter
 
:wiejetzt:

BF und die Ausgabe in ein Image? Oder hab ich was falsch verstanden?

Neutral General 22. Jan 2010 12:03

Re: HQ9+fuck Interpreter
 
Zitat:

Zitat von divBy0
:wiejetzt:

BF und die Ausgabe in ein Image? Oder hab ich was falsch verstanden?

Soweit ich das verstanden habe, hat himitsu ein Programm geschrieben welches das Text-Mandelbrot in ein Bild-Mandelbrot konvertiert.. Bin mir aber nicht sicher.
Alternativ könnte man (oder ich habs falsch verstanden und es wird tatsächlich so gemacht) die Standard-Ausgabe auch in eine Datei umleiten und Pixel für Pixel schreiben. (Der Bitmap Header ist mal ein anderes Thema :mrgreen:)

divBy0 22. Jan 2010 12:42

Re: HQ9+fuck Interpreter
 
Aber das konvertieren dauert ja nicht so lange...

Oder es läuft ein BF Programm und die Ausgabe sind dann Pixel und werden in das Image gezeichnet.

himitsu 22. Jan 2010 14:13

Re: HQ9+fuck Interpreter
 
Liste der Anhänge anzeigen (Anzahl: 2)
Also das BF-Programm erzeugt ein Bild in Form von Text (A-Z),
dazu hab ich mir ein Programm geschrieben (in Delphi), welches diesen Text in ein Bitmap übersetzt.
- A bis Z als Intensität und das Leerzeichen, bzw. alles Andere als ganz Schwarz.

Beitrag #11
> mandelbrot.txt = BF-Programm
> Mandelbrot - Text2Image.exe = der Converter

Der Converter ist auch nix Besonderes:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
  i, i2: Integer;
  S: String;
begin            
  Memo1.Hide; Button1.Hide; CheckBox1.Hide;
  SL := TStringList.Create;
  SL.Text := Memo1.Text;
  i2 := 0;
  for i := SL.Count - 1 downto 0 do
    if Trim(SL[i]) = '' then SL.Delete(i)
    else i2 := Max(Length(Trim(SL[i])), i2);
  with Image1.Picture.Bitmap do begin
    Width := i2;
    Height := SL.Count * 2;
    Canvas.Brush.Color := clBlack;
    Canvas.FillRect(Rect(0, 0, Width, Height));
    for i := Height div 2 - 1 downto 0 do begin
      S := SL[i];
      for i2 := Width - 1 downto 0 do
        if (i2 < Length(S)) and (S[i2 + 1] in ['A'..'Z']) then begin
          Canvas.Pixels[i2, i * 2] := (Ord(S[i2 + 1]) - Ord('@')) * 255 div 26 * $010101;
          Canvas.Pixels[i2, i * 2 + 1] := Canvas.Pixels[i2, i * 2];
        end;
    end;
    if CheckBox1.Checked then SaveToFile(ChangeFileExt(ParamStr(0), '.bmp'));
  end;
  SL.Free;
end;

Aber theoretisch wäre es möglich das Bitmap auch direkt in BF zu erzeugen und abzuspeichern.


Dieses BF-Programm erzeugt z.B. in der Standardausgabe ein Datei, welche man direkt als .COM abspeichern lassen sollte.
Diese .COM wiederrum ist ein 8-Bit-BF-Interpreter, mit welchem man ein BF-Programm "abspielen" kann.

Quasi das Henne-Ei-Problem, denn was war nun zuerst da?
> das BF-Programm, welches die .COM erzeugt
> oder die .COM, welche das BF-Programm verarbeiten kann



Aber Einiges kann ich schonmal sagen:
- ein BF-Programm zu schreiben ist relativ leicht, wenn man einmal verstanden hat, wie's geht
- dabei hilfreich ist auch der geringe Sprachumfang, von nur 6 Befehlen
- aber die Speicherverwaltung ist ein Akt
- man muß sich genau überlegen was man wie wo ablegt, um
> möglichst geringe Wege und und damit auch wenig/übersichtlichen Code zu erzeugen

Ein kleiner Fehler am Anfang (z.B. eine Variable/Speicherstelle vergessen und schon darf man womöglich das halbe Programm umschreiben. :wall:

Also ich kann es jedem nur empfehlen ... man lernt ganz neue Denkweisen, welche bestimmt auch in Delphi gut anzuwenden sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz