import random
import time
# ==========================================
# ACAAN BROWSER PRACTICE
# 브라우저 Python 실행기용
# ==========================================
SUITS = ["♠", "♥", "♦", "♣"]
RANKS = [
"A", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "J", "Q", "K"
]
CARDS = []
for suit in SUITS:
for rank in RANKS:
CARDS.append(rank + suit)
# 숫자 3~27
NUMBERS = list(range(3, 28))
# 가능한 전체 조합
ALL_COMBINATIONS = [
(card, number)
for card in CARDS
for number in NUMBERS
]
# 이미 나온 조합
used = set()
# 통계
total = 0
success = 0
failed = 0
def new_question():
global used
# 1,300개 전부 사용하면 새 사이클
if len(used) >= len(ALL_COMBINATIONS):
used.clear()
print()
print("================================")
print("🎉 1,300개 조합 전부 완료!")
print("새로운 사이클을 시작합니다.")
print("================================")
# 아직 나오지 않은 조합 선택
remaining = [
x for x in ALL_COMBINATIONS
if x not in used
]
card, number = random.choice(remaining)
used.add((card, number))
return card, number
def show_question(card, number):
print()
print("╔══════════════════════════════╗")
print("║ 🃏 ACAAN 문제 ║")
print("╠══════════════════════════════╣")
print(f"║ 카드 : {card:<21}║")
print(f"║ 숫자 : {number:<21}║")
print("╚══════════════════════════════╝")
print()
print("👉 이 카드와 숫자로 아칸 루틴을 수행하세요.")
def hide_answer():
print()
print("╔══════════════════════════════╗")
print("║ 🙈 숨김 ║")
print("╠══════════════════════════════╣")
print("║ 지금부터 실제 루틴을 ║")
print("║ 머릿속으로 수행하세요. ║")
print("╚══════════════════════════════╝")
def show_stats():
print()
print("========== 📊 통계 ==========")
print("총 연습 :", total)
print("성공 :", success)
print("실패 :", failed)
if total > 0:
rate = success / total * 100
print(f"성공률 : {rate:.1f}%")
else:
print("성공률 : 0%")
print()
print(f"이번 사이클 : {len(used)} / 1,300")
print(f"남은 조합 : {1300 - len(used)}")
print("==============================")
# ==========================================
# 메인
# ==========================================
print()
print("========================================")
print(" ♠ ACAAN PRACTICE TRAINER ♥")
print("========================================")
print()
print("카드 : 52장")
print("숫자 : 3~27")
print("전체 조합 : 1,300개")
print()
print("명령어")
print(" n = 새로운 문제")
print(" h = 문제 숨기기")
print(" s = 성공")
print(" f = 실패")
print(" t = 통계")
print(" q = 종료")
print()
# 첫 문제
current_card, current_number = new_question()
show_question(
current_card,
current_number
)
# ==========================================
# 반복
# ==========================================
while True:
print()
command = input("명령어 입력 > ").strip().lower()
# --------------------------
# 새 문제
# --------------------------
if command == "n":
current_card, current_number = new_question()
show_question(
current_card,
current_number
)
# --------------------------
# 숨기기
# --------------------------
elif command == "h":
hide_answer()
# --------------------------
# 성공
# --------------------------
elif command == "s":
total += 1
success += 1
print()
print("✅ 성공 기록!")
show_stats()
# --------------------------
# 실패
# --------------------------
elif command == "f":
total += 1
failed += 1
print()
print("❌ 실패 기록!")
show_stats()
# --------------------------
# 통계
# --------------------------
elif command == "t":
show_stats()
# --------------------------
# 종료
# --------------------------
elif command == "q":
print()
print("ACAAN 연습을 종료합니다.")
print("오늘도 연습 화이팅! 🃏🎩")
break
else:
print()
print("❓ 알 수 없는 명령입니다.")
print()
print("n = 새 문제")
print("h = 숨기기")
print("s = 성공")
print("f = 실패")
print("t = 통계")
print("q = 종료")