From a5191f831172a8f4e7c02972d098a4ec71255406 Mon Sep 17 00:00:00 2001 From: "johan.lachenal" Date: Tue, 21 May 2024 14:13:05 +0200 Subject: [PATCH] =?UTF-8?q?Update(DouShiQiPicker)=20:=20Maintenant=20le=20?= =?UTF-8?q?DouShiQiPicker=20fonctionne=20de=20faon=20g=C3=A9n=C3=A9rique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ArkitDoushiQi.xcodeproj/project.pbxproj | 4 +++ .../Preview Content/DoushiQiPicker.swift | 31 +++++++++-------- .../Preview Content/ParametersMenuView.swift | 33 +++++++++++++++++++ 3 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 ArkitDoushiQi/ArkitDoushiQi/Preview Content/ParametersMenuView.swift diff --git a/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj b/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj index 03529f2..a8927be 100644 --- a/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj +++ b/ArkitDoushiQi/ArkitDoushiQi.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ C20310D62BFCB5FB0031657D /* DoushiQiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20310D52BFCB5FB0031657D /* DoushiQiPicker.swift */; }; + C20310D82BFCC2410031657D /* ParametersMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20310D72BFCC2410031657D /* ParametersMenuView.swift */; }; C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205A2B62BF373360097BD93 /* ArkitDoushiQiApp.swift */; }; C205A2B92BF373360097BD93 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205A2B82BF373360097BD93 /* ContentView.swift */; }; C205A2BB2BF373380097BD93 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C205A2BA2BF373380097BD93 /* Assets.xcassets */; }; @@ -38,6 +39,7 @@ /* Begin PBXFileReference section */ C20310D52BFCB5FB0031657D /* DoushiQiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoushiQiPicker.swift; sourceTree = ""; }; + C20310D72BFCC2410031657D /* ParametersMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParametersMenuView.swift; sourceTree = ""; }; C205A2B32BF373360097BD93 /* ArkitDoushiQi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ArkitDoushiQi.app; sourceTree = BUILT_PRODUCTS_DIR; }; C205A2B62BF373360097BD93 /* ArkitDoushiQiApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArkitDoushiQiApp.swift; sourceTree = ""; }; C205A2B82BF373360097BD93 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -115,6 +117,7 @@ C24659E42BF5FE09004E80D5 /* MainMenu.swift */, C24659E82BF60FAA004E80D5 /* MainMenuButton.swift */, C20310D52BFCB5FB0031657D /* DoushiQiPicker.swift */, + C20310D72BFCC2410031657D /* ParametersMenuView.swift */, ); path = "Preview Content"; sourceTree = ""; @@ -269,6 +272,7 @@ C205A2B92BF373360097BD93 /* ContentView.swift in Sources */, C24659E92BF60FAA004E80D5 /* MainMenuButton.swift in Sources */, C24659E52BF5FE09004E80D5 /* MainMenu.swift in Sources */, + C20310D82BFCC2410031657D /* ParametersMenuView.swift in Sources */, C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */, C20310D62BFCB5FB0031657D /* DoushiQiPicker.swift in Sources */, ); diff --git a/ArkitDoushiQi/ArkitDoushiQi/Preview Content/DoushiQiPicker.swift b/ArkitDoushiQi/ArkitDoushiQi/Preview Content/DoushiQiPicker.swift index 7a47cd0..c9dca02 100644 --- a/ArkitDoushiQi/ArkitDoushiQi/Preview Content/DoushiQiPicker.swift +++ b/ArkitDoushiQi/ArkitDoushiQi/Preview Content/DoushiQiPicker.swift @@ -7,29 +7,22 @@ import SwiftUI -enum AI: String, CaseIterable, Identifiable, Hashable { - case RandomAction = "IA Random" - case EasyTrainedAI = "IA Facile" - case MediumTrainedAI = "IA Intermédiaire" - - var id: String { self.rawValue } -} - -struct DoushiQiPicker: View where EnumType.RawValue == String, EnumType.AllCases: RandomAccessCollection { +struct DoushiQiPicker: View where EnumType.RawValue == String { let title: String @Binding var selectedOption: EnumType + let options: [EnumType] - init(title: String, selectedOption: Binding) { + init(title: String, selectedOption: Binding, options: [EnumType]) { self.title = title self._selectedOption = selectedOption + self.options = options } var body: some View { Menu { Picker(title, selection: $selectedOption) { - ForEach(EnumType.allCases) { option in + ForEach(options) { option in Text(option.rawValue.description) - .tag(option) } } .labelsHidden() @@ -53,10 +46,20 @@ struct DoushiQiPicker