Not: Anlatacağım yöntem sadece linux ve unix türevlerinde çalışmaktadır.
Konsol uygulamalarında kod renklendirme aslında birkaç standartlaşmış ascii koduna dayanmaktadır. Konsolun belirli bir noktasına çıktı yapmak da aynı şekilde bir dizi ascii kodu ile yapılmaktadır. Buradan da anlayacağımız gibi renk değiştirme ekrana çıktı komutu ile gerçekleştirilmektedir.C için örnekprintf(“%c[%d;%d;%dmRenkli Merhaba%c[0m”, 0x1B, 1, 31, 40, 0x1B);
python içinprint “33[1;31;40mRenkli Merhaba33[0m”
eğer doğru yazdıysanız ekrana kırmızı renkte çıktı verecektir.şimdi yazdırdığımız şeye bir bakalım.33 (0x1B): Aslında kilit nokta burası. 33 karakteri ile konsola mesaj yolluyoruz. Bu ascii kodu çıktıyı farklı bir konuma yazdırırken de aynı olacak.
[: bu köşeli parantezimizde konsola gönderdiğimiz mesajın parametrelerini girmeye başladığımızı bildiriyor.
;: noktalı virgül ile de parametreleri birbirinden ayırıyoruz
ilk parametre: 1(tamsayı): burada çıktının parlaklığı yer alıyor 1 veya 0 alabilir.
ikinci parametre: 31 (tamsayı): burada yazının rengini tanımlıyoruz. Aşağıdaki renk kodlarından biri gelebilir
yazı renkleri:30= Siyah31= Kırmızı32= Yeşil33= Sarı34= Mavi35= Magenta36= Çiyan37= Beyaz
Son parametre: 40: Bu parametremiz de yazının arkaplan rengi içindir.
Arkaplan renkleri40= Siyah41= Kırmızı42= Yeşil43= Sarı44= Mavi45= Majenta46= Çiyan47= Beyaz
m : m karakteri konsola gönderdiğimiz mesajın sonlandığını bildirmektedir.
Konsolda Çıktıyı konumlandırmak
yine ascii kodlarımızla çıktımızı yönlendireceğiz. Ancak bazı farklılıklar var.C içinprintf(“%c[%d;%df %s %c[0m”,0x1B,y,x, yazilacak_metin, 0x1B);
python içinprint “33[10;10f” + yazilacak_metin + “33[0m”
Yine ilk parametre aynı 33 karakteri (0x1B). burada parametreleriniz şöyle:1. parametremiz dikey konum yani y konumu2. parametremiz yatay yani x konumuf : ise burada değişiklik gösteriyor. gene konsola gönderdiğimiz mesajın sonlandığını bildiriyor.NOT !!! : İmleçin konumu ile oynayan bir kod yazdıysanız progarmınızın sonlanırken konsolu temizlemesi iyi olur yoksa garip bir şekilde komut bekleme haline geçiyor ve yazılar üst üste biniyor.
C için konsol temizle:#include //system fonksiyonunun prototipi burdadırsystem(“clear”); // linux için temizleme komutusystem(“cls”); //windows için temizleme komutu
Python için konsol temizlemeimport osos.system(“clear”) # linuxos.system(“cls”) # windows