1024-1024 4x4 Harita Baz Alır
Metin Vnum / Sayı / Süre (Saniye ve Saat Cinsinden Gir Örnek 5s-5h)
PC'de python yüklü olmalı
Kimin işine yarar bilmiyorum benim işimi gördü. Python:
import random
import os
import math
# ======================================================
# HARITA AYARLARI (Gerektiğinde Düzenlenebilir)
# ======================================================
X_MIN, X_MAX = 50, 950
Y_MIN, Y_MAX = 50, 950
SAPMA = 5
# ======================================================
# Renk Kodları (ANSI)
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
CYAN = '\033[96m'
RESET = '\033[0m'
def profesyonel_regen_olusturucu():
current_path = os.path.dirname(os.path.abspath(__file__))
dosya_adi = os.path.join(current_path, "stone.txt")
os.system('cls' if os.name == 'nt' else 'clear') # Ekranı temizle
print(CYAN + "="*60 + RESET)
print(YELLOW + " METİN TAŞI OLUŞTURMA SCRIPTİ V1 OBULUT " + RESET)
print(CYAN + "="*60 + RESET)
metin_verileri = []
toplam_hedef = 0
while True:
vnum_input = input(f"\n{YELLOW}Metin VNUM{RESET} (Tamamlamak için 'ok' yazınız): ")
if vnum_input.lower() == 'ok':
break
try:
vnum = int(vnum_input)
adet = int(input(f" {CYAN}->{RESET} Bu metinden kaç adet oluşturulsun?: "))
sure = input(f" {CYAN}->{RESET} Yenilenme süresi (Varsayılan 90s): ") or "90s"
for _ in range(adet):
metin_verileri.append((vnum, sure))
toplam_hedef += adet
print(f"{GREEN} [BAŞARILI]{RESET} {adet} adet {vnum} listeye eklendi. Güncel Toplam: {toplam_hedef}")
except ValueError:
print(f"{RED} [HATA]{RESET} Geçersiz sayısal giriş! Lütfen tekrar deneyiniz.")
if not metin_verileri:
print(f"\n{RED}[UYARI]{RESET} Liste boş olduğu için işlem sonlandırıldı.")
return
# Homojen dağılım için veriyi karıştır
random.shuffle(metin_verileri)
# Matematiksel ızgara hesaplamaları
izgara_boyutu = math.ceil(math.sqrt(toplam_hedef))
adim_x = (X_MAX - X_MIN) / izgara_boyutu
adim_y = (Y_MAX - Y_MIN) / izgara_boyutu
try:
with open(dosya_adi, "w", encoding="utf-8") as f:
f.write(f"// OBULUT Professional Regen - Total: {toplam_hedef}\n")
count = 0
for i in range(izgara_boyutu):
for j in range(izgara_boyutu):
if count >= toplam_hedef:
break
x = int(X_MIN + (i * adim_x) + random.randint(-2, 2))
y = int(Y_MIN + (j * adim_y) + random.randint(-2, 2))
vnum, sure = metin_verileri[count]
f.write(f"m\t{x}\t{y}\t{SAPMA}\t{SAPMA}\t0\t0\t{sure}\t100\t1\t{vnum}\n")
count += 1
f.flush()
os.fsync(f.fileno())
print(f"\n{CYAN}" + "="*60 + RESET)
print(f"{GREEN}İŞLEM BAŞARIYLA TAMAMLANDI!{RESET}")
print(f"Toplam Dizilen Metin: {count} Adet")
print(f"Dosya Konumu: {YELLOW}{dosya_adi}{RESET}")
print(CYAN + "="*60 + RESET)
except Exception as e:
print(f"\n{RED}[KRİTİK HATA] Dosya yazımı başarısız: {e}{RESET}")
if __name__ == "__main__":
profesyonel_regen_olusturucu()
input("Kapatmak için ENTER tuşuna basınız...")




