1. ใฏใใใซ
ใฉใใใ่ถฃๅณใงใใผใฟๅๆใใฆใใ็ซ่ใชใจใณใธใใขใงใใ
ใ๏ฝๅฎใใใงไธๆซๅ้ใใใใชใใงใใ๏ผ
ๅฎใใใฎๅฝ้ธ็ชๅทใไบๆธฌใใใทในใใ ใ้ทๅนดๆใใฆใใพใชใใๆฐไธ็ดใจใดใกใณใฒใชใชใณใใซ็ปๅ ดใใMAGIใทในใใ ใใณใณใปใใใซใใคใใใใ๏ผใใใใใ๏ผใจๆใฃใฆ้็บ่จ้ฒใๆธใใฆใใใพใใใคใใซๆ็ต็ซ ใงใใใใฎ่จไบใงใฏUI&ๆผๅบ็ทจใจ้กใใๆขๅญใฎๆ็จฟใใญใปในใซใจใดใกใฝใ่ฃ
้ฃพไฝใฃใใใจใซๅฏพใใฆ็ดนไปใใพใใ
2. ใใใพใงใฎใ๐ฏNumbers3&4ใฎๅฝ้ธ็ชๅทใไบๆธฌใใใMAGIใใทในใใ ใไฝใใ
่ฅฟๆฆ2025ๅนดใ
ใใใจใณใธใใขใฏใ็นฐใ่ฟใใใๆๅใฎ่จ้ฒโโใๅฎใใใฎๅคใๅธใใฎๅฑฑใซ็ตๆญข็ฌฆใๆใคในใใใฒใจใคใฎๆๆๆฑบๅฎๆฉๆงใๆง็ฏใใๆฑบๆใๅบใใใ
ใใฎๅใฏโโ N-MAGIใทในใใ ใ
ใขใใซๅใฏMELCHIORใBALTHASARใCASPERใ
ใใใใใ็ฐใชใๆ่ใญใธใใฏใๆใกใๅ่ญฐใซใใฃใฆโใใฃใจใใใใๅฝ้ธๆฐๅญโใๅฐใๅบใใ
ใใผในใจใชใฃใใฎใฏใใใคใฆๅญๅจใใ็ฅ่ฉฑใจใใใใฆโฆใขใใกใๆฐไธ็ดใจใดใกใณใฒใชใชใณใใฎๆๅฟๆฑบๅฎAIใ
้ๅปใฎใใผใฟใๆ็ณปๅๅญฆ็ฟใๅบ็พ้ ปๅบฆใ้ๅผตใใขใซใดใชใบใ ใใใใใ่ๅใใใๆฝ้ธๆฐๅญใฎไบๆธฌใจใใโไบบ้ก่ฃๅฎ่จ็ปโใซใไผผใๅคขใ่ฟฝใๆฑใใ้็บ่
ใฎๅงฟใใใฃใใ
ใในใฆใฏใๅฝใฆใใใใจใใๆฌฒๆใจใใ้ใณใใใใจใใๆฌ่ฝใฎใพใพใซใ
ใฃใฆใใ่ถ็ชใฏใใใจใใฆ...ๆฌ็ทจใซๅ ฅใใพใ๐
3. ็พ็ถใจๆนๅ
โ ็พ็ถ
ใพใใฏ็พๅจใฎๅบๅใใฟใฆใใใ ใใใใ
ไปฅไธใฎใใใซ็พๅจใฏใๅฝ้ธ็ชๅทใๅนณๆฅใซๅ้ใใฆใใใผใฟใใใจใซๆฌกใฎๆฐๅญใไบๆธฌใใMAGIใซๅ
ฅๅใใฆใๅบๅใจใใฆไปฅไธใฎใใใชUIใงๅฝ้ธ็ชๅทใฎไบๆธฌๆฐๅญใ๏ผใคX(ๆงTWITTER)ใซๆ็จฟใใฆใใใ
โ ๆนๅ
ๅๅใฎ่จไบใฎ่ฆๆฑ2ใง2ๆใฎ็ปๅใงๆงๆใใใจใใ1ๆ็ฎใซๆฌๆฅใฎไบๆธฌ็ชๅทใจๅฝ้ธ็ชๅทใ่กจ็คบใใใใฎใจใใ้ขจใซๆธใใฆใใใฎใงใไปๅใฏใใฎ้จๅใๅฎ่ฃ
ใใพใใใ
ๅฝๅใฏไบๆธฌๆฐๅญใฎใฟใฎๅฝขใงๅฎๆใงใใใใฃใใจๆใฃใฆใใใฎใงใใใใใไธๅทฅๅคซใใใฆๅฎๆใจใใใใจๆใใพใใใ
โ ๅ
จไฝใใญใผ
ๅ
จไฝใใญใผใซ้ขใใฆใฏๅๅใฎ่จไบใจๅคใใใชใใฎใงใ่ชฌๆใฏ็ใใใฆใใใ ใใพใใ
4. ใใใณใผใใฃใณใฐ๏ผ
ๅๅใฎUI้จๅใๅฐใๅคๅใใใๅฝขใงๆธใใฆใใพใใ
import os
import shutil
import time
from PIL import Image, ImageDraw, ImageFont
from datetime import datetime, timedelta
def print_right_aligned(text_lines):
columns = shutil.get_terminal_size().columns
for line in text_lines:
print(line.ljust(columns))
def right_pad(text, width):
return text.rjust(width)
def render_text_to_image(lines, save_path, font_size=17, font_color=(255, 153, 51), bg_color=(0, 0, 0)):
font_path = "C:\\Windows\\Fonts\\consola.ttf" # Consolasๅบๅฎๅน
ใใฉใณใ
font = ImageFont.truetype(font_path, font_size)
max_width = max(len(line) for line in lines)
img_width = max_width * font_size // 1.7 - 35
img_height = len(lines) * (font_size + 5)
img = Image.new("RGB", (int(img_width), int(img_height)), color=bg_color)
draw = ImageDraw.Draw(img)
y = 0
for line in lines:
draw.text((10, y), line, font=font, fill=font_color)
y += font_size + 5
img.save(save_path)
print(f"ๅบๅใใญในใใ็ปๅๅใใพใใ: {save_path}")
def display_yesterday_numbers():
today = datetime.today()
weekday = today.weekday()
if weekday == 5:
yesterdays = (today - timedelta(days=1)).strftime("%Y-%m-%d")
target_date = today - timedelta(days=1)
elif weekday == 6:
yesterdays = (today - timedelta(days=2)).strftime("%Y-%m-%d")
target_date = today - timedelta(days=2)
elif weekday == 0:
yesterdays = (today - timedelta(days=3)).strftime("%Y-%m-%d")
target_date = today - timedelta(days=3)
else:
yesterdays = (today - timedelta(days=1)).strftime("%Y-%m-%d")
target_date = today - timedelta(days=1)
date_str = target_date.strftime("%Y%m%d")
save_oldpredict_path = f"D:/01.้็บ/06Numbers3/old_predictions_{date_str}.txt"
save_oldnumbers_path = f"D:/01.้็บ/06Numbers3/numbers_19941007_to_{date_str}.csv"
if os.path.exists(save_oldpredict_path):
with open(save_oldnumbers_path, "r", encoding="utf-8") as f:
lines = f.readlines()
n3day,n3,n4 = lines[-1].strip().split(",")
old_numbers3_number = n3
old_numbers4_number = n4
data = {}
with open(save_oldpredict_path, "r", encoding="utf-8") as f:
for line in f:
key, value = line.strip().split(": ")
data[key] = value
old_numbers3_casper = data.get("NUMBERS3_CASPER")
old_numbers3_balthasar = data.get("NUMBERS3_BALTHASAR")
old_numbers3_melchior = data.get("NUMBERS3_MELCHIOR")
old_numbers4_casper = data.get("NUMBERS4_CASPER")
old_numbers4_balthasar = data.get("NUMBERS4_BALTHASAR")
old_numbers4_melchior = data.get("NUMBERS4_MELCHIOR")
else:
print(f"ๆจๆฅใฎไบๆณ็ตๆใใกใคใซใ่ฆใคใใใพใใ: {save_oldpredict_path}")
old_numbers3_number="---"
old_numbers4_number="----"
old_numbers3_casper="---"
old_numbers3_balthasar="---"
old_numbers3_melchior="---"
old_numbers4_casper="----"
old_numbers4_balthasar="----"
old_numbers4_melchior="----"
os.system("")
orange = "\033[38;2;255;153;51m"
reset = "\033[0m"
# logo ่กจ็คบ
logo = [
f"โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ",
f"โ โโโโ โโโ โโโโ โโโโ โโโโโโ โโโโโโโ โโโโโโโโ โ",
f"โ โโโโโโ โโโ โโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ โ",
f"โ โโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โ",
f"โ โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโ โ",
f"โ โโโ โโโโโโ โโโ โโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโ โ",
f"โ โโโ โโโโโ โโโ โโโโโโ โโโ โโโโโโโ โโโโโโโโ โ",
f"โโโโโโโโโโโโโโโAnnouncement of Results for {yesterdays}โโโ"
]
os.system("cls")
numberswin_lines = [
f"โโWinning NUMBERSโ",
f"โ NUMBERS3 {old_numbers3_number} โ",
f"โ----------------โ",
f"โ NUMBERS4 {old_numbers4_number} โ",
f"โโโโโโโโโโโโโโโโโโ"
]
numbers3_lines = [
f"โโNUMBERS3โโโโโโโ",
f"โ CASPER {old_numbers3_casper} โ",
f"โ BALTHASAR {old_numbers3_balthasar} โ",
f"โ MELCHIOR {old_numbers3_melchior} โ",
f"โโโโโโโโโโโโโโโโโ"
]
numbers4_lines = [
f"โโNUMBERS4โโโโโโโโโ",
f"โ CASPER {old_numbers4_casper} โ",
f"โ BALTHASAR {old_numbers4_balthasar} โ",
f"โ MELCHIOR {old_numbers4_melchior} โ",
f"โโโโโโโโโโโโโโโโโโโ"
]
combined_lines = []
for lw, l3, l4 in zip(numberswin_lines, numbers3_lines, numbers4_lines):
combined_lines.append(lw + " " + l3 + " " + l4)
for line in combined_lines:
print(orange + right_pad(line, 60) + reset)
all_lines = logo + [""] + combined_lines
image_path = "D:/01.้็บ/06Numbers3/msdos_screenshot_yesterday.png"
render_text_to_image(all_lines, image_path)
def display_numbers(numbers3_casper, numbers3_balthasar, numbers3_melchior,
numbers4_casper, numbers4_balthasar, numbers4_melchior):
os.system("")
orange = "\033[38;2;255;153;51m"
reset = "\033[0m"
logo = [
"โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ",
"โ โโโโ โโโ โโโโ โโโโ โโโโโโ โโโโโโโ โโโโโโโโ โ",
"โ โโโโโโ โโโ โโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโ โ",
"โ โโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โ",
"โ โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโ โ",
"โ โโโ โโโโโโ โโโ โโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโ โ",
"โ โโโ โโโโโ โโโ โโโโโโ โโโ โโโโโโโ โโโโโโโโ โ",
"โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโNext Predictionโโโ"
]
os.system("cls")
numbers3_lines = [
f"โโNUMBERS3โโโโโโโโ",
f"โ CASPER {numbers3_casper} โ",
f"โ BALTHASAR {numbers3_balthasar} โ",
f"โ MELCHIOR {numbers3_melchior} โ",
f"โโโโโโโโโโโโโโโโโโ"
]
numbers4_lines = [
f"โโNUMBERS4โโโโโโโโโ",
f"โ CASPER {numbers4_casper} โ",
f"โ BALTHASAR {numbers4_balthasar} โ",
f"โ MELCHIOR {numbers4_melchior} โ",
f"โโโโโโโโโโโโโโโโโโโ"
]
combined_lines = []
for l3, l4 in zip(numbers3_lines, numbers4_lines):
combined_lines.append(" " + l3 + " " + l4)
for line in combined_lines:
print(orange + right_pad(line, 60) + reset)
all_lines = logo + [""] + combined_lines
image_path = "D:/01.้็บ/06Numbers3/msdos_screenshot_today.png"
render_text_to_image(all_lines, image_path)
โ ่กจ็คบ็ตๆ
6. ใใใใซ
2ๆใฎ็ปๅใๆทปไปใใใใคใผใใใงใใฆใใใใจใ็ขบ่ชใใใพใ้ๅปใฎๅฝ้ธ็ชๅทใจไบๆธฌ็ชๅทใ็ขบ่ชใงใใUIใ่ฟฝๅ ใงใใฆใใใฎใ็ขบ่ชใงใใพใใใ
็กไบใN-MAGIใใญใธใงใฏใใๅฎ้ใงใใพใใใ
ใปใผ1ๅนด้ใจใใใใพใใใใ่ชๅใงๆฐๅญ็ๆAIใไฝใใใใใใใจใฏๆงใ
ใช็ต้จใจQiita่จไบ้ใฎใใใใ ใจๆใฃใฆใใพใใ
ๆฎใใใใใใงใใใๅผใ็ถใๆฅๅนดๅบฆใใใใใใ้กใใใใใพใ๐
7. MAGIไผ่จ
1. ใไฝๆฆๆฆ่ฆใ๏ผๅ
จไฝๆงๆณใจ่จญ่จๆน้
ใใ- ๅ
จไฝๆงๆณใจ่จญ่จๆน้
2. ใใใผใฟๅ้็ทจใ๏ผ้ๅปใฎๅฝ้ธ็ชๅทใฎๅ้
ใใ- ้ๅปใฎๅฝ้ธ็ชๅทใใฉใ้ใใ๏ผ
3. ใใขใใซๆง็ฏ็ทจใ๏ผ3็จฎใฎใขใใซ๏ผCASPER / BALTHASAR / MELCHIOR๏ผๅฎ่ฃ
ใจ็ฒพๅบฆๆฏ่ผ
ใใ- CASPER / BALTHASAR / MELCHIORใฎๅฎ่ฃ
ใจ็ฒพๅบฆๆฏ่ผ
4. ใๆ็จฟ็ทจใ๏ผX APIใ็จใใๆ็จฟ
ใใ- X APIใ็จใใฆไบๆธฌใ่ชๅๆ็จฟ
5. ใUI๏ผๆผๅบ็ทจใ๏ผMAGI้ขจUIใMS-DOSใงๅ็พใใฆใไบๆธฌใ่ฆ่ฆๅ๏ผ
ใใ- MS-DOSใงMAGI้ขจUIใๆง็ฏ
่ฌ่พ
ไปๅนดใฎ10ๆใซ30ๅจๅนดใ่จๅฟตใใใใจใ่ช ใซใใใงใใๆใฃใฆใใใพใใๅๅใฎใๅบต้็งๆๅฑใใซๅผใ็ถใใ30ๅจๅนด่จๅฟตๅฑALL OF EVANGELIONใใซใใใฒ่กใใใใจๆใฃใฆใใใพใใๅผใ็ถใๅฟๆดใใฆใใพใ๏ผ

