From 5f11d2a6747208b4e64dcc92a26a04ba4a6b2403 Mon Sep 17 00:00:00 2001 From: masakih Date: Sun, 24 Dec 2017 20:47:07 +0900 Subject: [PATCH] =?utf8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E5=A4=89=E6=95=B0?= =?utf8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KCD/SakutekiCalculator.swift | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/KCD/SakutekiCalculator.swift b/KCD/SakutekiCalculator.swift index 07a67f01..6011aa5a 100644 --- a/KCD/SakutekiCalculator.swift +++ b/KCD/SakutekiCalculator.swift @@ -13,11 +13,22 @@ protocol SakutekiCalculator { func calculate(_ ships: [Ship]) -> Double } +extension SakutekiCalculator { + + fileprivate func alivedShips(ships: [Ship]) -> [Ship] { + + return ships.filter { + TemporaryDataStore.default.ensuredGuardEscaped(byShipId: $0.id) == nil + } + } +} + final class SimpleCalculator: SakutekiCalculator { + func calculate(_ ships: [Ship]) -> Double { - return Double(ships.reduce(0) { $0 + $1.sakuteki_0 }) + return Double(alivedShips(ships: ships).reduce(0) { $0 + $1.sakuteki_0 }) } } @@ -57,7 +68,7 @@ final class Formula33: SakutekiCalculator { ships.forEach(printShipData) } - let aliveShips = ships.filter(alive) + let aliveShips = alivedShips(ships: ships) // 艦娘の索敵による索敵値 let saku1 = aliveShips @@ -74,21 +85,11 @@ final class Formula33: SakutekiCalculator { let saku3 = shireiSakuteki() // 艦隊の艦娘数による影響 - let saku4 = 2 * (6 - ships.count) + let saku4 = 2 * (6 - aliveShips.count) return saku1 + saku2 - saku3 + Double(saku4) } - private func alive(_ ship: Ship) -> Bool { - - if let _ = TemporaryDataStore.default.ensuredGuardEscaped(byShipId: ship.id) { - - return false - } - - return true - } - private func normalSakuteki(_ ship: Ship) -> Double { let eqSakuteki = ship -- 2.11.0