조건분기
2026년 4월 7일 09:30분
레위기 26장은 순종 여부에 따라 결과가 달라집니다. 순종하면 축복, 불순종하면 점점 더 강한 징계가 뒤따릅니다. 나는 불순종 단계를 추적하고 단계마다 다른 전략 객체를 실행하는 구조로 설계했습니다.
package com.jesusbornd.leviticus;
import java.util.Map;
import java.util.TreeMap;
public class Leviticus_26_Chapter_Lv3 {
interface Consequence {
void apply(String subject);
}
static class ConsequenceChain {
private final TreeMap<Integer, Consequence> levels = new TreeMap<>();
ConsequenceChain level(int threshold, Consequence c) {
levels.put(threshold, c);
return this;
}
void evaluate(String subject, boolean obedient, int disobeyCount) {
if (obedient) {
System.out.println(subject + " → ✅ 축복 / Blessed");
return;
}
Map.Entry<Integer, Consequence> entry = levels.floorEntry(disobeyCount);
if (entry != null) entry.getValue().apply(subject);
else System.out.println(subject + " → 경고");
}
}
public static void main(String[] args) {
ConsequenceChain law = new ConsequenceChain()
.level(1, s -> System.out.println(s + " → ⚠ 1단계: 공포와 질병"))
.level(3, s -> System.out.println(s + " → ⚠ 2단계: 가뭄과 기근"))
.level(5, s -> System.out.println(s + " → ⚠ 3단계: 전쟁과 포위"))
.level(7, s -> System.out.println(s + " → ⚠ 4단계: 포로와 땅 황폐"));
law.evaluate("이스라엘", true, 0);
law.evaluate("이스라엘", false, 2);
law.evaluate("이스라엘", false, 5);
law.evaluate("이스라엘", false, 8);
}
}
from typing import Callable
class ConsequenceChain:
def __init__(self):
self._levels: list[tuple[int, Callable[[str], None]]] = []
def level(self, threshold: int, fn: Callable[[str], None]) -> "ConsequenceChain":
self._levels.append((threshold, fn))
self._levels.sort(key=lambda x: x[0], reverse=True)
return self
def evaluate(self, subject: str, obedient: bool, disobey_count: int = 0):
if obedient:
print(f"{subject} → ✅ 축복 / Blessed")
return
for threshold, fn in self._levels:
if disobey_count >= threshold:
fn(subject)
return
print(f"{subject} → 경고")
if __name__ == "__main__":
law = (
ConsequenceChain()
.level(1, lambda s: print(f"{s} → ⚠ 1단계: 공포와 질병"))
.level(3, lambda s: print(f"{s} → ⚠ 2단계: 가뭄과 기근"))
.level(5, lambda s: print(f"{s} → ⚠ 3단계: 전쟁과 포위"))
.level(7, lambda s: print(f"{s} → ⚠ 4단계: 포로와 땅 황폐"))
)
law.evaluate("이스라엘", True, 0)
law.evaluate("이스라엘", False, 2)
law.evaluate("이스라엘", False, 5)
law.evaluate("이스라엘", False, 8)
Search
Categories
← 목록으로
Comments
불순종 단계가 올라갈수록 전략이 바뀌는 구조가, 점점 강해지는 징계의 흐름을 코드로 생생하게 보여주네요.