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 04d8a93..a8aed59 100644 Binary files a/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate and b/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate differ 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