From 56cac34bafd323445aa0e61a562cfaa586ade711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Mon, 19 Jun 2023 19:38:51 +0300 Subject: [PATCH] d --- .../UserInterfaceState.xcuserstate | Bin 34502 -> 35306 bytes iOS/src/Main.Platform.swift | 7 +++++- shared/javaScript.js | 2 +- shared/swift.swift | 6 ++--- shared/typeScript.ts | 2 +- toSwift | 23 ++++++++++++++++++ будущее | 10 +++----- прошлое | 5 ++++ 8 files changed, 42 insertions(+), 13 deletions(-) diff --git a/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate b/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate index 04d8a93ae786bfda8c8eba675ccb9848353775b8..a8aed59fc4dbeb19cff36b2295387192cb88bd3d 100644 GIT binary patch delta 18500 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 diff --git a/iOS/src/Main.Platform.swift b/iOS/src/Main.Platform.swift index 9c82050..a95621e 100644 --- a/iOS/src/Main.Platform.swift +++ b/iOS/src/Main.Platform.swift @@ -40,9 +40,14 @@ extension Main { btn.addTarget(self, action: #selector(Main.Core.selectButton), for: .touchUpInside) } + + let groups = memoryGroups(c: M()) + // Выводим номер нажатой кнопки. didSelectButton - .sink { i in print("ИГР MainP.viewDL didSB: '\(i)'") } + .sink { i in + print("ИГР MainP.viewDL didSB id/group: '\(i)'/'\(groups[Float(i)])'") + } .store(in: &subscriptions) } diff --git a/shared/javaScript.js b/shared/javaScript.js index 1cc9654..9cc6a67 100644 --- a/shared/javaScript.js +++ b/shared/javaScript.js @@ -7,7 +7,7 @@ function memoryGroups(c) { var ids = utsIndexArray(c.itemsCount); ids.forEach(function (i) { // @ts-ignore - items[i] = utsFloor(Number(i) / 2); + items[Number(i)] = utsFloor(Number(i) / 2); }); return items; } diff --git a/shared/swift.swift b/shared/swift.swift index 9fd08d9..6bf2f79 100644 --- a/shared/swift.swift +++ b/shared/swift.swift @@ -11,13 +11,13 @@ func memoryGap() -> Float { return memorySide() + memorySpace() } -func memoryGroups(c: Context) -> Record { - var items: Record = {}; +func memoryGroups(c: Context) -> [Float: Float] { + var items: [Float: Float] = [:] // @ts-ignore let ids = utsIndexArray(c.itemsCount); ids.forEach { i in // @ts-ignore - items[i] = utsFloor(Float(i) / 2) + items[Float(i)] = utsFloor(Float(i) / 2) } return items; } diff --git a/shared/typeScript.ts b/shared/typeScript.ts index d4b8875..d8f1bd8 100644 --- a/shared/typeScript.ts +++ b/shared/typeScript.ts @@ -17,7 +17,7 @@ function memoryGroups(c: Context): Record { let ids = utsIndexArray(c.itemsCount); ids.forEach(i => { // @ts-ignore - items[i] = utsFloor(Number(i) / 2) + items[Number(i)] = utsFloor(Number(i) / 2) }) return items; } diff --git a/toSwift b/toSwift index a14fca6..3fabb07 100755 --- a/toSwift +++ b/toSwift @@ -44,6 +44,7 @@ function convert(line) { result = protocolReplace(result); result = typeArrayReplace(result); result = forEachReplace(result); + result = recordReplace(result); return result; } @@ -100,6 +101,28 @@ function protocolReplaceVariable(line) { return line; } +// Record -> [TypeA: TypeB] +// Record = {} -> [TypeA: TypeB] = [:] +function recordReplace(line) { + if (!line.includes("Record")) { + return line; + } + + let partsR = line.split("Record<"); + let typesAndEnding = partsR[1]; + let partsT = typesAndEnding.split(">"); + let types = partsT[0]; + let ending = partsT[1]; + let swiftTypes = types.split(", "); + let was = `Record<${swiftTypes[0]}, ${swiftTypes[1]}>`; + let now = `[${swiftTypes[0]}: ${swiftTypes[1]}]`; + var result = line; + result = result.replace(was, now); + result = result.replace("] = {};", "] = [:]"); + return result; +} + + // Type[] -> [Type] function typeArrayReplace(line) { let parts = line.split(" "); diff --git a/будущее b/будущее index 4d847d8..2b85646 100644 --- a/будущее +++ b/будущее @@ -1,12 +1,8 @@ НАДО: -* транслировать Record в Swift -* выводить группу элемента при нажатии в iOS -* ввести словари: - * тип - цвет - * id - тип - * new Map? - https://timmousk.com/blog/typescript-dictionary/ +* проводить вычисления вывода группы элемента через модель + * swift + * web * окрашивать элементы в цвета по номерам при выборе * разрешать выбирать лишь два элемента * при выборе двух элементов сравнивать их цвет diff --git a/прошлое b/прошлое index 999d971..383cc04 100644 --- a/прошлое +++ b/прошлое @@ -1,3 +1,8 @@ +19.06: 25 + +* транслировать Record в Swift +* выводить группу элемента при нажатии в iOS + 16.06: 30 * выводить группу элемента при нажатии в web