Entwickler-Ecke

Ankündigungen - Adventsgewinnspiel 2007 - Paranuss 1: Karte


Martok - So 09.12.07 01:33
Titel: Adventsgewinnspiel 2007 - Paranuss 1: Karte
Eine Verständnisfrage hab ich noch.

Und zwar: sind die beiden im Anhang markierten Flächen als berührend definiert? Sie stehen ja nicht direkt Spitze auf Spitze, sondern haben eine echte Berührungs-"Kante"...

Ich würde sagen benachbart, aber wenn nicht, wäre Testbild07 mit einer Farbe weniger lösbar und mein Programm ne ganze Ecke komplizierter ;)


Narses - So 09.12.07 04:46

Moin!

user profile iconMartok hat folgendes geschrieben:
sind die beiden im Anhang markierten Flächen als berührend definiert? Sie stehen ja nicht direkt Spitze auf Spitze, sondern haben eine echte Berührungs-"Kante"...
Ja, genau das führt dazu, dass diese Flächen als "berührend" einzustufen sind (siehe anhängendes Beispielbild). In der diskreten Pixelmatrix ist einfach irgendwo eine Grenze zu ziehen, auch wenn es vom "draufsehen" vielleicht auf einen Punkt hinauslaufen würde. :?

cu
Narses


GTA-Place - So 09.12.07 10:27

Yeah, dann ist mein Programm fertig :)


Chryzler - So 09.12.07 11:10

user profile iconGTA-Place hat folgendes geschrieben:
46 Sekunden für die Deutschlandkarte. Dafür, dass der Scan nen coooolen Effekt hat, ist die Zeit in Ordnung ;-).

Die Deutschlandkarte färbt meins problemlos in 2,7 Sekunden, aber bei dem einfachsten Beispiel 04.bmp scheiterts. *Fehler such* :lupe:


GTA-Place - So 09.12.07 11:47

Na, lieber langsam, dafür präzise :-P


Chryzler - So 09.12.07 13:13

Soo, meins wäre jetzt auch fertig. :) Habs noch ein bisschen aufpoliert, die Fehler sind hoffentlich alle behoben. Dann kann ja nix mehr schief gehen. :P


Martok - So 09.12.07 13:35

user profile iconNarses hat folgendes geschrieben:
Ja, genau das führt dazu, dass diese Flächen als "berührend" einzustufen sind (siehe anhängendes Beispielbild).

Aha, danke!

Damit sind alle 3 Paranüsse gelöst. Nur noch mal Nachkontrolle und absenden ;)


Und was mach ich jetzt... *mehrnüssebrauch*


Sinspin - So 09.12.07 15:07

user profile iconChryzler hat folgendes geschrieben:
user profile iconGTA-Place hat folgendes geschrieben:
46 Sekunden für die Deutschlandkarte. Dafür, dass der Scan nen coooolen Effekt hat, ist die Zeit in Ordnung ;-).

Die Deutschlandkarte färbt meins problemlos in 2,7 Sekunden, ...


Hm, und ich mache mir seit gestern einen dicken Kopf wie ich das ganze noch schneller bekomme. Ich liege bei unter einer Sekunde wenn, ich visuellen Effekte ausschalte (AMD Athlon, 1,6GHZ).
Ich Teste auch mit selbst gebauten "Karten" die mehr Flächen haben Zb. bei 27 Flächen brauche ich 65 Sekunden! Das ist mir einfach zu viel.


Narses - Mo 10.12.07 14:03

Moin!

Achtung: Die bereits im Beispielbildarchiv enthaltene Definition, dass diagonal gegenüberliegende Flächen sich nicht berühren, gilt natürlich weiterhin! Zur Veranschaulichung noch ein Beispielbild im Anhang.

Die Antwort auf die Frage von user profile iconMartok ist lediglich eine zusätzliche Erläuterung, also eine Ergänzung!

cu
Narses


Sinspin - Mo 10.12.07 14:21

Die berühren sich ja aber doch alle mit einem Pixel. Außerdem sind die nicht diagonal gegenüberliegend, sondern waagerecht und senkrecht zueinander.


Narses - Mo 10.12.07 14:44

Moin!

user profile iconSinspin hat folgendes geschrieben:
Außerdem sind die nicht diagonal gegenüberliegend, sondern waagerecht und senkrecht zueinander.
Stimmt, die Linien sind diagonal, die Flächen stehen senkrecht und waagerecht zueinander. ;) Trotzdem ist der Fall analog zum Testbild 4 zu behandeln, dessen Lösung ich nochmal drangehangen habe.

user profile iconSinspin hat folgendes geschrieben:
Die berühren sich ja aber doch alle mit einem Pixel.
Von genau diesem Pixel in der Mitte ist die Rede: hier gilt der von user profile iconMartok angesprochene Fall nicht!

cu
Narses


Martok - Mo 10.12.07 16:00

Also wenn das auch ein Fall von Diagonal ist, hab ich ein Problem. Wie soll man eine solche 1px-Kante von einer echten 1px-Kante unterscheiden :shock:


Narses - Mo 10.12.07 16:15

Moin!

user profile iconMartok hat folgendes geschrieben:
Also wenn das auch ein Fall von Diagonal ist, hab ich ein Problem. Wie soll man eine solche 1px-Kante von einer echten 1px-Kante unterscheiden :shock:
Ich sag mal so: es geht und ist auch nicht schwer. ;)

cu
Narses


GTA-Place - Mo 10.12.07 16:50

Mh... jetzt verwirrt ihr mich. Meine Lösung sieht aus, wie die von Narses im Anhang, hab ich es dann richtig? :?:

EDIT: Achso, ihr bezieht euch auf dieses diagonale Bild oben. Moment...
EDIT2: Okay, ich hab auch ein Problem.


Chryzler - Mo 10.12.07 17:03

Und ich auch.. das ist ja doof.. :motz:


Sinspin - Mo 10.12.07 17:07

Hm, bei meiner Technik wäre das mit wenigen "Handgriffen" erledigt.
Bei den wirklich diagonalen ist ja auch nur ein Pixel dazwischen. Es hängt halt nur von der Technik ab die untersucht wer wen zum Nachbarn hat.


GTA-Place - Mo 10.12.07 17:54

Okay, ich glaube es klappt jetzt bei mir.

@Narses: Könntest du nochmal einen Fall posten, bei dem Diagonal zutrifft und einen Fall, bei dem Diagonal nicht zutrifft? Danke.


Narses - Di 11.12.07 00:36

Moin!

Hier also noch zwei Testbilder mit Lösungen, um das "Diagonalen-Problem" besser in den Griff zu kriegen. ;)

cu
Narses


GTA-Place - Di 11.12.07 07:47

Danke, das eine funktioniert, das andere nicht. Ist das übrigens gewollt, dass das nicht clBlack, sondern RGB(2, 4, 2); ist?


Narses - Di 11.12.07 14:44

Moin!

user profile iconGTA-Place hat folgendes geschrieben:
Ist das übrigens gewollt, dass das nicht clBlack, sondern RGB(2, 4, 2); ist?
Ist beim Konvertieren in GIF passiert, also Zufall. :? Ist aber eh kein korrektes Aufgabenbild, ist ja schon gefärbt. :zwinker: ;)

cu
Narses


GTA-Place - Di 11.12.07 16:22

Ich glaub es passt wieder, jetzt probier ich selber noch paar mal xD


Xion - Di 11.12.07 20:54

meins schafft die Deutschlandkarte in 1.4sec *angeb*. Nur mal so: Vieviele Farben sagt euer Proggy bei dieser Map? *snip* :)

Edit: Sorry, wenn da zu kleine Flächen dabei sein sollten

Edit2: Sorry @Admins, dachte nicht, dass es als Tipp gilt

Moderiert von user profile iconNarses: Tipp gelöscht. ;) Bitte keine eigenen Karten rausgeben, bis das Gewinnspiel vorbei ist! Danke.


Narses - Mi 12.12.07 00:28

Moin!

user profile iconChryzler hat hier eine Frage zur Verwendung von Fremdkomponenten [http://www.delphi-forum.de/viewtopic.php?p=476825#476825] gestellt. Wir haben das im Team besprochen und sind zu folgendem Ergebnis gekommen:

Grundsätzlich bleibt die Verwendung von Fremdkomponenten und Bibliotheken ausgeschlossen. In dem speziellen Fall der FloodFill-Klasse für C# [http://www.codeproject.com/KB/GDI-plus/queuelinearfloodfill.aspx] machen wir allerdings eine Ausnahme, da dies mit der VCL standardmäßig geht, in C# aber nicht. Durch die Ausnahme werden also die C#-Programmierer lediglich wieder den Delphianern gleichgestellt, was wir als vertretbar einstufen.

cu
Narses


Chryzler - Mi 12.12.07 15:37

Super, danke. :zustimm:


jaenicke - Sa 15.12.07 18:03

Soo, jetzt hab ich mich da auch mal drangemacht, für die Deutschlandkarte braucht mein Programm aber noch 46 Millisekunden, da werde ich vielleicht noch ein wenig optimieren ;-).


GTA-Place - Sa 15.12.07 19:08

Wer braucht schon FloodFill, mein Programm hat sowas auch nicht :eyecrazy:


jaenicke - So 16.12.07 00:13

Ich habe FloodFill benutzt, das nimmt einige Arbeit ab, ansonsten hätte ich den Algorithmus anders machen müssen.
Ich bin aber schon gespannt auf deinen Algorithmus, ich stelle es mir ohne FloodFill schwieriger vor. ;-)
Wie lange brauchst du, also dein Programm, denn ohne FloodFill?


Narses - So 16.12.07 01:14

Moin!

Ich möchte sicherheitshalber nochmal darauf hinweisen, dass Abgaben ohne den Quelltext der Anwendung ungültig sind und nicht gewertet werden! :mahn: ;)

cu
Narses


GTA-Place - So 16.12.07 10:18

user profile iconjaenicke hat folgendes geschrieben:
Wie lange brauchst du, also dein Programm, denn ohne FloodFill?

Deutschlandkarte:
- ganz ohne FloodFill: ~30 Sekunden
- mit FloodFill im 2. Teil: ~15 Sekunden
- mit FloodFill: bisher noch nicht getestet.

Ich hätte nur vorher auf FloodFill kommen müssen, aber jetzt lass ich es so ^_^


jaenicke - Mo 17.12.07 09:38

Soo, jetzt habe ich wie angekündigt noch etwas optimiert. Ergebnis: Auf einem 3700er Athlon 64 dauert die Deutschlandkarte nur noch 17 Millisekunden ;-). Und die Zeit werde ich auch noch versuchen zu drücken.

// EDIT: Oh oh, da war ein Fehler drin, jetzt stimmen nicht mehr alle Karten... :(
Also weiterhin 45 Millisekunden erstmal^^
// EDIT2:
Jetzt stimmts xD, also 17 Millisekunden braucht mein Programm jetzt ;-).


BenBE - Sa 22.12.07 16:51

Ach ja, kurze Frage:

Müssen bei den ausgemalten Karten die Farben komplett übereinstimmen oder muss lediglich die Graphenfärbung korrekt sein (d.h. die Färbung der Flächen die Bedingungen erfüllen)?

MfG,
BenBE.


Narses - Sa 22.12.07 21:32

Moin!

user profile iconBenBE hat folgendes geschrieben:
die Färbung der Flächen die Bedingungen erfüllen
Wenn du das (allgemein) korrekt hinkriegst, reicht´s. ;)

cu
Narses


Xion - So 23.12.07 11:12

ich vermute mal, man sollte den Quelltext auch kommentieren, oder? :lol: muss ich noch machen...


Narses - So 23.12.07 12:54

Moin!

user profile iconXion hat folgendes geschrieben:
ich vermute mal, man sollte den Quelltext auch kommentieren, oder?
Nein, das ist keine Bedingung - aber es "schadet" auch sicher nichts. ;)

cu
Narses


Xion - So 23.12.07 14:30

Hi,

habs aber trotzdem gemacht (so, dass man ungefähr weiß was vor sich geht) ;) will euch ja nicht unnötig Arbeit machen.

Xion


jaenicke - So 23.12.07 17:00

Ich auch, denn ich will das Programm ja hier dann auch vorstellen, wenn das Gewinnspiel vorbei ist. ;-)
Wie ich mittlerweile bemerkt habe ist in der Programmoberfläche bei mir noch ein klitzekleiner Fehler (Eventverknüpfung bei einem RadioButton vergessen xD) gewesen, hatte da aber schon auf Absenden geklickt (also nicht beim Upload-Formular sondern davor bei der Frage), aber Hauptsache das Programm selbst funktioniert.

Na jedenfalls bin ich gespannt, welche vielleicht noch schnelleren / besseren Lösungen hier dann noch gepostet werden. ;-)
Ich optimiere mein Programm evtl. auch noch etwas bzw. baue mehr Funktionen ein, mal sehen.