d
This commit is contained in:
@@ -8,13 +8,9 @@
|
|||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; };
|
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; };
|
||||||
3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */; };
|
|
||||||
79FB208C9DADDA6179E588C3 /* Main.SectionGrid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */; };
|
|
||||||
89086E3972F560A9A1A76CE4 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C71EDBDFFDBC96F6E8E7762 /* Model.swift */; };
|
|
||||||
B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; };
|
B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; };
|
||||||
BE2994BF2FFF272E62883953 /* swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = D414A6174931F533B0B286E8 /* swift.swift */; };
|
BE2994BF2FFF272E62883953 /* swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = D414A6174931F533B0B286E8 /* swift.swift */; };
|
||||||
CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; };
|
CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; };
|
||||||
D505E64F4CD6EAEB530BF851 /* Main.Section16Buttons.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */; };
|
|
||||||
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF762100A8EDF105B6E136D /* Main.swift */; };
|
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF762100A8EDF105B6E136D /* Main.swift */; };
|
||||||
EB8CC50236A211D932BA0DB0 /* Main.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = A355A898E25602F45B88CCBA /* Main.Platform.swift */; };
|
EB8CC50236A211D932BA0DB0 /* Main.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = A355A898E25602F45B88CCBA /* Main.Platform.swift */; };
|
||||||
F368609CC7635D385838A386 /* platfrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F3E3A0EC0B9264E001C3DBC /* platfrom.swift */; };
|
F368609CC7635D385838A386 /* platfrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F3E3A0EC0B9264E001C3DBC /* platfrom.swift */; };
|
||||||
@@ -24,12 +20,8 @@
|
|||||||
0DF762100A8EDF105B6E136D /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = "<group>"; };
|
0DF762100A8EDF105B6E136D /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = "<group>"; };
|
||||||
0F3E3A0EC0B9264E001C3DBC /* platfrom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = platfrom.swift; sourceTree = "<group>"; };
|
0F3E3A0EC0B9264E001C3DBC /* platfrom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = platfrom.swift; sourceTree = "<group>"; };
|
||||||
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionSelection.swift; sourceTree = "<group>"; };
|
|
||||||
9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionGrid.swift; sourceTree = "<group>"; };
|
|
||||||
9C71EDBDFFDBC96F6E8E7762 /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
|
|
||||||
9D774FEE86833E8A0A74387C /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
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 = "<group>"; };
|
A355A898E25602F45B88CCBA /* Main.Platform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Platform.swift; sourceTree = "<group>"; };
|
||||||
A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Section16Buttons.swift; sourceTree = "<group>"; };
|
|
||||||
C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
D414A6174931F533B0B286E8 /* swift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = swift.swift; sourceTree = "<group>"; };
|
D414A6174931F533B0B286E8 /* swift.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = swift.swift; sourceTree = "<group>"; };
|
||||||
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
@@ -52,11 +44,7 @@
|
|||||||
C1742EFC5A1E818780679340 /* Assets.xcassets */,
|
C1742EFC5A1E818780679340 /* Assets.xcassets */,
|
||||||
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */,
|
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */,
|
||||||
A355A898E25602F45B88CCBA /* Main.Platform.swift */,
|
A355A898E25602F45B88CCBA /* Main.Platform.swift */,
|
||||||
A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */,
|
|
||||||
9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */,
|
|
||||||
6D5F2B2E3A26F03F6825608E /* Main.SectionSelection.swift */,
|
|
||||||
0DF762100A8EDF105B6E136D /* Main.swift */,
|
0DF762100A8EDF105B6E136D /* Main.swift */,
|
||||||
9C71EDBDFFDBC96F6E8E7762 /* Model.swift */,
|
|
||||||
0F3E3A0EC0B9264E001C3DBC /* platfrom.swift */,
|
0F3E3A0EC0B9264E001C3DBC /* platfrom.swift */,
|
||||||
);
|
);
|
||||||
name = src;
|
name = src;
|
||||||
@@ -144,11 +132,7 @@
|
|||||||
files = (
|
files = (
|
||||||
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */,
|
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */,
|
||||||
EB8CC50236A211D932BA0DB0 /* Main.Platform.swift in Sources */,
|
EB8CC50236A211D932BA0DB0 /* Main.Platform.swift in Sources */,
|
||||||
D505E64F4CD6EAEB530BF851 /* Main.Section16Buttons.swift in Sources */,
|
|
||||||
79FB208C9DADDA6179E588C3 /* Main.SectionGrid.swift in Sources */,
|
|
||||||
3D03666F3BC2B1F2CBB49530 /* Main.SectionSelection.swift in Sources */,
|
|
||||||
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */,
|
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */,
|
||||||
89086E3972F560A9A1A76CE4 /* Model.swift in Sources */,
|
|
||||||
F368609CC7635D385838A386 /* platfrom.swift in Sources */,
|
F368609CC7635D385838A386 /* platfrom.swift in Sources */,
|
||||||
BE2994BF2FFF272E62883953 /* swift.swift in Sources */,
|
BE2994BF2FFF272E62883953 /* swift.swift in Sources */,
|
||||||
);
|
);
|
||||||
|
|||||||
Binary file not shown.
@@ -17,3 +17,7 @@ extension AppDelegate {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct M: Context {
|
||||||
|
var itemsCount: Float = 16
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,9 +14,36 @@ extension Main {
|
|||||||
|
|
||||||
view.backgroundColor = .white
|
view.backgroundColor = .white
|
||||||
|
|
||||||
Main.Section16Buttons.setupCore(self)
|
// Создаём 16 кнопок.
|
||||||
Main.SectionGrid.setupCore(self)
|
for i in 0..<16 {
|
||||||
Main.SectionSelection.setupCore(self)
|
let btn = UIButton()
|
||||||
|
btn.tag = i
|
||||||
|
view.addSubview(btn)
|
||||||
|
buttons.append(btn)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Расставляем кнопки в сетке 4x4.
|
||||||
|
for (id, p) in memoryItemPositions(c: M()).enumerated() {
|
||||||
|
let btn = buttons[id]
|
||||||
|
btn.frame =
|
||||||
|
CGRect(
|
||||||
|
x: CGFloat(p.x),
|
||||||
|
y: CGFloat(p.y),
|
||||||
|
width: CGFloat(memorySide()),
|
||||||
|
height: CGFloat(memorySide())
|
||||||
|
)
|
||||||
|
btn.backgroundColor = .blue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Учитываем нажатия кнопок.
|
||||||
|
for btn in buttons {
|
||||||
|
btn.addTarget(self, action: #selector(Main.Core.selectButton), for: .touchUpInside)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Выводим номер нажатой кнопки.
|
||||||
|
didSelectButton
|
||||||
|
.sink { i in print("ИГР MainP.viewDL didSB: '\(i)'") }
|
||||||
|
.store(in: &subscriptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func selectButton(_ btn: UIButton) {
|
@objc func selectButton(_ btn: UIButton) {
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
import UIKit
|
|
||||||
|
|
||||||
// MARK: - Протоколы
|
|
||||||
|
|
||||||
protocol MainSection16Buttons { }
|
|
||||||
|
|
||||||
// MARK: - Реализация
|
|
||||||
|
|
||||||
extension Main {
|
|
||||||
enum Section16Buttons {
|
|
||||||
static func setupCore(_ core: Main.Core) {
|
|
||||||
// Создаём 16 кнопок.
|
|
||||||
for i in 0..<16 {
|
|
||||||
let btn = UIButton()
|
|
||||||
btn.tag = i
|
|
||||||
core.view.addSubview(btn)
|
|
||||||
core.buttons.append(btn)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
import UIKit
|
|
||||||
|
|
||||||
// MARK: - Протоколы
|
|
||||||
|
|
||||||
protocol MainSectionGrid { }
|
|
||||||
|
|
||||||
// MARK: - Реализация
|
|
||||||
|
|
||||||
extension Main {
|
|
||||||
enum SectionGrid {
|
|
||||||
static func setupCore(_ core: Main.Core) {
|
|
||||||
// Расставляем кнопки в сетке 4x4.
|
|
||||||
for (id, p) in memoryItemPositions(M()).enumerated() {
|
|
||||||
let btn = core.buttons[id]
|
|
||||||
btn.frame =
|
|
||||||
CGRect(
|
|
||||||
x: CGFloat(p.0),
|
|
||||||
y: CGFloat(p.1),
|
|
||||||
width: CGFloat(memorySide()),
|
|
||||||
height: CGFloat(memorySide())
|
|
||||||
)
|
|
||||||
btn.backgroundColor = .blue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
import UIKit
|
|
||||||
|
|
||||||
// MARK: - Протоколы
|
|
||||||
|
|
||||||
protocol MainSectionSelection { }
|
|
||||||
|
|
||||||
// MARK: - Реализация
|
|
||||||
|
|
||||||
extension Main {
|
|
||||||
enum SectionSelection {
|
|
||||||
static func setupCore(_ core: Main.Core) {
|
|
||||||
// Учитываем нажатия кнопок.
|
|
||||||
for btn in core.buttons {
|
|
||||||
btn.addTarget(core, action: #selector(Main.Core.selectButton), for: .touchUpInside)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Выводим номер нажатой кнопки.
|
|
||||||
core.didSelectButton
|
|
||||||
.sink { i in print("ИГР MainSS.setupC didSB: '\(i)'") }
|
|
||||||
.store(in: &core.subscriptions)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
import Foundation
|
|
||||||
|
|
||||||
struct M {
|
|
||||||
var itemsCount: Int = 16
|
|
||||||
}
|
|
||||||
|
|
||||||
func memoryItemPositions(_ M: M) -> [(Float, Float)] {
|
|
||||||
var pos = [(Float, Float)]()
|
|
||||||
for i in stride(from: 0, to: M.itemsCount, by: 1) {
|
|
||||||
let row = floor(Float(i) / 4)
|
|
||||||
let x = memoryGap() + (Float(i) - row * 4) * memoryGap()
|
|
||||||
let y = memoryGap() + row * memoryGap()
|
|
||||||
pos.append((x, y))
|
|
||||||
}
|
|
||||||
return pos
|
|
||||||
}
|
|
||||||
@@ -13,8 +13,8 @@ function memoryItemPositions(c) {
|
|||||||
var ids = utsIndexArray(c.itemsCount);
|
var ids = utsIndexArray(c.itemsCount);
|
||||||
ids.forEach(function (i) {
|
ids.forEach(function (i) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
var row = utsFloor(i / 4);
|
var row = utsFloor(Number(i) / 4);
|
||||||
var x = memoryGap() + (i - row * 4) * memoryGap();
|
var x = memoryGap() + (Number(i) - row * 4) * memoryGap();
|
||||||
var y = memoryGap() + row * memoryGap();
|
var y = memoryGap() + row * memoryGap();
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
pos.push(memoryCreatePosition(x, y));
|
pos.push(memoryCreatePosition(x, y));
|
||||||
|
|||||||
@@ -24,14 +24,13 @@ func memoryItemPositions(c: Context) -> [Position] {
|
|||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
let ids = utsIndexArray(c.itemsCount);
|
let ids = utsIndexArray(c.itemsCount);
|
||||||
ids.forEach { ii in
|
ids.forEach { i in
|
||||||
let i = Float(ii);
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
let row = utsFloor(i / 4)
|
let row = utsFloor(Float(i) / 4)
|
||||||
let x = memoryGap() + (i - row * 4) * memoryGap()
|
let x = memoryGap() + (Float(i) - row * 4) * memoryGap()
|
||||||
let y = memoryGap() + row * memoryGap()
|
let y = memoryGap() + row * memoryGap()
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
pos.push(memoryCreatePosition(x, y))
|
pos.append(memoryCreatePosition(x, y))
|
||||||
}
|
}
|
||||||
return pos
|
return pos
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ function memoryItemPositions(c: Context): Position[] {
|
|||||||
let ids = utsIndexArray(c.itemsCount);
|
let ids = utsIndexArray(c.itemsCount);
|
||||||
ids.forEach(i => {
|
ids.forEach(i => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
let row = utsFloor(i / 4)
|
let row = utsFloor(Number(i) / 4)
|
||||||
let x = memoryGap() + (i - row * 4) * memoryGap()
|
let x = memoryGap() + (Number(i) - row * 4) * memoryGap()
|
||||||
let y = memoryGap() + row * memoryGap()
|
let y = memoryGap() + row * memoryGap()
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
pos.push(memoryCreatePosition(x, y))
|
pos.push(memoryCreatePosition(x, y))
|
||||||
|
|||||||
2
toSwift
2
toSwift
@@ -13,9 +13,11 @@ let fileDst = process.argv[3];
|
|||||||
let globalReplacements = {
|
let globalReplacements = {
|
||||||
"function": "func",
|
"function": "func",
|
||||||
"number": "Float",
|
"number": "Float",
|
||||||
|
"Number": "Float",
|
||||||
"):": ") ->",
|
"):": ") ->",
|
||||||
"interface": "protocol",
|
"interface": "protocol",
|
||||||
"})": "}", // forEach
|
"})": "}", // forEach
|
||||||
|
".push(": ".append(", // array
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(`Converting '${fileSrc}' to '${fileDst}'`);
|
console.log(`Converting '${fileSrc}' to '${fileDst}'`);
|
||||||
|
|||||||
11
будущее
11
будущее
@@ -1,9 +1,16 @@
|
|||||||
|
15.06: 19:10-
|
||||||
|
|
||||||
НАДО:
|
|
||||||
* поправить Floor i/4
|
* поправить Floor i/4
|
||||||
|
* попробовать number(i)
|
||||||
|
* поправить push
|
||||||
|
* переводить в append
|
||||||
* перейти на один файл swift
|
* перейти на один файл swift
|
||||||
* генерить memoryItemPositions.swift
|
* генерить memoryItemPositions.swift
|
||||||
* ввести общую библиотеку?
|
* ввести общую библиотеку?
|
||||||
|
* ввёл пока platform с функциями uts
|
||||||
|
* упростить структуру iOS помещением содержимого секций в платформу
|
||||||
|
|
||||||
* в конце: разделить функции на разные файлы
|
НАДО:
|
||||||
|
|
||||||
|
* в конце прототипа: разделить функции на разные файлы
|
||||||
* будет ошибка tsc: cannot find name, так что придётся покумекать
|
* будет ошибка tsc: cannot find name, так что придётся покумекать
|
||||||
|
|||||||
Reference in New Issue
Block a user