C dilinde konsolda resim çizme

CrevZZ

Hectopat
Katılım
9 Temmuz 2020
Mesajlar
142
Merhaba. Konsolda yön tuşlarıyla hareket edip, mesela bir tuşa basınca imlecin bulunduğu konuma * işareti koyup yine yön tuşlarıyla hareket edip başka bir konuma gidip yine tuşa basıp * işareti koyup bir bütün halinde bakılırsa resim çizmek gibi paint uygulaması gibi bir şey yapmak istiyorum. Fakat daha en baş kısımlarda mesela en basit anlamda yön tuşlarıyla hareket etmede bile sorun yaşıyorum. C#'a alışmıştım onda nasıl yapabileceğimi biliyorum fakat C'deki kullanımlar çok farklı olduğu için en başta tıkandım. İnternetten araştırıp bakıyorum ve hiçbir düzgün kaynak bulamadım. Bu konuda yardımcı olabilecek var mı?
 
C dilince windows.h kütüphanesinde böyle şeyler mevcut. Tezimde böyle bir proje yapmıştım, ayrıca ekranın hangi pikselinde olduğunu anlayabileceğiniz kullanımlar da mevcut. Kütüphaneden bağımsız olabilir veya olmayabilir tam hatırlamıyorum.

Şu anda pek müsait değilim fakat detaylarını konuşabiliriz, gidişat konusunda fikirler verebilirim.
 
C:
#include <windows.h>

void gotoxy(int x, int y)
{
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

Bu kod işini görecektir. anlatmaya pek gerek yok SetConsoleCursorPosition fonksiyonunun isminden de anlaşılıyor.
 
C:
#include <windows.h>

void gotoxy(int x, int y)
{
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

Bu kod işini görecektir. Anlatmaya pek gerek yok, SetConsoleCursorPosition fonksiyonunun isminden de anlaşılıyor.

Eklemesi gereken birkaç fonksiyon daha var projesi için fakat evet kullanımı bu şekilde ellerine sağlık.

Fonksiyona verdiğin koordinatlarla pencerede gezinebileceksin. Biraz zahmetli bir iş.
 
Son düzenleme:
Teşekkürler C#'da direk ayriyeten bir şey eklemeden yapılabiliyordu ya burda çok kafam karıştı. İnternetten bilmediğim bir fonksiyonu ekleyip düzenleyip yapmaya çalışıyordum da yapamamıştım. Attıklarınızla hallettim ama yine tam bilmiyorum tekrardan yapmam gerekirse yine burdan bakıp yapacağım yani :) teşekkürler tekrardan.
 

Geri
Yukarı