{"id":15813457,"url":"https://github.com/skn0tt/bwinf36a3","last_synced_at":"2025-04-01T00:43:33.597Z","repository":{"id":40355022,"uuid":"103287808","full_name":"Skn0tt/bwInf36A3","owner":"Skn0tt","description":"36. Bundeswettbewerb Informatik, Aufgabe 3: Dreiecke Zählen","archived":false,"fork":false,"pushed_at":"2023-12-15T02:37:17.000Z","size":1869,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-06T04:02:12.658Z","etag":null,"topics":["bwinf","geometry","graph-theory"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Skn0tt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-12T15:23:49.000Z","updated_at":"2018-04-07T09:11:57.000Z","dependencies_parsed_at":"2024-10-26T09:45:47.279Z","dependency_job_id":"39349f67-82fa-4b74-8d65-30ce88c34fa3","html_url":"https://github.com/Skn0tt/bwInf36A3","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skn0tt%2FbwInf36A3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skn0tt%2FbwInf36A3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skn0tt%2FbwInf36A3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skn0tt%2FbwInf36A3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Skn0tt","download_url":"https://codeload.github.com/Skn0tt/bwInf36A3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246563384,"owners_count":20797446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bwinf","geometry","graph-theory"],"created_at":"2024-10-05T04:02:16.704Z","updated_at":"2025-04-01T00:43:33.571Z","avatar_url":"https://github.com/Skn0tt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bwInf36A3\n36. Bundeswettbewerb Informatik, Aufgabe 3: Dreiecke zählen\n\n## Aufgabe\n\nJanina hat von ihrer Freundin Nadine ein Rätsel\naus dem Internet zugeschickt bekommen: Wie viele\nDreiecke sind in dieser Zeichnung zu sehen?\n\nNachdem Janina eine Weile Dreiecke gezählt hat,\nwill sie ihr Ergebnis im Internet nachprüfen. Sie\nfindet aber keine Lösung, sondern nur weitere\nRätsel dieser Art. Da sie sich nicht jedes Mal erneut\nans Zählen machen will, überlegt sie, ob sich\nsolche Rätsel mit einem Computer lösen lassen.\n\n### Aufgabenstellung\nVersetze dich in Janinas Lage und schreibe ein\nProgramm, das die Dreiecke in einer Rätsel-Zeichnung\nzählt. Eine Zeichnung besteht aus einigen Strecken.\nDu kannst davon ausgehen, dass keine zwei Strecken\nauf derselben Geraden liegen und dass sich nie mehr\nals zwei Strecken im gleichen Punkt schneiden.\nIn der obigen Zeichnung sind übrigens neun Dreiecke\nzu finden.\nWende dein Programm auf die Beispiele an, die du\nauf den BwInf-Webseiten findest.\n\n\n## Ansatz\n* Darstellung der Punkte u. Schnittpunkte in einen Graph\n* 3-Schrittige Kreisläufe finden\n\n## Todo\n- [x] Punkte einlesen\n- [x] Schnittpunkte bestimmen\n- [ ] Kreisläufe finden\n- [ ] Grafische Ausgabe\n\n## Notes\n\n### Punkte einlesen\nFunktion `List\u003cLine2D\u003e einlesen(File... files)`\n* Iteriert durch Dateien\n    * Scanner: 1ste Zeile wird übersprungen\n    * Iteriert durch Zeilen:\n        * Zeile an \" \" splitten\n        * Liste 2 neue Line2D anhängen\n     \n### Schnittpunkte bestimmen\n`Line2D.intersectsLine()` hilft ungemein\n* Eintragen aller Line2D in Hashmap\n    * Key: `line.toString()`\n    * Value: `new Node(line)`\n* Iterieren durch `lines`, Laufvariable: `line`\n    * Iterieren durch `lines`, Laufvariable: `vergleich`\n        * falls `line == vergleich`: Nächster Durchlauf (Um Selbst-Referenz zu vermeiden)\n        * else: `vergleich` zu Intersects von `line`'s Eintrag in der HashMap hinzufügen  \n## TODO\n- Point2D to Line2D\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskn0tt%2Fbwinf36a3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskn0tt%2Fbwinf36a3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskn0tt%2Fbwinf36a3/lists"}