commit 50a55e19d6a1c3bfb9208c500d9346ffe39e6f68 Author: rattatwinko Date: Wed Oct 1 10:46:21 2025 +0200 initial commit diff --git a/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db b/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db new file mode 100644 index 0000000..cf49335 Binary files /dev/null and b/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db differ diff --git a/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db-shm b/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db-shm new file mode 100644 index 0000000..b50d2ba Binary files /dev/null and b/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db-shm differ diff --git a/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db-wal b/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db-wal new file mode 100644 index 0000000..7f406cb Binary files /dev/null and b/.vs/INF6B/CopilotIndices/17.14.1147.5054/CodeChunks.db-wal differ diff --git a/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db b/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db new file mode 100644 index 0000000..473fada Binary files /dev/null and b/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db differ diff --git a/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db-shm b/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db-shm new file mode 100644 index 0000000..447c9e8 Binary files /dev/null and b/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db-shm differ diff --git a/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db-wal b/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db-wal new file mode 100644 index 0000000..936ab21 Binary files /dev/null and b/.vs/INF6B/CopilotIndices/17.14.1147.5054/SemanticSymbols.db-wal differ diff --git a/.vs/INF6B/FileContentIndex/120608cd-fe1f-4687-8a47-63e07ce53524.vsidx b/.vs/INF6B/FileContentIndex/120608cd-fe1f-4687-8a47-63e07ce53524.vsidx new file mode 100644 index 0000000..44b4c28 Binary files /dev/null and b/.vs/INF6B/FileContentIndex/120608cd-fe1f-4687-8a47-63e07ce53524.vsidx differ diff --git a/.vs/INF6B/FileContentIndex/48b2a993-015c-4f2d-93e9-c5814c6ff25b.vsidx b/.vs/INF6B/FileContentIndex/48b2a993-015c-4f2d-93e9-c5814c6ff25b.vsidx new file mode 100644 index 0000000..a6bdbad Binary files /dev/null and b/.vs/INF6B/FileContentIndex/48b2a993-015c-4f2d-93e9-c5814c6ff25b.vsidx differ diff --git a/.vs/INF6B/FileContentIndex/80313e03-930a-4e19-985a-99b6160d2378.vsidx b/.vs/INF6B/FileContentIndex/80313e03-930a-4e19-985a-99b6160d2378.vsidx new file mode 100644 index 0000000..7df1e06 Binary files /dev/null and b/.vs/INF6B/FileContentIndex/80313e03-930a-4e19-985a-99b6160d2378.vsidx differ diff --git a/.vs/INF6B/FileContentIndex/bb6e26c1-f29c-445f-b808-f90900e71fa7.vsidx b/.vs/INF6B/FileContentIndex/bb6e26c1-f29c-445f-b808-f90900e71fa7.vsidx new file mode 100644 index 0000000..11e30cf Binary files /dev/null and b/.vs/INF6B/FileContentIndex/bb6e26c1-f29c-445f-b808-f90900e71fa7.vsidx differ diff --git a/.vs/INF6B/FileContentIndex/c38f89e9-ab1d-4187-b24b-9b43194dbf76.vsidx b/.vs/INF6B/FileContentIndex/c38f89e9-ab1d-4187-b24b-9b43194dbf76.vsidx new file mode 100644 index 0000000..f39d743 Binary files /dev/null and b/.vs/INF6B/FileContentIndex/c38f89e9-ab1d-4187-b24b-9b43194dbf76.vsidx differ diff --git a/.vs/INF6B/copilot-chat/70ec9632/sessions/8ac3004a-086d-4be0-bc2e-f25216c670c7 b/.vs/INF6B/copilot-chat/70ec9632/sessions/8ac3004a-086d-4be0-bc2e-f25216c670c7 new file mode 100644 index 0000000..fd0734a Binary files /dev/null and b/.vs/INF6B/copilot-chat/70ec9632/sessions/8ac3004a-086d-4be0-bc2e-f25216c670c7 differ diff --git a/.vs/INF6B/v17/.wsuo b/.vs/INF6B/v17/.wsuo new file mode 100644 index 0000000..072e40d Binary files /dev/null and b/.vs/INF6B/v17/.wsuo differ diff --git a/.vs/INF6B/v17/DocumentLayout.backup.json b/.vs/INF6B/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..ea3c189 --- /dev/null +++ b/.vs/INF6B/v17/DocumentLayout.backup.json @@ -0,0 +1,385 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\Sebastian\\Desktop\\INF6B\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\klimadatenhb\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:klimadatenhb\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\gl\u00FCcksrad.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:gl\u00FCcksspiele\\gl\u00FCcksrad.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\w\u00FCrfelspiel.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:gl\u00FCcksspiele\\w\u00FCrfelspiel.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_1.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:listen\u00FCbungen\\item_1.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\buchstabenz\u00E4hlen\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:buchstabenz\u00E4hlen\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_3.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:listen\u00FCbungen\\item_3.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\fotovolatik\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:fotovolatik\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_2.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:listen\u00FCbungen\\item_2.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\geburtstagliste\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:geburtstagliste\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\guessinggame\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:guessinggame\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\scraper\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:scraper\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe2.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe2.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe3.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe3.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:zahlenraten\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\capped.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:zahlenraten\\capped.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe1.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe1.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe4.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe4.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\turtle\\a1.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:turtle\\a1.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\passwortgenerator.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:zahlenraten\\passwortgenerator.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:umsatzsteuer\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:umsatzsteuer\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 256, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\klimadatenhb\\main.py", + "RelativeDocumentMoniker": "klimadatenhb\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\klimadatenhb\\main.py", + "RelativeToolTip": "klimadatenhb\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:45:37.157Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "gl\u00FCcksrad.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "RelativeDocumentMoniker": "gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "RelativeToolTip": "gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:43:13.076Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "w\u00FCrfelspiel.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "RelativeDocumentMoniker": "gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "RelativeToolTip": "gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:41:01.821Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\buchstabenz\u00E4hlen\\main.py", + "RelativeDocumentMoniker": "buchstabenz\u00E4hlen\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\buchstabenz\u00E4hlen\\main.py", + "RelativeToolTip": "buchstabenz\u00E4hlen\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:39:20.765Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "item_1.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_1.py", + "RelativeDocumentMoniker": "listen\u00FCbungen\\item_1.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_1.py", + "RelativeToolTip": "listen\u00FCbungen\\item_1.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAHAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:35:13.759Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "item_3.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_3.py", + "RelativeDocumentMoniker": "listen\u00FCbungen\\item_3.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_3.py", + "RelativeToolTip": "listen\u00FCbungen\\item_3.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAIAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:36:32.29Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "item_2.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_2.py", + "RelativeDocumentMoniker": "listen\u00FCbungen\\item_2.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_2.py", + "RelativeToolTip": "listen\u00FCbungen\\item_2.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAlAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:35:50.763Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\fotovolatik\\main.py", + "RelativeDocumentMoniker": "fotovolatik\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\fotovolatik\\main.py", + "RelativeToolTip": "fotovolatik\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:17:09.513Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\guessinggame\\main.py", + "RelativeDocumentMoniker": "guessinggame\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\guessinggame\\main.py", + "RelativeToolTip": "guessinggame\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAGwBAAARAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-26T15:47:40.141Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\scraper\\main.py", + "RelativeDocumentMoniker": "scraper\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\scraper\\main.py", + "RelativeToolTip": "scraper\\main.py", + "ViewState": "AgIAADEAAAAAAAAAAADwv1MAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-26T15:27:59.944Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\geburtstagliste\\main.py", + "RelativeDocumentMoniker": "geburtstagliste\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\geburtstagliste\\main.py", + "RelativeToolTip": "geburtstagliste\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-24T08:56:40.671Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "capped.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\capped.py", + "RelativeDocumentMoniker": "zahlenraten\\capped.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\capped.py", + "RelativeToolTip": "zahlenraten\\capped.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAGAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-17T08:46:27.347Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "aufgabe4.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe4.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe4.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe4.py", + "RelativeToolTip": "schleifen\\aufgabe4.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-17T08:41:00.987Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "a1.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\turtle\\a1.py", + "RelativeDocumentMoniker": "turtle\\a1.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\turtle\\a1.py", + "RelativeToolTip": "turtle\\a1.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAZAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-16T07:47:21.142Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "aufgabe2.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe2.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe2.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe2.py", + "RelativeToolTip": "schleifen\\aufgabe2.py", + "ViewState": "AgIAAAwAAAAAAAAAAAAAABYAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:28:03.49Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "aufgabe1.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe1.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe1.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe1.py", + "RelativeToolTip": "schleifen\\aufgabe1.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAKAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:15:24.876Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "aufgabe3.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe3.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe3.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe3.py", + "RelativeToolTip": "schleifen\\aufgabe3.py", + "ViewState": "AgIAAAkAAAAAAAAAAAAQwBYAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:40:20.69Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\main.py", + "RelativeDocumentMoniker": "zahlenraten\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\main.py", + "RelativeToolTip": "zahlenraten\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:03:08.184Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "passwortgenerator.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\passwortgenerator.py", + "RelativeDocumentMoniker": "zahlenraten\\passwortgenerator.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\passwortgenerator.py", + "RelativeToolTip": "zahlenraten\\passwortgenerator.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAaAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:58:19.564Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "index.html", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\index.html", + "RelativeDocumentMoniker": "umsatzsteuer\\index.html", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\index.html", + "RelativeToolTip": "umsatzsteuer\\index.html", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|", + "WhenOpened": "2025-09-15T10:01:17.687Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\main.py", + "RelativeDocumentMoniker": "umsatzsteuer\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\main.py", + "RelativeToolTip": "umsatzsteuer\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T09:40:35.564Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/INF6B/v17/DocumentLayout.json b/.vs/INF6B/v17/DocumentLayout.json new file mode 100644 index 0000000..ea3c189 --- /dev/null +++ b/.vs/INF6B/v17/DocumentLayout.json @@ -0,0 +1,385 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\Sebastian\\Desktop\\INF6B\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\klimadatenhb\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:klimadatenhb\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\gl\u00FCcksrad.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:gl\u00FCcksspiele\\gl\u00FCcksrad.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\w\u00FCrfelspiel.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:gl\u00FCcksspiele\\w\u00FCrfelspiel.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_1.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:listen\u00FCbungen\\item_1.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\buchstabenz\u00E4hlen\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:buchstabenz\u00E4hlen\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_3.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:listen\u00FCbungen\\item_3.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\fotovolatik\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:fotovolatik\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_2.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:listen\u00FCbungen\\item_2.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\geburtstagliste\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:geburtstagliste\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\guessinggame\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:guessinggame\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\scraper\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:scraper\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe2.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe2.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe3.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe3.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:zahlenraten\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\capped.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:zahlenraten\\capped.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe1.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe1.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe4.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:schleifen\\aufgabe4.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\turtle\\a1.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:turtle\\a1.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\passwortgenerator.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:zahlenraten\\passwortgenerator.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:umsatzsteuer\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:umsatzsteuer\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 256, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\klimadatenhb\\main.py", + "RelativeDocumentMoniker": "klimadatenhb\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\klimadatenhb\\main.py", + "RelativeToolTip": "klimadatenhb\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:45:37.157Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "gl\u00FCcksrad.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "RelativeDocumentMoniker": "gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "RelativeToolTip": "gl\u00FCcksspiele\\gl\u00FCcksrad.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:43:13.076Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "w\u00FCrfelspiel.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "RelativeDocumentMoniker": "gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "RelativeToolTip": "gl\u00FCcksspiele\\w\u00FCrfelspiel.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:41:01.821Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\buchstabenz\u00E4hlen\\main.py", + "RelativeDocumentMoniker": "buchstabenz\u00E4hlen\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\buchstabenz\u00E4hlen\\main.py", + "RelativeToolTip": "buchstabenz\u00E4hlen\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:39:20.765Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "item_1.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_1.py", + "RelativeDocumentMoniker": "listen\u00FCbungen\\item_1.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_1.py", + "RelativeToolTip": "listen\u00FCbungen\\item_1.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAHAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:35:13.759Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "item_3.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_3.py", + "RelativeDocumentMoniker": "listen\u00FCbungen\\item_3.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_3.py", + "RelativeToolTip": "listen\u00FCbungen\\item_3.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAIAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:36:32.29Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "item_2.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_2.py", + "RelativeDocumentMoniker": "listen\u00FCbungen\\item_2.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\listen\u00FCbungen\\item_2.py", + "RelativeToolTip": "listen\u00FCbungen\\item_2.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAlAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:35:50.763Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\fotovolatik\\main.py", + "RelativeDocumentMoniker": "fotovolatik\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\fotovolatik\\main.py", + "RelativeToolTip": "fotovolatik\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-29T10:17:09.513Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\guessinggame\\main.py", + "RelativeDocumentMoniker": "guessinggame\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\guessinggame\\main.py", + "RelativeToolTip": "guessinggame\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAGwBAAARAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-26T15:47:40.141Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\scraper\\main.py", + "RelativeDocumentMoniker": "scraper\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\scraper\\main.py", + "RelativeToolTip": "scraper\\main.py", + "ViewState": "AgIAADEAAAAAAAAAAADwv1MAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-26T15:27:59.944Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\geburtstagliste\\main.py", + "RelativeDocumentMoniker": "geburtstagliste\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\geburtstagliste\\main.py", + "RelativeToolTip": "geburtstagliste\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-24T08:56:40.671Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "capped.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\capped.py", + "RelativeDocumentMoniker": "zahlenraten\\capped.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\capped.py", + "RelativeToolTip": "zahlenraten\\capped.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAGAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-17T08:46:27.347Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "aufgabe4.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe4.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe4.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe4.py", + "RelativeToolTip": "schleifen\\aufgabe4.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-17T08:41:00.987Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "a1.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\turtle\\a1.py", + "RelativeDocumentMoniker": "turtle\\a1.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\turtle\\a1.py", + "RelativeToolTip": "turtle\\a1.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAZAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-16T07:47:21.142Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "aufgabe2.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe2.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe2.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe2.py", + "RelativeToolTip": "schleifen\\aufgabe2.py", + "ViewState": "AgIAAAwAAAAAAAAAAAAAABYAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:28:03.49Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "aufgabe1.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe1.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe1.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe1.py", + "RelativeToolTip": "schleifen\\aufgabe1.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAAKAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:15:24.876Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "aufgabe3.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe3.py", + "RelativeDocumentMoniker": "schleifen\\aufgabe3.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\schleifen\\aufgabe3.py", + "RelativeToolTip": "schleifen\\aufgabe3.py", + "ViewState": "AgIAAAkAAAAAAAAAAAAQwBYAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:40:20.69Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\main.py", + "RelativeDocumentMoniker": "zahlenraten\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\main.py", + "RelativeToolTip": "zahlenraten\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:03:08.184Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "passwortgenerator.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\passwortgenerator.py", + "RelativeDocumentMoniker": "zahlenraten\\passwortgenerator.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\zahlenraten\\passwortgenerator.py", + "RelativeToolTip": "zahlenraten\\passwortgenerator.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAaAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T10:58:19.564Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "index.html", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\index.html", + "RelativeDocumentMoniker": "umsatzsteuer\\index.html", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\index.html", + "RelativeToolTip": "umsatzsteuer\\index.html", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|", + "WhenOpened": "2025-09-15T10:01:17.687Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "main.py", + "DocumentMoniker": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\main.py", + "RelativeDocumentMoniker": "umsatzsteuer\\main.py", + "ToolTip": "C:\\Users\\Sebastian\\Desktop\\INF6B\\umsatzsteuer\\main.py", + "RelativeToolTip": "umsatzsteuer\\main.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-09-15T09:40:35.564Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..93668db --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,8 @@ +{ + "ExpandedNodes": [ + "", + "\\fotovolatik" + ], + "SelectedNode": "\\fotovolatik\\main.py", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..6c28889 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/buchstabenzählen/main.py b/buchstabenzählen/main.py new file mode 100644 index 0000000..e68f777 --- /dev/null +++ b/buchstabenzählen/main.py @@ -0,0 +1,8 @@ +# -*- coding: ansi -*- +satz = input("Bitte gib einen Satz ein: ") + +buchstabe = input("Welchen Buchstaben mchtest du zhlen? ") + +anzahl = satz.count(buchstabe) + +print(f"Der Buchstabe '{buchstabe}' kommt {anzahl} mal im Satz vor.") diff --git a/co2/co2.py b/co2/co2.py new file mode 100644 index 0000000..4be5707 --- /dev/null +++ b/co2/co2.py @@ -0,0 +1,38 @@ +def co2_steuer(): + print("Wählen Sie die Antriebsart:") + print("1 = E-Auto") + print("2 = Hybrid") + print("3 = Benziner") + print("4 = Diesel") + + antriebsart = input("Bitte Antriebsart wählen (1-4): ") + ps = int(input("Bitte PS-Zahl eingeben: ")) + + betrag_monat = 0 + stufe = "" + + if antriebsart == "1": + stufe = "E-Auto" + betrag_monat = 0 + elif antriebsart == "2": + stufe = "Hybrid" + betrag_monat = 35 if ps <= 150 else 50 + elif antriebsart == "3": + stufe = "Benziner" + betrag_monat = 55 if ps <= 150 else 70 + elif antriebsart == "4": + stufe = "Diesel" + betrag_monat = 75 if ps <= 150 else 90 + else: + print("Ungültige Eingabe!") + return + + betrag_jahr = betrag_monat * 12 + + print(f"\nFahrzeugtyp: {stufe}") + print(f"PS-Zahl: {ps}") + print(f"Monatliche CO2-Abgabe: {betrag_monat} €") + print(f"Jährliche CO2-Abgabe: {betrag_jahr} €") + +if __name__ == "__main__": + co2_steuer() diff --git a/co2/www/index.html b/co2/www/index.html new file mode 100644 index 0000000..def3209 --- /dev/null +++ b/co2/www/index.html @@ -0,0 +1,106 @@ + + + + + + co2 + + + +

Co2 rechner

+ + + + + + + + + +
+ Bitte Daten eingeben und auf Berechnen klicken. +
+ + + + diff --git a/desktop.ini b/desktop.ini new file mode 100644 index 0000000..357d411 --- /dev/null +++ b/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\WINDOWS\System32\SHELL32.dll,261 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/fotovolatik/main.py b/fotovolatik/main.py new file mode 100644 index 0000000..a3145ca --- /dev/null +++ b/fotovolatik/main.py @@ -0,0 +1,14 @@ +# -*- coding: ansi -*- +import random + +bezirke = [ + "Graz", "Graz-Umgebung", "Bruck-Mrzzuschlag", "Deutschlandsberg", + "Hartberg-Frstenfeld", "Leibnitz", "Leoben", "Liezen", + "Murau", "Murtal", "Sdoststeiermark", "Voitsberg", "Weiz" +] + +gewaehlte_bezirke = random.sample(bezirke, 5) + +print("Gefrderte Bezirke im heurigen Jahr:") +for bezirk in gewaehlte_bezirke: + print("-", bezirk) diff --git a/geburtstagliste/main.py b/geburtstagliste/main.py new file mode 100644 index 0000000..8408553 --- /dev/null +++ b/geburtstagliste/main.py @@ -0,0 +1,27 @@ +from datetime import datetime + +people = {} + +print("Gib Geburtstage ein (q = break)") + +while True: + name = input("Name: ").strip() + if name.lower() == "q": + break + + geburtstag = input("Geburtstag (Format: DD.MM.YYYY): ").strip() + if geburtstag.lower() == "q": + break + + try: + # Parse into a datetime.date object + birthday = datetime.strptime(geburtstag, "%d.%m.%Y").date() + people[name] = birthday + print(f"{name} am {birthday.strftime('%d.%m.%Y')} gespeichert.\n") + + except ValueError: + pass + +print(" Gespeicherte Geburtstage ") +for name, birthday in people.items(): + print(f"{name}: {birthday.strftime('%d.%m.%Y')}") diff --git a/glücksspiele/glücksrad.py b/glücksspiele/glücksrad.py new file mode 100644 index 0000000..39cef12 --- /dev/null +++ b/glücksspiele/glücksrad.py @@ -0,0 +1,21 @@ +# -*- coding: ansi -*- +import random + +einkauf = float(input("Bitte geben Sie die Einkaufssumme ein: ")) + +gewinne = ( + [100] * 1 + + [50] * 2 + + [20] * 3 + + [10] * 5 + + [5] * 8 + + [0] * 10 +) + +gewinn_prozent = random.choice(gewinne) +zu_zahlen = einkauf * (100 - gewinn_prozent) / 100 + +# Ausgabe +print(f"Glcksrad-Ergebnis: {gewinn_prozent}% Rabatt") +print(f"Ursprngliche Summe: {einkauf:.2f} Euro") +print(f"Zu zahlende Summe: {zu_zahlen:.2f} Euro") diff --git a/glücksspiele/würfelspiel.py b/glücksspiele/würfelspiel.py new file mode 100644 index 0000000..b00cfc2 --- /dev/null +++ b/glücksspiele/würfelspiel.py @@ -0,0 +1,26 @@ +# -*- coding: ansi -*- +import random + +wuerfel1 = 0 +wuerfel2 = 1 +versuche = 0 + +while wuerfel1 != wuerfel2: + versuche += 1 + wuerfel1 = random.randint(1, 6) + wuerfel2 = random.randint(1, 6) + print(f"Versuch {versuche}: Wrfel1 = {wuerfel1}, Wrfel2 = {wuerfel2}") + +print("\nBeide Wrfel zeigen denselben Wert!") +print(f"Anzahl der Versuche: {versuche}") + +if versuche < 3: + gewinn = 100 +elif versuche < 6: + gewinn = 50 +elif versuche <= 10: + gewinn = 20 +else: + gewinn = 0 + +print(f"Gewinn: {gewinn} Euro") diff --git a/guessinggame/images/Christina_Anna_Zisser_BEd._(ZIC).jpg b/guessinggame/images/Christina_Anna_Zisser_BEd._(ZIC).jpg new file mode 100644 index 0000000..5b5ad4a Binary files /dev/null and b/guessinggame/images/Christina_Anna_Zisser_BEd._(ZIC).jpg differ diff --git a/guessinggame/images/David_Altmann_BEd._(ALD).jpg b/guessinggame/images/David_Altmann_BEd._(ALD).jpg new file mode 100644 index 0000000..91a1f55 Binary files /dev/null and b/guessinggame/images/David_Altmann_BEd._(ALD).jpg differ diff --git a/guessinggame/images/David_Gamperl_MEd_(GDA).jpg b/guessinggame/images/David_Gamperl_MEd_(GDA).jpg new file mode 100644 index 0000000..665c508 Binary files /dev/null and b/guessinggame/images/David_Gamperl_MEd_(GDA).jpg differ diff --git a/guessinggame/images/HR_Mag._Reinhard_Pllabauer_(DIR).jpg b/guessinggame/images/HR_Mag._Reinhard_Pllabauer_(DIR).jpg new file mode 100644 index 0000000..b1dace4 Binary files /dev/null and b/guessinggame/images/HR_Mag._Reinhard_Pllabauer_(DIR).jpg differ diff --git a/guessinggame/images/Ing._Mag._Friedrich_Saurer_(SA).jpg b/guessinggame/images/Ing._Mag._Friedrich_Saurer_(SA).jpg new file mode 100644 index 0000000..1467fa0 Binary files /dev/null and b/guessinggame/images/Ing._Mag._Friedrich_Saurer_(SA).jpg differ diff --git a/guessinggame/images/Kerstin_Jud-Mund_BTh_(JK).jpg b/guessinggame/images/Kerstin_Jud-Mund_BTh_(JK).jpg new file mode 100644 index 0000000..b757022 Binary files /dev/null and b/guessinggame/images/Kerstin_Jud-Mund_BTh_(JK).jpg differ diff --git a/guessinggame/images/MMag._Helena_Maria_Franc_(FH).jpg b/guessinggame/images/MMag._Helena_Maria_Franc_(FH).jpg new file mode 100644 index 0000000..cf42e66 Binary files /dev/null and b/guessinggame/images/MMag._Helena_Maria_Franc_(FH).jpg differ diff --git a/guessinggame/images/MMag._Katrin_Haagen_(HA).jpg b/guessinggame/images/MMag._Katrin_Haagen_(HA).jpg new file mode 100644 index 0000000..b5769db Binary files /dev/null and b/guessinggame/images/MMag._Katrin_Haagen_(HA).jpg differ diff --git a/guessinggame/images/MMag._Markus_Mnich_(MM).jpg b/guessinggame/images/MMag._Markus_Mnich_(MM).jpg new file mode 100644 index 0000000..b197529 Binary files /dev/null and b/guessinggame/images/MMag._Markus_Mnich_(MM).jpg differ diff --git a/guessinggame/images/MMag._Matthias_Scherf_(SCM).jpg b/guessinggame/images/MMag._Matthias_Scherf_(SCM).jpg new file mode 100644 index 0000000..87b2933 Binary files /dev/null and b/guessinggame/images/MMag._Matthias_Scherf_(SCM).jpg differ diff --git a/guessinggame/images/MMag._Petra_Grabner_(GP).jpg b/guessinggame/images/MMag._Petra_Grabner_(GP).jpg new file mode 100644 index 0000000..85ad543 Binary files /dev/null and b/guessinggame/images/MMag._Petra_Grabner_(GP).jpg differ diff --git a/guessinggame/images/Mag._Alexander_Prucker_(PA).jpg b/guessinggame/images/Mag._Alexander_Prucker_(PA).jpg new file mode 100644 index 0000000..e8e82f8 Binary files /dev/null and b/guessinggame/images/Mag._Alexander_Prucker_(PA).jpg differ diff --git a/guessinggame/images/Mag._Alexandra_Fuchs_(FA).jpg b/guessinggame/images/Mag._Alexandra_Fuchs_(FA).jpg new file mode 100644 index 0000000..6386eee Binary files /dev/null and b/guessinggame/images/Mag._Alexandra_Fuchs_(FA).jpg differ diff --git a/guessinggame/images/Mag._Andrea_Handler_(HR).jpg b/guessinggame/images/Mag._Andrea_Handler_(HR).jpg new file mode 100644 index 0000000..cc08c0e Binary files /dev/null and b/guessinggame/images/Mag._Andrea_Handler_(HR).jpg differ diff --git a/guessinggame/images/Mag._Anja_Kandlbauer_(KA).jpg b/guessinggame/images/Mag._Anja_Kandlbauer_(KA).jpg new file mode 100644 index 0000000..bd9b5e4 Binary files /dev/null and b/guessinggame/images/Mag._Anja_Kandlbauer_(KA).jpg differ diff --git a/guessinggame/images/Mag._Barbara_Gottmann_(GOB).jpg b/guessinggame/images/Mag._Barbara_Gottmann_(GOB).jpg new file mode 100644 index 0000000..b62866f Binary files /dev/null and b/guessinggame/images/Mag._Barbara_Gottmann_(GOB).jpg differ diff --git a/guessinggame/images/Mag._Barbara_Milchrahm_(MBA).jpg b/guessinggame/images/Mag._Barbara_Milchrahm_(MBA).jpg new file mode 100644 index 0000000..d68d799 Binary files /dev/null and b/guessinggame/images/Mag._Barbara_Milchrahm_(MBA).jpg differ diff --git a/guessinggame/images/Mag._Benedikt_Neuhold_(NB).jpg b/guessinggame/images/Mag._Benedikt_Neuhold_(NB).jpg new file mode 100644 index 0000000..852b1c6 Binary files /dev/null and b/guessinggame/images/Mag._Benedikt_Neuhold_(NB).jpg differ diff --git a/guessinggame/images/Mag._Bianca_Radke_(RAD).jpg b/guessinggame/images/Mag._Bianca_Radke_(RAD).jpg new file mode 100644 index 0000000..59cc22b Binary files /dev/null and b/guessinggame/images/Mag._Bianca_Radke_(RAD).jpg differ diff --git a/guessinggame/images/Mag._Bianca_Zehrfuchs_(ZEB).jpg b/guessinggame/images/Mag._Bianca_Zehrfuchs_(ZEB).jpg new file mode 100644 index 0000000..eb61700 Binary files /dev/null and b/guessinggame/images/Mag._Bianca_Zehrfuchs_(ZEB).jpg differ diff --git a/guessinggame/images/Mag._Birgit_Schttl_(SBI).jpg b/guessinggame/images/Mag._Birgit_Schttl_(SBI).jpg new file mode 100644 index 0000000..4238fc6 Binary files /dev/null and b/guessinggame/images/Mag._Birgit_Schttl_(SBI).jpg differ diff --git a/guessinggame/images/Mag._Carina_Kern_(KEC).jpg b/guessinggame/images/Mag._Carina_Kern_(KEC).jpg new file mode 100644 index 0000000..7f3ddd2 Binary files /dev/null and b/guessinggame/images/Mag._Carina_Kern_(KEC).jpg differ diff --git a/guessinggame/images/Mag._Christa_Grabenhofer_(GRC).jpg b/guessinggame/images/Mag._Christa_Grabenhofer_(GRC).jpg new file mode 100644 index 0000000..d1a6995 Binary files /dev/null and b/guessinggame/images/Mag._Christa_Grabenhofer_(GRC).jpg differ diff --git a/guessinggame/images/Mag._Christiane_Lechner_(LC).jpg b/guessinggame/images/Mag._Christiane_Lechner_(LC).jpg new file mode 100644 index 0000000..55e51b9 Binary files /dev/null and b/guessinggame/images/Mag._Christiane_Lechner_(LC).jpg differ diff --git a/guessinggame/images/Mag._Christoph_Hammer_(HAC).jpg b/guessinggame/images/Mag._Christoph_Hammer_(HAC).jpg new file mode 100644 index 0000000..9ae8667 Binary files /dev/null and b/guessinggame/images/Mag._Christoph_Hammer_(HAC).jpg differ diff --git a/guessinggame/images/Mag._Christoph_Nhrer_(NC).jpg b/guessinggame/images/Mag._Christoph_Nhrer_(NC).jpg new file mode 100644 index 0000000..e4ce106 Binary files /dev/null and b/guessinggame/images/Mag._Christoph_Nhrer_(NC).jpg differ diff --git a/guessinggame/images/Mag._Dagmar_Fidler_(FD).jpg b/guessinggame/images/Mag._Dagmar_Fidler_(FD).jpg new file mode 100644 index 0000000..5ceb93c Binary files /dev/null and b/guessinggame/images/Mag._Dagmar_Fidler_(FD).jpg differ diff --git a/guessinggame/images/Mag._Daniel_Harrer_(HAD).jpg b/guessinggame/images/Mag._Daniel_Harrer_(HAD).jpg new file mode 100644 index 0000000..fe9837a Binary files /dev/null and b/guessinggame/images/Mag._Daniel_Harrer_(HAD).jpg differ diff --git a/guessinggame/images/Mag._Daniel_Pauer-Jochum_(PJD).jpg b/guessinggame/images/Mag._Daniel_Pauer-Jochum_(PJD).jpg new file mode 100644 index 0000000..69d7546 Binary files /dev/null and b/guessinggame/images/Mag._Daniel_Pauer-Jochum_(PJD).jpg differ diff --git a/guessinggame/images/Mag._Daniel_Schneider_(SCD).jpg b/guessinggame/images/Mag._Daniel_Schneider_(SCD).jpg new file mode 100644 index 0000000..bd45af1 Binary files /dev/null and b/guessinggame/images/Mag._Daniel_Schneider_(SCD).jpg differ diff --git a/guessinggame/images/Mag._Dr._Georg_Schller-Petz_(SPG).jpg b/guessinggame/images/Mag._Dr._Georg_Schller-Petz_(SPG).jpg new file mode 100644 index 0000000..352c2f5 Binary files /dev/null and b/guessinggame/images/Mag._Dr._Georg_Schller-Petz_(SPG).jpg differ diff --git a/guessinggame/images/Mag._Elisabeth_Fedder_(FEE).jpg b/guessinggame/images/Mag._Elisabeth_Fedder_(FEE).jpg new file mode 100644 index 0000000..86651db Binary files /dev/null and b/guessinggame/images/Mag._Elisabeth_Fedder_(FEE).jpg differ diff --git a/guessinggame/images/Mag._Erich_Grabenhofer_(GRA).jpg b/guessinggame/images/Mag._Erich_Grabenhofer_(GRA).jpg new file mode 100644 index 0000000..7c3a58e Binary files /dev/null and b/guessinggame/images/Mag._Erich_Grabenhofer_(GRA).jpg differ diff --git a/guessinggame/images/Mag._Eva_Falkner_(FE).jpg b/guessinggame/images/Mag._Eva_Falkner_(FE).jpg new file mode 100644 index 0000000..6ab6a4d Binary files /dev/null and b/guessinggame/images/Mag._Eva_Falkner_(FE).jpg differ diff --git a/guessinggame/images/Mag._Eva_Zinggl_(ZI).jpg b/guessinggame/images/Mag._Eva_Zinggl_(ZI).jpg new file mode 100644 index 0000000..ed319d9 Binary files /dev/null and b/guessinggame/images/Mag._Eva_Zinggl_(ZI).jpg differ diff --git a/guessinggame/images/Mag._Florian_Bundschuh_(BFL).jpg b/guessinggame/images/Mag._Florian_Bundschuh_(BFL).jpg new file mode 100644 index 0000000..de344c9 Binary files /dev/null and b/guessinggame/images/Mag._Florian_Bundschuh_(BFL).jpg differ diff --git a/guessinggame/images/Mag._Franz_Dopona_(DOP).jpg b/guessinggame/images/Mag._Franz_Dopona_(DOP).jpg new file mode 100644 index 0000000..17bcb9e Binary files /dev/null and b/guessinggame/images/Mag._Franz_Dopona_(DOP).jpg differ diff --git a/guessinggame/images/Mag._Franz_Fischer_(FF).jpg b/guessinggame/images/Mag._Franz_Fischer_(FF).jpg new file mode 100644 index 0000000..130d732 Binary files /dev/null and b/guessinggame/images/Mag._Franz_Fischer_(FF).jpg differ diff --git a/guessinggame/images/Mag._Gerald_Geier_(GG).jpg b/guessinggame/images/Mag._Gerald_Geier_(GG).jpg new file mode 100644 index 0000000..afc1803 Binary files /dev/null and b/guessinggame/images/Mag._Gerald_Geier_(GG).jpg differ diff --git a/guessinggame/images/Mag._Gnter_Ertl_(ER).jpg b/guessinggame/images/Mag._Gnter_Ertl_(ER).jpg new file mode 100644 index 0000000..848424e Binary files /dev/null and b/guessinggame/images/Mag._Gnter_Ertl_(ER).jpg differ diff --git a/guessinggame/images/Mag._Gnther_Paulitsch_(PAG).jpg b/guessinggame/images/Mag._Gnther_Paulitsch_(PAG).jpg new file mode 100644 index 0000000..207aa73 Binary files /dev/null and b/guessinggame/images/Mag._Gnther_Paulitsch_(PAG).jpg differ diff --git a/guessinggame/images/Mag._Hannes_Hamilton_MA_(HH).jpg b/guessinggame/images/Mag._Hannes_Hamilton_MA_(HH).jpg new file mode 100644 index 0000000..32d6ed5 Binary files /dev/null and b/guessinggame/images/Mag._Hannes_Hamilton_MA_(HH).jpg differ diff --git a/guessinggame/images/Mag._Heidemarie_Lantos_(LAH).jpg b/guessinggame/images/Mag._Heidemarie_Lantos_(LAH).jpg new file mode 100644 index 0000000..e0315e9 Binary files /dev/null and b/guessinggame/images/Mag._Heidemarie_Lantos_(LAH).jpg differ diff --git a/guessinggame/images/Mag._Helene_Narnhofer_(NH).jpg b/guessinggame/images/Mag._Helene_Narnhofer_(NH).jpg new file mode 100644 index 0000000..7b8fcfb Binary files /dev/null and b/guessinggame/images/Mag._Helene_Narnhofer_(NH).jpg differ diff --git a/guessinggame/images/Mag._Helene_Strau_(SH).jpg b/guessinggame/images/Mag._Helene_Strau_(SH).jpg new file mode 100644 index 0000000..6308cfa Binary files /dev/null and b/guessinggame/images/Mag._Helene_Strau_(SH).jpg differ diff --git a/guessinggame/images/Mag._Helga_Oswald_(OSH).jpg b/guessinggame/images/Mag._Helga_Oswald_(OSH).jpg new file mode 100644 index 0000000..03eb1bf Binary files /dev/null and b/guessinggame/images/Mag._Helga_Oswald_(OSH).jpg differ diff --git a/guessinggame/images/Mag._Helga_Schttengruber_(SHE).jpg b/guessinggame/images/Mag._Helga_Schttengruber_(SHE).jpg new file mode 100644 index 0000000..f68cb25 Binary files /dev/null and b/guessinggame/images/Mag._Helga_Schttengruber_(SHE).jpg differ diff --git a/guessinggame/images/Mag._Isabella_Krahulec_(KRA).jpg b/guessinggame/images/Mag._Isabella_Krahulec_(KRA).jpg new file mode 100644 index 0000000..e1c0bd4 Binary files /dev/null and b/guessinggame/images/Mag._Isabella_Krahulec_(KRA).jpg differ diff --git a/guessinggame/images/Mag._Julia_Hutz_(HU).jpg b/guessinggame/images/Mag._Julia_Hutz_(HU).jpg new file mode 100644 index 0000000..681ad5c Binary files /dev/null and b/guessinggame/images/Mag._Julia_Hutz_(HU).jpg differ diff --git a/guessinggame/images/Mag._Julia_Sulzer_(SU).jpg b/guessinggame/images/Mag._Julia_Sulzer_(SU).jpg new file mode 100644 index 0000000..7e7ea35 Binary files /dev/null and b/guessinggame/images/Mag._Julia_Sulzer_(SU).jpg differ diff --git a/guessinggame/images/Mag._Jutta_Scherbel_(SC).jpg b/guessinggame/images/Mag._Jutta_Scherbel_(SC).jpg new file mode 100644 index 0000000..3d743ab Binary files /dev/null and b/guessinggame/images/Mag._Jutta_Scherbel_(SC).jpg differ diff --git a/guessinggame/images/Mag._Karin_Achten_(AKA).jpg b/guessinggame/images/Mag._Karin_Achten_(AKA).jpg new file mode 100644 index 0000000..b3e93d3 Binary files /dev/null and b/guessinggame/images/Mag._Karin_Achten_(AKA).jpg differ diff --git a/guessinggame/images/Mag._Karin_Gstrein_(GK).jpg b/guessinggame/images/Mag._Karin_Gstrein_(GK).jpg new file mode 100644 index 0000000..d4b1831 Binary files /dev/null and b/guessinggame/images/Mag._Karin_Gstrein_(GK).jpg differ diff --git a/guessinggame/images/Mag._Katharina_Ehall_(EK).jpg b/guessinggame/images/Mag._Katharina_Ehall_(EK).jpg new file mode 100644 index 0000000..18566ce Binary files /dev/null and b/guessinggame/images/Mag._Katharina_Ehall_(EK).jpg differ diff --git a/guessinggame/images/Mag._Katharina_Gaulhofer_(GKA).jpg b/guessinggame/images/Mag._Katharina_Gaulhofer_(GKA).jpg new file mode 100644 index 0000000..bb84ae1 Binary files /dev/null and b/guessinggame/images/Mag._Katharina_Gaulhofer_(GKA).jpg differ diff --git a/guessinggame/images/Mag._Katharina_Tegischer_(TEK).jpg b/guessinggame/images/Mag._Katharina_Tegischer_(TEK).jpg new file mode 100644 index 0000000..b1ff374 Binary files /dev/null and b/guessinggame/images/Mag._Katharina_Tegischer_(TEK).jpg differ diff --git a/guessinggame/images/Mag._Katja_Narnhofer_(NK).jpg b/guessinggame/images/Mag._Katja_Narnhofer_(NK).jpg new file mode 100644 index 0000000..1c208a8 Binary files /dev/null and b/guessinggame/images/Mag._Katja_Narnhofer_(NK).jpg differ diff --git a/guessinggame/images/Mag._Kornelia_Wolf_(WOK).jpg b/guessinggame/images/Mag._Kornelia_Wolf_(WOK).jpg new file mode 100644 index 0000000..86b0e63 Binary files /dev/null and b/guessinggame/images/Mag._Kornelia_Wolf_(WOK).jpg differ diff --git a/guessinggame/images/Mag._Lisa_Glockner_(GL).jpg b/guessinggame/images/Mag._Lisa_Glockner_(GL).jpg new file mode 100644 index 0000000..33621d0 Binary files /dev/null and b/guessinggame/images/Mag._Lisa_Glockner_(GL).jpg differ diff --git a/guessinggame/images/Mag._Lisa_Schller-Petz_(SPL).jpg b/guessinggame/images/Mag._Lisa_Schller-Petz_(SPL).jpg new file mode 100644 index 0000000..c0e41d1 Binary files /dev/null and b/guessinggame/images/Mag._Lisa_Schller-Petz_(SPL).jpg differ diff --git a/guessinggame/images/Mag._Lukas_Tegischer_(TL).jpg b/guessinggame/images/Mag._Lukas_Tegischer_(TL).jpg new file mode 100644 index 0000000..43dceb4 Binary files /dev/null and b/guessinggame/images/Mag._Lukas_Tegischer_(TL).jpg differ diff --git a/guessinggame/images/Mag._Maria_Gaulhofer_(GM).jpg b/guessinggame/images/Mag._Maria_Gaulhofer_(GM).jpg new file mode 100644 index 0000000..9fd7124 Binary files /dev/null and b/guessinggame/images/Mag._Maria_Gaulhofer_(GM).jpg differ diff --git a/guessinggame/images/Mag._Marion_Stromberger_(STM).jpg b/guessinggame/images/Mag._Marion_Stromberger_(STM).jpg new file mode 100644 index 0000000..077d9da Binary files /dev/null and b/guessinggame/images/Mag._Marion_Stromberger_(STM).jpg differ diff --git a/guessinggame/images/Mag._Martina_Beiglbck_(BM).jpg b/guessinggame/images/Mag._Martina_Beiglbck_(BM).jpg new file mode 100644 index 0000000..ab9917a Binary files /dev/null and b/guessinggame/images/Mag._Martina_Beiglbck_(BM).jpg differ diff --git a/guessinggame/images/Mag._Patrick_Kogler_(KP).jpg b/guessinggame/images/Mag._Patrick_Kogler_(KP).jpg new file mode 100644 index 0000000..7098aa1 Binary files /dev/null and b/guessinggame/images/Mag._Patrick_Kogler_(KP).jpg differ diff --git a/guessinggame/images/Mag._Paul_Fuchs_(FP).jpg b/guessinggame/images/Mag._Paul_Fuchs_(FP).jpg new file mode 100644 index 0000000..41a2473 Binary files /dev/null and b/guessinggame/images/Mag._Paul_Fuchs_(FP).jpg differ diff --git a/guessinggame/images/Mag._Philipp_Kerschbaumer_(KE).jpg b/guessinggame/images/Mag._Philipp_Kerschbaumer_(KE).jpg new file mode 100644 index 0000000..c9dae0a Binary files /dev/null and b/guessinggame/images/Mag._Philipp_Kerschbaumer_(KE).jpg differ diff --git a/guessinggame/images/Mag._Philipp_Mrth_(MP).jpg b/guessinggame/images/Mag._Philipp_Mrth_(MP).jpg new file mode 100644 index 0000000..7ff12d3 Binary files /dev/null and b/guessinggame/images/Mag._Philipp_Mrth_(MP).jpg differ diff --git a/guessinggame/images/Mag._Rainer_Fink_(FIR).jpg b/guessinggame/images/Mag._Rainer_Fink_(FIR).jpg new file mode 100644 index 0000000..144dd62 Binary files /dev/null and b/guessinggame/images/Mag._Rainer_Fink_(FIR).jpg differ diff --git a/guessinggame/images/Mag._Reinhard_Rottensteiner_(RO).jpg b/guessinggame/images/Mag._Reinhard_Rottensteiner_(RO).jpg new file mode 100644 index 0000000..05a31aa Binary files /dev/null and b/guessinggame/images/Mag._Reinhard_Rottensteiner_(RO).jpg differ diff --git a/guessinggame/images/Mag._Sabrina_Zehrfuchs_(ZES).jpg b/guessinggame/images/Mag._Sabrina_Zehrfuchs_(ZES).jpg new file mode 100644 index 0000000..75ffc83 Binary files /dev/null and b/guessinggame/images/Mag._Sabrina_Zehrfuchs_(ZES).jpg differ diff --git a/guessinggame/images/Mag._Silvia_Seewald_(SES).jpg b/guessinggame/images/Mag._Silvia_Seewald_(SES).jpg new file mode 100644 index 0000000..63cccdb Binary files /dev/null and b/guessinggame/images/Mag._Silvia_Seewald_(SES).jpg differ diff --git a/guessinggame/images/Mag._Sonja_Inschlag_(INS).jpg b/guessinggame/images/Mag._Sonja_Inschlag_(INS).jpg new file mode 100644 index 0000000..f98f6a1 Binary files /dev/null and b/guessinggame/images/Mag._Sonja_Inschlag_(INS).jpg differ diff --git a/guessinggame/images/Mag._Sonja_Jambrovic_(JA).jpg b/guessinggame/images/Mag._Sonja_Jambrovic_(JA).jpg new file mode 100644 index 0000000..69591fe Binary files /dev/null and b/guessinggame/images/Mag._Sonja_Jambrovic_(JA).jpg differ diff --git a/guessinggame/images/Mag._Thomas_Reiterer_(RT).jpg b/guessinggame/images/Mag._Thomas_Reiterer_(RT).jpg new file mode 100644 index 0000000..2712d99 Binary files /dev/null and b/guessinggame/images/Mag._Thomas_Reiterer_(RT).jpg differ diff --git a/guessinggame/images/Mag._Thomas_Schleimer_(SCT).jpg b/guessinggame/images/Mag._Thomas_Schleimer_(SCT).jpg new file mode 100644 index 0000000..3de8497 Binary files /dev/null and b/guessinggame/images/Mag._Thomas_Schleimer_(SCT).jpg differ diff --git a/guessinggame/images/Mag._Thomas_Urban_(UR).jpg b/guessinggame/images/Mag._Thomas_Urban_(UR).jpg new file mode 100644 index 0000000..e964895 Binary files /dev/null and b/guessinggame/images/Mag._Thomas_Urban_(UR).jpg differ diff --git a/guessinggame/images/Mag._Ulrike_Pelzl_(PU).jpg b/guessinggame/images/Mag._Ulrike_Pelzl_(PU).jpg new file mode 100644 index 0000000..47a796a Binary files /dev/null and b/guessinggame/images/Mag._Ulrike_Pelzl_(PU).jpg differ diff --git a/guessinggame/images/Mag._Veronika_Steiner_(SV).jpg b/guessinggame/images/Mag._Veronika_Steiner_(SV).jpg new file mode 100644 index 0000000..aeee546 Binary files /dev/null and b/guessinggame/images/Mag._Veronika_Steiner_(SV).jpg differ diff --git a/guessinggame/images/Mag._Viktoria_Greimel_(GV).jpg b/guessinggame/images/Mag._Viktoria_Greimel_(GV).jpg new file mode 100644 index 0000000..55631fd Binary files /dev/null and b/guessinggame/images/Mag._Viktoria_Greimel_(GV).jpg differ diff --git a/guessinggame/images/Mag._Werner_Postl_(POW).jpg b/guessinggame/images/Mag._Werner_Postl_(POW).jpg new file mode 100644 index 0000000..dfd36e8 Binary files /dev/null and b/guessinggame/images/Mag._Werner_Postl_(POW).jpg differ diff --git a/guessinggame/images/Mag._Wolfgang_Fink_(FI).jpg b/guessinggame/images/Mag._Wolfgang_Fink_(FI).jpg new file mode 100644 index 0000000..30a0084 Binary files /dev/null and b/guessinggame/images/Mag._Wolfgang_Fink_(FI).jpg differ diff --git a/guessinggame/images/Mag_Andrea_Hadolt_(HAA).jpg b/guessinggame/images/Mag_Andrea_Hadolt_(HAA).jpg new file mode 100644 index 0000000..fd2378e Binary files /dev/null and b/guessinggame/images/Mag_Andrea_Hadolt_(HAA).jpg differ diff --git a/guessinggame/images/Mag_Jrgen_Scherf_(SCJ).jpg b/guessinggame/images/Mag_Jrgen_Scherf_(SCJ).jpg new file mode 100644 index 0000000..8e6fa9f Binary files /dev/null and b/guessinggame/images/Mag_Jrgen_Scherf_(SCJ).jpg differ diff --git a/guessinggame/images/Mag_Michael_Noll_(NM).jpg b/guessinggame/images/Mag_Michael_Noll_(NM).jpg new file mode 100644 index 0000000..887e689 Binary files /dev/null and b/guessinggame/images/Mag_Michael_Noll_(NM).jpg differ diff --git a/guessinggame/images/Marcellina_Abdelmesih_BEd_(ABM).jpg b/guessinggame/images/Marcellina_Abdelmesih_BEd_(ABM).jpg new file mode 100644 index 0000000..f3d2741 Binary files /dev/null and b/guessinggame/images/Marcellina_Abdelmesih_BEd_(ABM).jpg differ diff --git a/guessinggame/images/Miriam_Weinmller-Schweighofer_BA_MA_(WEI).jpg b/guessinggame/images/Miriam_Weinmller-Schweighofer_BA_MA_(WEI).jpg new file mode 100644 index 0000000..03c2693 Binary files /dev/null and b/guessinggame/images/Miriam_Weinmller-Schweighofer_BA_MA_(WEI).jpg differ diff --git a/guessinggame/images/OStR.Mag._Irmgard_Schneider_(SNI).jpg b/guessinggame/images/OStR.Mag._Irmgard_Schneider_(SNI).jpg new file mode 100644 index 0000000..e39f71d Binary files /dev/null and b/guessinggame/images/OStR.Mag._Irmgard_Schneider_(SNI).jpg differ diff --git a/guessinggame/images/OStR._Mag._Ursula_Liebich_(LIU).jpg b/guessinggame/images/OStR._Mag._Ursula_Liebich_(LIU).jpg new file mode 100644 index 0000000..b267cca Binary files /dev/null and b/guessinggame/images/OStR._Mag._Ursula_Liebich_(LIU).jpg differ diff --git a/guessinggame/images/Sarah_Retter_BEd._(RES).jpg b/guessinggame/images/Sarah_Retter_BEd._(RES).jpg new file mode 100644 index 0000000..c1cfcf0 Binary files /dev/null and b/guessinggame/images/Sarah_Retter_BEd._(RES).jpg differ diff --git a/guessinggame/images/Sophie_Sinkovits_BEd._(SIS).jpg b/guessinggame/images/Sophie_Sinkovits_BEd._(SIS).jpg new file mode 100644 index 0000000..3e9b21a Binary files /dev/null and b/guessinggame/images/Sophie_Sinkovits_BEd._(SIS).jpg differ diff --git a/guessinggame/images/Thomas_Michler-Kappel_BEd._(MIT).jpg b/guessinggame/images/Thomas_Michler-Kappel_BEd._(MIT).jpg new file mode 100644 index 0000000..d3e0e64 Binary files /dev/null and b/guessinggame/images/Thomas_Michler-Kappel_BEd._(MIT).jpg differ diff --git a/guessinggame/images/VL_Anna_Maria_Dopona_(DOA).jpg b/guessinggame/images/VL_Anna_Maria_Dopona_(DOA).jpg new file mode 100644 index 0000000..0ace982 Binary files /dev/null and b/guessinggame/images/VL_Anna_Maria_Dopona_(DOA).jpg differ diff --git a/guessinggame/images/VL_Christian_Schirnhofer_(SCC).jpg b/guessinggame/images/VL_Christian_Schirnhofer_(SCC).jpg new file mode 100644 index 0000000..70a693f Binary files /dev/null and b/guessinggame/images/VL_Christian_Schirnhofer_(SCC).jpg differ diff --git a/guessinggame/images/Yasmin_Sharawy_(SHY).jpg b/guessinggame/images/Yasmin_Sharawy_(SHY).jpg new file mode 100644 index 0000000..b757022 Binary files /dev/null and b/guessinggame/images/Yasmin_Sharawy_(SHY).jpg differ diff --git a/guessinggame/main.py b/guessinggame/main.py new file mode 100644 index 0000000..c761ec0 --- /dev/null +++ b/guessinggame/main.py @@ -0,0 +1,606 @@ +#!/usr/bin/env python3 +""" +Face Guessing Game - Simplified version with auto-advance and no repeats +""" + +import os +import random +import re +from pathlib import Path +from PIL import Image +import io +import base64 +from flask import Flask, render_template_string, request, jsonify +import threading +import time +import webbrowser +import cv2 +import numpy as np +from functools import lru_cache + +app = Flask(__name__) + +class FaceGuessingGame: + def __init__(self, images_dir="./images/"): + self.images_dir = Path(images_dir) + self.used_images = set() + self.available_images = [] + self.current_image = None + self.current_answer = None + self.score = 0 + self.total_games = 0 + self.face_cascade = None + self.load_face_detector() + self.load_images() + + def load_face_detector(self): + """Load face detection cascade classifier""" + try: + cascade_path = cv2.data.haarcascades + 'haarcascade_frontalface_default.xml' + if os.path.exists(cascade_path): + self.face_cascade = cv2.CascadeClassifier(cascade_path) + print("✅ Face detector loaded") + else: + print("⚠️ Using fallback cropping") + except: + self.face_cascade = None + + def load_images(self): + """Load all image files from the images directory""" + if not self.images_dir.exists(): + self.images_dir.mkdir(exist_ok=True) + print(f"📁 Created images directory: {self.images_dir}") + + image_extensions = {'.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff'} + all_images = [ + f for f in self.images_dir.iterdir() + if f.is_file() and f.suffix.lower() in image_extensions + ] + + self.available_images = all_images.copy() + self.used_images.clear() + + if all_images: + print(f"✅ Loaded {len(all_images)} images") + else: + print("⚠️ No images found - add images to ./images/ folder") + + def filename_to_name(self, filename): + """Convert filename to readable name""" + name = filename.stem + name = re.sub(r'[_-]', ' ', name) + name = re.sub(r'\s+', ' ', name).strip().title() + return name + + def get_random_image(self): + """Get a random unused image, reset if all used""" + if not self.available_images: + return None + + if len(self.used_images) >= len(self.available_images): + # Reset if all images have been used + self.used_images.clear() + print("🔄 All images used - resetting game") + + available = [img for img in self.available_images if img not in self.used_images] + if not available: + return None + + image_file = random.choice(available) + self.used_images.add(image_file) + return image_file + + @lru_cache(maxsize=50) + def crop_face_portion_cached(self, image_path_str, crop_ratio): + """Cached version of face cropping""" + image_path = Path(image_path_str) + try: + result = self.detect_faces(image_path) + if result is None: + return self.crop_random_portion(image_path, crop_ratio) + + faces, img = result + + if len(faces) == 0: + return self.crop_random_portion(image_path, crop_ratio) + + # Use the largest face found + x, y, w, h = sorted(faces, key=lambda x: x[2] * x[3], reverse=True)[0] + + height, width = img.shape[:2] + center_x = x + w // 2 + center_y = y + h // 2 + + # Ultra-hard cropping for higher difficulties + if crop_ratio <= 0.08: + crop_width = int(w * 0.4) + crop_height = int(h * 0.3) + center_y = y + int(h * 0.6) + elif crop_ratio <= 0.12: + crop_width = int(w * 0.5) + crop_height = int(h * 0.4) + center_y = y + int(h * random.choice([0.3, 0.5, 0.7])) + else: + crop_width = int(w * (0.3 + crop_ratio)) + crop_height = int(h * (0.3 + crop_ratio)) + + crop_x1 = max(0, center_x - crop_width // 2) + crop_y1 = max(0, center_y - crop_height // 2) + crop_x2 = min(width, center_x + crop_width // 2) + crop_y2 = min(height, center_y + crop_height // 2) + + if (crop_x2 - crop_x1) < 50 or (crop_y2 - crop_y1) < 50: + crop_x1, crop_y1, crop_x2, crop_y2 = x, y, x + w, y + h + + cropped_img = img[crop_y1:crop_y2, crop_x1:crop_x2] + cropped_img_rgb = cv2.cvtColor(cropped_img, cv2.COLOR_BGR2RGB) + pil_img = Image.fromarray(cropped_img_rgb) + + buffer = io.BytesIO() + pil_img.save(buffer, format='JPEG', quality=85) + img_str = base64.b64encode(buffer.getvalue()).decode() + + return f"data:image/jpeg;base64,{img_str}" + + except Exception as e: + return self.crop_random_portion(image_path, crop_ratio) + + def detect_faces(self, image_path): + """Detect faces in image""" + try: + img = cv2.imread(str(image_path)) + if img is None: + return None + + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + + if self.face_cascade is not None: + faces = self.face_cascade.detectMultiScale(gray, 1.1, 5, minSize=(30, 30)) + else: + height, width = gray.shape + faces = [(0, 0, width, height)] + + return faces, img + except: + return None + + def crop_random_portion(self, image_path, crop_ratio): + """Fallback cropping method""" + try: + with Image.open(image_path) as img: + if img.mode != 'RGB': + img = img.convert('RGB') + + width, height = img.size + crop_width = max(50, int(width * crop_ratio)) + crop_height = max(50, int(height * crop_ratio)) + + x = random.randint(0, max(0, width - crop_width)) + y = random.randint(0, max(0, height - crop_height)) + + cropped = img.crop((x, y, x + crop_width, y + crop_height)) + + buffer = io.BytesIO() + cropped.save(buffer, format='JPEG', quality=85) + img_str = base64.b64encode(buffer.getvalue()).decode() + + return f"data:image/jpeg;base64,{img_str}" + except: + return None + + def new_game(self, difficulty='normal'): + """Start a new game with unused image""" + image_file = self.get_random_image() + if not image_file: + return None, None + + self.current_image = image_file + self.current_answer = self.filename_to_name(image_file) + + crop_ratios = { + 'easy': 0.6, 'normal': 0.4, 'hard': 0.25, + 'expert': 0.15, 'insane': 0.12, 'extreme': 0.08 + } + + crop_ratio = crop_ratios.get(difficulty, 0.4) + cropped_image = self.crop_face_portion_cached(str(image_file), crop_ratio) + + return cropped_image, self.current_answer + + def check_guess(self, guess): + """Check if guess is correct (lenient matching)""" + if not self.current_answer or not guess: + return False + + guess_clean = re.sub(r'[^a-zA-Z0-9\s]', '', guess.strip().lower()) + answer_clean = re.sub(r'[^a-zA-Z0-9\s]', '', self.current_answer.lower()) + + # Exact match + if guess_clean == answer_clean: + return True + + # Partial match (at least one word matches) + guess_words = set(guess_clean.split()) + answer_words = set(answer_clean.split()) + + return len(guess_words & answer_words) > 0 + + def update_score(self, correct): + """Update game statistics""" + self.total_games += 1 + if correct: + self.score += 1 + +# Initialize game +game = FaceGuessingGame() + +# Ultra-simple UI HTML Template +HTML_TEMPLATE = """ + + + + + + Face Guess + + + +
+

Rate:

+ +
+
+
Score
+
0
+
+
+
Accuracy
+
0%
+
+
+ + Who is this? + +
+ +
+ +
+ + +
+ +
+ + +
+ + + + +""" + +@app.route('/') +def index(): + """Main game page""" + return render_template_string(HTML_TEMPLATE) + +@app.route('/check_images') +def check_images(): + """Check if images are available""" + return jsonify({ + 'has_images': len(game.available_images) > 0, + 'count': len(game.available_images) + }) + +@app.route('/new_game', methods=['POST']) +def new_game(): + """Start a new game""" + data = request.get_json() + difficulty = data.get('difficulty', 'normal') + + image_data, answer = game.new_game(difficulty) + + if image_data: + return jsonify({ + 'success': True, + 'image_data': image_data + }) + else: + return jsonify({ + 'success': False, + 'message': 'No images available' + }) + +@app.route('/guess', methods=['POST']) +def make_guess(): + """Submit a guess""" + data = request.get_json() + guess = data.get('guess', '') + + correct = game.check_guess(guess) + game.update_score(correct) + + accuracy = round((game.score / game.total_games * 100) if game.total_games > 0 else 0) + + return jsonify({ + 'correct': correct, + 'answer': game.current_answer, + 'score': game.score, + 'total_games': game.total_games, + 'accuracy': accuracy + }) + +@app.route('/skip') +def skip_game(): + """Skip current game""" + game.update_score(False) + + accuracy = round((game.score / game.total_games * 100) if game.total_games > 0 else 0) + + return jsonify({ + 'answer': game.current_answer, + 'score': game.score, + 'total_games': game.total_games, + 'accuracy': accuracy + }) + +def open_browser(): + """Open browser after delay""" + time.sleep(1.5) + webbrowser.open('http://127.0.0.1:5000') + +if __name__ == '__main__': + print("http://127.0.0.1:5000") + + browser_thread = threading.Thread(target=open_browser) + browser_thread.daemon = True + browser_thread.start() + + try: + app.run(debug=False, host='127.0.0.1', port=5000, use_reloader=False) + except KeyboardInterrupt: + pass \ No newline at end of file diff --git a/klimadatenhb/main.py b/klimadatenhb/main.py new file mode 100644 index 0000000..2df7e9c --- /dev/null +++ b/klimadatenhb/main.py @@ -0,0 +1,39 @@ +# -*- coding: ansi -*- +temperaturen = [1.5, 3.2, 7.5, 12.3, 16.8, 20.1, 22.5, 21.9, 17.5, 12.0, 6.0, 2.5] +niederschlaege = [35, 42, 50, 60, 75, 90, 95, 80, 70, 65, 55, 40] + +def durchschnitt(liste): + return sum(liste) / len(liste) + +def menue(): + print("\n--- KLIMADATEN HARTBERG ---") + print("1: Durchschnittliche Jahrestemperatur") + print("2: Durchschnittlicher Jahresniederschlag") + print("3: Hchst- und Tiefsttemperatur") + print("4: Hchster und niedrigster Niederschlag") + print("5: Beenden") + +while True: + menue() + wahl = input("Welche Auswertung mchten Sie? (1-5): ") + + if wahl == "1": + print(f"Durchschnittliche Jahrestemperatur: {durchschnitt(temperaturen):.2f} C") + + elif wahl == "2": + print(f"Durchschnittlicher Jahresniederschlag: {durchschnitt(niederschlaege):.2f} mm") + + elif wahl == "3": + print(f"Hchste Temperatur: {max(temperaturen)} C") + print(f"Niedrigste Temperatur: {min(temperaturen)} C") + + elif wahl == "4": + print(f"Hchster Niederschlag: {max(niederschlaege)} mm") + print(f"Niedrigster Niederschlag: {min(niederschlaege)} mm") + + elif wahl == "5": + print("Programm beendet.") + break + + else: + print("Ungltige Eingabe, bitte nochmals versuchen!") diff --git a/listenübungen/item_1.py b/listenübungen/item_1.py new file mode 100644 index 0000000..05486cb --- /dev/null +++ b/listenübungen/item_1.py @@ -0,0 +1,10 @@ +import random + +anzahl = 10 + +zahlen = [random.randint(1, 100) for _ in range(anzahl)] + +print("Zufallszahlen (Mehrfach erlaubt):") +for z in zahlen: + print(z, end=" ") +print() diff --git a/listenübungen/item_2.py b/listenübungen/item_2.py new file mode 100644 index 0000000..e9fadd3 --- /dev/null +++ b/listenübungen/item_2.py @@ -0,0 +1,9 @@ +import random + +anzahl = 10 + +zahlen = random.sample(range(1, 101), anzahl) + +print("Zufallszahlen (ohne Wiederholungen):") +for z in zahlen: + print(z) diff --git a/listenübungen/item_3.py b/listenübungen/item_3.py new file mode 100644 index 0000000..5b4f67c --- /dev/null +++ b/listenübungen/item_3.py @@ -0,0 +1,21 @@ +# -*- coding: ansi -*- +import random + +anzahl = int(input("Wie viele Zufallszahlen sollen gespeichert werden? ")) + +zahlen = random.sample(range(1, 101), anzahl) + +wahl = input("Mchten Sie die ganze Liste sehen (L) oder nur einen bestimmten Eintrag (E)? ").strip().lower() + +if wahl == "l": + print("Die ganze Liste:") + for z in zahlen: + print(z) +elif wahl == "e": + index = int(input(f"Welchen Eintrag (1 bis {anzahl}) mchten Sie sehen? ")) + if 1 <= index <= anzahl: + print(f"Eintrag {index}: {zahlen[index - 1]}") + else: + print("Ungltige Eingabe!") +else: + print("Ungltige Auswahl!") diff --git a/plotting.py b/plotting.py new file mode 100644 index 0000000..befec77 --- /dev/null +++ b/plotting.py @@ -0,0 +1,11 @@ +import matplotlib as plt +import numpy as np + +def plot_sine(): + xpoints = np.array([1,8]) + ypoints = np.array([3,10]) + + plt.plot(xpoints,ypoints) + plt.show() + +plot_sine() \ No newline at end of file diff --git a/schleifen/aufgabe1.py b/schleifen/aufgabe1.py new file mode 100644 index 0000000..d83f2e9 --- /dev/null +++ b/schleifen/aufgabe1.py @@ -0,0 +1,30 @@ +import random + +#utf-8 erlaubt keine e + +weight = { + "Kirsche": 8, + "Orange": 5, + "Zitrone": 5, + "Apfel": 7, +} + +count = { + "Kirsche": 0, + "Orange": 0, + "Zitrone": 0, + "Apfel": 0, +} + +total_weight = 0 +target_weight = 250 + +while total_weight < target_weight - 5: + fruit = random.choice(list(weight.keys())) + total_weight += weight[fruit] + count[fruit] += 1 + +print("Zusammensetzung") +for fruit, amount in count.items(): + print(f"{fruit}: {amount} Stueck") +print(f"Gesamtgewicht: {total_weight}") \ No newline at end of file diff --git a/schleifen/aufgabe2.py b/schleifen/aufgabe2.py new file mode 100644 index 0000000..c24bbb0 --- /dev/null +++ b/schleifen/aufgabe2.py @@ -0,0 +1,39 @@ +import random + +people = 300 + +a1 = 0 +a2 = 0 +a3 = 0 + +for _ in range(people): + choice = random.randint(1,3) + + match choice: + case 1: + a1 +=1 + case 2: + a2 += 1 + case 3: + a3 += 1 + case _: + pass + + +a1 = a1 / people * 100 +a2 = a2 / people * 100 +a3 = a3 / people * 100 + +# :.2f rundet das ergebnis auf 2 komma stellen! +# .round geht auch aber das :.2f ist effizienter hier! + +print(f""" +Wahlergebnise: +--------------------- +Wahl 1: {a1:.2f} % +Wahl 2: {a2:.2f} % +Wahl 3: {a3:.2f} % +--------------------- +Gesamt: {a1+a2+a3:.2f} % +""" +) \ No newline at end of file diff --git a/schleifen/aufgabe3.py b/schleifen/aufgabe3.py new file mode 100644 index 0000000..561c1bb --- /dev/null +++ b/schleifen/aufgabe3.py @@ -0,0 +1,43 @@ +# -*- coding: ansi -*- +import random + +credits = 5000 + +items = { + "sofa": 899, + "sessel": 399, + "couchtisch": 229, + "tv_bank": 349, + "bcherregal": 299, + "beistelltisch": 119, + "stehlampe": 189, + "teppich": 249, + "vorhnge": 149, + "wandregal": 99, + "dekovase": 59, + "wandbild": 199, + "kissen_set": 79, + "decke": 69, + "pflanzenstnder": 89 +} + +while credits > 0: + name, cost = random.choice(list(items.items())) + choice = input(f"Willst du {name} kaufen um {cost}? (Y/N/S/G) ") + + match choice.upper(): + case "Y": + if credits >= cost: + credits -= cost + print(f"{name} gekauft! Verbleibendes Guthaben: {credits}") + else: + print("Nicht genug Guthaben!") + case "N": + pass + case "S": + print("Einkauf beendet.") + break + case "G": + print(f"Du hast: {credits}") + case _: + print("Ungltige Eingabe!") diff --git a/schleifen/aufgabe4.py b/schleifen/aufgabe4.py new file mode 100644 index 0000000..f62abb3 --- /dev/null +++ b/schleifen/aufgabe4.py @@ -0,0 +1,30 @@ +import turtle + +length = int(input("Laenge: ")) +width = int(input("Breite: ")) +color = str(input("Farbe (R/G/B): ")) + +if length > 100 or width > 100: + length = round(length / 10) + width = round(width / 10) + print(f"Massstab 1:10 angewandt. Neue Laenge {length}, Neue Breite {width}") + +t = turtle.Turtle() + +match color.lower(): + case "r": + t.fillcolor("red") + case "g": + t.fillcolor("green") + case "b": + t.fillcolor("blue") + +t.begin_fill() +for _ in range(2): + t.forward(length) + t.left(90) + t.forward(width) + t.left(90) +t.end_fill() + +turtle.done() diff --git a/scraper/main.py b/scraper/main.py new file mode 100644 index 0000000..bc76b72 --- /dev/null +++ b/scraper/main.py @@ -0,0 +1,83 @@ +import os +import re +import time +import requests +from urllib.parse import urljoin, urlparse, unquote +from bs4 import BeautifulSoup + +HEADERS = { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120 Safari/537.36" +} + +def sanitize_filename(name: str) -> str: + # Replace spaces with underscores, strip invalid filename characters + name = name.strip() + name = name.replace(" ", "_") + return re.sub(r'[^A-Za-z0-9_\-().]', '', name) + +def candidate_url_from_img(img): + for attr in ("data-orig-src", "data-src", "src"): + val = img.get(attr) + if not val: + continue + val = val.strip() + if not val or val.startswith("data:") or val.startswith("javascript:"): + continue + return unquote(val) + return None + +def download_images(page_url, target_folder): + os.makedirs(target_folder, exist_ok=True) + + resp = requests.get(page_url, headers=HEADERS, timeout=15) + resp.raise_for_status() + soup = BeautifulSoup(resp.text, "html.parser") + + cards = soup.select("div.teacher-card") + print(f"Found {len(cards)} teacher cards") + + downloaded = 0 + for card in cards: + # name + name_tag = card.select_one(".card-title") + if not name_tag: + continue + person_name = name_tag.get_text(strip=True) + filename = sanitize_filename(person_name) + ".jpg" + + # image + img = card.find("img") + if not img: + continue + img_url = candidate_url_from_img(img) + if not img_url: + continue + img_url = urljoin(page_url, img_url) + + # save + local_path = os.path.join(target_folder, filename) + if os.path.exists(local_path): + print(f"⚡ Skipping (exists): {filename}") + continue + + try: + print(f"⬇️ {person_name} -> {filename}") + r = requests.get(img_url, headers=HEADERS, stream=True, timeout=20) + r.raise_for_status() + with open(local_path, "wb") as f: + for chunk in r.iter_content(8192): + if chunk: + f.write(chunk) + downloaded += 1 + time.sleep(0.1) # polite delay + except Exception as e: + print(f"❌ Failed for {person_name}: {e}") + + print(f"\n✅ Done. Downloaded {downloaded} images.") + +if __name__ == "__main__": + page = "https://www.gym-hartberg.ac.at/lehrerinnen/" + downloads = os.path.join(os.path.expanduser("~"), "Downloads") + target = os.path.join(downloads, "images") + download_images(page, target) diff --git a/turtle/a1.py b/turtle/a1.py new file mode 100644 index 0000000..3791e8a --- /dev/null +++ b/turtle/a1.py @@ -0,0 +1,8 @@ +from time import sleep +from turtle import * +from random import * + +t = Turtle() + +for _ in range(1,100): + t.forward(random.rand) \ No newline at end of file diff --git a/umsatzsteuer/index.html b/umsatzsteuer/index.html new file mode 100644 index 0000000..e69de29 diff --git a/umsatzsteuer/main.py b/umsatzsteuer/main.py new file mode 100644 index 0000000..98fcafd --- /dev/null +++ b/umsatzsteuer/main.py @@ -0,0 +1,27 @@ +print("Bitte das Bundesland klein schreiben!") +umsatz_2025 = int(input("Geben Sie den Umsatz von 2025 ein: ")) +umsatz_2024 = int(input("Geben Sie den Umsatz von 2024 ein: ")) +bundesland = input("Geben Sie das Bundesland ein: ").lower() + +percent = { + "wien": 0.6, + "burgenland": 0.6, + "steiermark": 0.5, + "kärnten": 0.5, + "niederösterreich": 0.55, + "oberösterreich": 0.55, + "salzburg": 0.55, + "tirol": 0.45, + "vorarlberg": 0.45, +} + +if umsatz_2024 <= umsatz_2025 * 0.6: + if bundesland in percent: + difference = umsatz_2025 - umsatz_2024 + betrag = difference * percent[bundesland] + print("Sie sind berechtigt!") + print(f"Sie bekommen: {betrag:.2f} Euro") + else: + print("Ungültiges Bundesland!") +else: + print("Sie sind NICHT berechtigt!") diff --git a/zahlenraten/capped.py b/zahlenraten/capped.py new file mode 100644 index 0000000..a4b4635 --- /dev/null +++ b/zahlenraten/capped.py @@ -0,0 +1,18 @@ +import random + +tries = 5 +num = random.randint(1,20) + +while tries > 0: + # debug + # print(num) + try: + _ = int(input(f"{tries}: Gib eine Zahl zwischen 1 und 20 ein: ")) + except (ValueError, KeyboardInterrupt): + pass + + if _ == num: + print(f"Du hast es erraten mit {tries} Versuchen") + break + + tries -= 1 \ No newline at end of file diff --git a/zahlenraten/main.py b/zahlenraten/main.py new file mode 100644 index 0000000..6203273 --- /dev/null +++ b/zahlenraten/main.py @@ -0,0 +1,25 @@ +import random + +# init +tries = 1 +rand = random.randint(1,20) +_ = int + +while True: + # versuche int zu bekommen, wenn string dann versuchen wirs neu! + try: + _ = int(input(f"{tries}: Geben Sie eine Zahl von 1 zwischen 20 ein: ")) + except ValueError: + pass + + # versuche zu vergleichen. falls irgendeine exception ist dann break! + try: + if _ == rand: + print(f"Spitze mit: {tries} Versuchen. Die Zahl war {rand}") + break + except Exception as e: + print(f"Exception => {e}") + break + + # inkrementiere versuchszhler! + tries += 1 \ No newline at end of file diff --git a/zahlenraten/passwortgenerator.py b/zahlenraten/passwortgenerator.py new file mode 100644 index 0000000..873a0c0 --- /dev/null +++ b/zahlenraten/passwortgenerator.py @@ -0,0 +1,11 @@ +import random +import string + +def generate_password(length=int) -> str: + chars = string.ascii_letters + string.digits + string.punctuation + + password = "".join(random.choice(chars) for _ in range(length)) + return password + +length = int(input("Gib die Laenge deines Passwortes ein: ")) +print(generate_password(length)) \ No newline at end of file