From 7156a633ffdd1513e417f685f1a051d10433799c 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: Thu, 1 Jun 2023 20:05:50 +0300 Subject: [PATCH] d --- iOS/app/MMMemory.xcodeproj/project.pbxproj | 21 +++++++----------- .../UserInterfaceState.xcuserstate | Bin 29931 -> 32292 bytes iOS/app/project.yml | 1 - shared/JavaScript/memoryGap.js | 4 ++++ shared/JavaScript/memorySpace.js | 3 +++ .../memoryGap.swift} | 11 ++++----- shared/Swift/memorySpace.swift | 3 +++ shared/gen | 12 ++++++++-- shared/memoryGap.ts | 4 ++++ shared/memorySpace.ts | 3 +++ shared/model.web.js | 7 ------ web/memory.html | 3 ++- будущее | 12 +--------- прошлое | 12 ++++++++++ 14 files changed, 54 insertions(+), 42 deletions(-) create mode 100644 shared/JavaScript/memoryGap.js create mode 100644 shared/JavaScript/memorySpace.js rename shared/{model.iOS.swift => Swift/memoryGap.swift} (60%) create mode 100644 shared/Swift/memorySpace.swift create mode 100644 shared/memoryGap.ts create mode 100644 shared/memorySpace.ts delete mode 100644 shared/model.web.js diff --git a/iOS/app/MMMemory.xcodeproj/project.pbxproj b/iOS/app/MMMemory.xcodeproj/project.pbxproj index 46589d3..1ac7e20 100644 --- a/iOS/app/MMMemory.xcodeproj/project.pbxproj +++ b/iOS/app/MMMemory.xcodeproj/project.pbxproj @@ -8,11 +8,12 @@ /* Begin PBXBuildFile section */ 1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; }; + 248FA3B7A82DA60E6892F821 /* memorySpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 490862345F009401FB4E1199 /* memorySpace.swift */; }; 3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */; }; 3EA747EF132EF00B60CE3BA8 /* memorySide.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17E6ABD013AB08F7DF11C069 /* memorySide.swift */; }; 79FB208C9DADDA6179E588C3 /* Main.SectionGrid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */; }; + 7B6D5211C387213AE05C080F /* memoryGap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9994AEAC20F4AB2DA70C9840 /* memoryGap.swift */; }; 89086E3972F560A9A1A76CE4 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C71EDBDFFDBC96F6E8E7762 /* Model.swift */; }; - A8118182ABE97FA935A1A4F9 /* model.iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3A95F2FA5C43AF82C7A97FC /* model.iOS.swift */; }; B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; }; CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; }; D505E64F4CD6EAEB530BF851 /* Main.Section16Buttons.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */; }; @@ -23,15 +24,16 @@ /* Begin PBXFileReference section */ 0DF762100A8EDF105B6E136D /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = ""; }; 17E6ABD013AB08F7DF11C069 /* memorySide.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memorySide.swift; sourceTree = ""; }; + 490862345F009401FB4E1199 /* memorySpace.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memorySpace.swift; sourceTree = ""; }; 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionSelection.swift; sourceTree = ""; }; + 9994AEAC20F4AB2DA70C9840 /* memoryGap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = memoryGap.swift; sourceTree = ""; }; 9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionGrid.swift; sourceTree = ""; }; 9C71EDBDFFDBC96F6E8E7762 /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = ""; }; 9D774FEE86833E8A0A74387C /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; A355A898E25602F45B88CCBA /* Main.Platform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Platform.swift; sourceTree = ""; }; A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Section16Buttons.swift; sourceTree = ""; }; C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - E3A95F2FA5C43AF82C7A97FC /* model.iOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = model.iOS.swift; sourceTree = ""; }; F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -39,21 +41,14 @@ 44681273C081F5991624384F /* Swift */ = { isa = PBXGroup; children = ( + 9994AEAC20F4AB2DA70C9840 /* memoryGap.swift */, 17E6ABD013AB08F7DF11C069 /* memorySide.swift */, + 490862345F009401FB4E1199 /* memorySpace.swift */, ); name = Swift; path = ../../shared/Swift; sourceTree = ""; }; - 4F93BC5459F4AF4391816D4A /* shared */ = { - isa = PBXGroup; - children = ( - E3A95F2FA5C43AF82C7A97FC /* model.iOS.swift */, - ); - name = shared; - path = ../../shared; - sourceTree = ""; - }; 667BC26EA8068A9FA707FC02 /* src */ = { isa = PBXGroup; children = ( @@ -82,7 +77,6 @@ CD7F0F0C9CA1BA5EAFD5CA09 = { isa = PBXGroup; children = ( - 4F93BC5459F4AF4391816D4A /* shared */, 667BC26EA8068A9FA707FC02 /* src */, 44681273C081F5991624384F /* Swift */, AE7B74413EC292E802CC5C70 /* Products */, @@ -158,8 +152,9 @@ 3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */, DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */, 89086E3972F560A9A1A76CE4 /* Model.swift in Sources */, + 7B6D5211C387213AE05C080F /* memoryGap.swift in Sources */, 3EA747EF132EF00B60CE3BA8 /* memorySide.swift in Sources */, - A8118182ABE97FA935A1A4F9 /* model.iOS.swift in Sources */, + 248FA3B7A82DA60E6892F821 /* memorySpace.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 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 26cfa31b3e51b4c1dde20dbdcecc3fd187aa0ad4..181e615d57a2cc46f067f9a61463fea05f6a8a5f 100644 GIT binary patch delta 16064 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 diff --git a/iOS/app/project.yml b/iOS/app/project.yml index 2948c0d..474936c 100644 --- a/iOS/app/project.yml +++ b/iOS/app/project.yml @@ -9,7 +9,6 @@ targets: sources: - path: "../src" - path: "../../shared/Swift" - - path: "../../shared/model.iOS.swift" settings: base: INFOPLIST_FILE: Info.plist diff --git a/shared/JavaScript/memoryGap.js b/shared/JavaScript/memoryGap.js new file mode 100644 index 0000000..118e2ab --- /dev/null +++ b/shared/JavaScript/memoryGap.js @@ -0,0 +1,4 @@ +// @ts-nocheck +function memoryGap() { + return memorySide() + memorySpace(); +} diff --git a/shared/JavaScript/memorySpace.js b/shared/JavaScript/memorySpace.js new file mode 100644 index 0000000..3a7d4de --- /dev/null +++ b/shared/JavaScript/memorySpace.js @@ -0,0 +1,3 @@ +function memorySpace() { + return 20; +} diff --git a/shared/model.iOS.swift b/shared/Swift/memoryGap.swift similarity index 60% rename from shared/model.iOS.swift rename to shared/Swift/memoryGap.swift index 86e4a9a..02e4932 100644 --- a/shared/model.iOS.swift +++ b/shared/Swift/memoryGap.swift @@ -1,7 +1,4 @@ -func memorySpace() -> Float { - return 20 -} - -func memoryGap() -> Float { - return memorySide() + memorySpace() -} +// @ts-nocheck +func memoryGap() -> Float { + return memorySide() + memorySpace() +} diff --git a/shared/Swift/memorySpace.swift b/shared/Swift/memorySpace.swift new file mode 100644 index 0000000..4134b41 --- /dev/null +++ b/shared/Swift/memorySpace.swift @@ -0,0 +1,3 @@ +func memorySpace() -> Float { + return 20 +} diff --git a/shared/gen b/shared/gen index b14439d..2dfb2e7 100755 --- a/shared/gen +++ b/shared/gen @@ -2,6 +2,14 @@ SCRIPT_DIR=$(cd "$(dirname "$0")" ; pwd -P) -tsc $SCRIPT_DIR/memorySide.ts --outfile $SCRIPT_DIR/JavaScript/memorySide.js -$SCRIPT_DIR/../toSwift $SCRIPT_DIR/memorySide.ts $SCRIPT_DIR/Swift/memorySide.swift +FILES=( + memoryGap + memorySide + memorySpace +) + +for file in ${FILES[*]}; do + tsc $SCRIPT_DIR/$file.ts --outfile $SCRIPT_DIR/JavaScript/$file.js + $SCRIPT_DIR/../toSwift $SCRIPT_DIR/$file.ts $SCRIPT_DIR/Swift/$file.swift +done diff --git a/shared/memoryGap.ts b/shared/memoryGap.ts new file mode 100644 index 0000000..fb7dda4 --- /dev/null +++ b/shared/memoryGap.ts @@ -0,0 +1,4 @@ +// @ts-nocheck +function memoryGap(): number { + return memorySide() + memorySpace() +} diff --git a/shared/memorySpace.ts b/shared/memorySpace.ts new file mode 100644 index 0000000..b55e57b --- /dev/null +++ b/shared/memorySpace.ts @@ -0,0 +1,3 @@ +function memorySpace(): number { + return 20 +} diff --git a/shared/model.web.js b/shared/model.web.js deleted file mode 100644 index 3a6211d..0000000 --- a/shared/model.web.js +++ /dev/null @@ -1,7 +0,0 @@ -function memorySpace() { - return 20 -} - -function memoryGap() { - return memorySide() + memorySpace() -} diff --git a/web/memory.html b/web/memory.html index fc57ace..a8def0a 100644 --- a/web/memory.html +++ b/web/memory.html @@ -5,8 +5,9 @@ + - +