요새 너무 삭막하게 사는 것 같아 나 자신에게 보상을 줄 필요성을 느꼈다.
import numpy as np
import json
from datetime import date
REWARDS_JSON = "rewards.json"
RESULT_TXT = "result.txt"
PROB_TXT = "prob.txt"
def get_reward(rewards, prob):
print("하루의 집중 작업(3시간 이상 걸리는 작업)을 완료했나요?")
answer = input("Yes/No: ")
if answer != "Yes":
print("다음에 다시 오세요!")
return
print("어떠한 문제를 해결했나요?")
answer = input("해결한 문제: ")
if answer is None or answer.strip() == "":
print("해결한 문제가 없군요. 다음에 다시 오세요!")
return
if np.random.rand() > prob:
print("고생하셨습니다! 오늘의 당신에게 칭찬 한마디 해주세요!")
praise = input("칭찬 한마디: ")
with open(RESULT_TXT, "a") as f:
f.write(str(date.today())+'\n')
f.write("해결한 문제: " + answer + "\n")
f.write("오늘의 칭찬: " + praise + "\n")
prob = min(prob + 0.05, 1.0)
with open(PROB_TXT, "w") as f:
f.write(str(prob))
return
keys = list(rewards.keys())
weights = np.array(list(rewards.values()))
reward = np.random.choice(keys, p=weights / weights.sum())
print("축하드립니다! 오늘은 자신에게 보상을 줘봐요!")
print("오늘의 보상: " + reward)
with open(RESULT_TXT, "a") as f:
f.write(str(date.today())+'\n')
f.write("해결한 문제: " + answer + "\n")
f.write("오늘의 보상: " + reward + "\n")
with open(PROB_TXT, "w") as f:
f.write(str(0.3))
try:
with open(PROB_TXT, "r") as f:
prob = float(f.read().strip())
except (FileNotFoundError, ValueError):
prob = 0.3
try:
with open(REWARDS_JSON, "r", encoding="utf-8") as f:
rewards = json.load(f)
except FileNotFoundError:
rewards = {}
get_reward(rewards, prob)
보상 파일(rewards.json)은 다음과 같이 정의했다.
{
"빼빼로": 10,
"초콜릿": 10,
"칸쵸": 10,
"떡볶이": 3,
"햄버거": 3,
"치킨": 2,
"피자": 2,
"족발": 1
}
다음과 같이 윈도우 배치파일도 만들어줬다.
@echo off
setlocal
pushd %~dp0
python "%~dp0\Main.py" %*
popd
endlocal
'개인적 공간' 카테고리의 다른 글
[1만 시간의 재발견] 의도적 연습 (0) | 2025.10.05 |
---|---|
시간 관리를 위한 10가지 기법 (0) | 2025.08.27 |
[신경끄기의 기술] 당신은 무엇을 견딜 수 있는가? (0) | 2025.07.10 |
[에고라는 적] "존재"할 것인가, 아니면 "행동"할 것인가? (0) | 2025.07.04 |
자기 실현적 예언 - 아마존 리더십 원칙 (1) | 2025.06.09 |