Tam Sürümünü Görmek İçin : '*' karekterini kaydıran program??
http://img260.imageshack.us/img260/3539/ads305znw4.jpg
* karekteri şekildeki gibi girilen koordinatlardan başlayarak ve herhangi bir tuşa basılana kadar ekran sınırları içide hareket eden programı yazınız...
arkadaşlar hoca bize grafiği öğretti ama rectangle circle gibi şeyleri öğretti kaydırmayı öğretmedi şimdi bu soruyu yapmamı istiyor.lütfen yardımınızı bekliyorum hocaya öğretmediniz diyorum yapcan! diyor.biraz mantığını anlatırmısınız nasıl yapabilirim.teşekkürler...:s006:
acehreli
07/05/2007, 23:55
Karakterin bir hizi ve yonu var. Su andaki yerini biliyorsak belirli bir zaman birimi sonraki yerine de bilebiliriz. Yeni yeri hesapla ve cizdir. Aslinda cok eglenceli bir program... :)
Ali
uğraşıcam hocam ama hangi komutu kullanmam gerektiğini söylerseniz çok sevinirim.siz komutu söyleyin googleda nasıl kullanıldığını araştırıp yapmaya çalışırım ama şuan için hiç bir komut bilmiyorum kaydırma ile ilgili ve bu soruyu yapmam gerek:(
bir animasyonda, sürekli olarak :
ekranı temizleyip, karekterleri yeni konumlarına bağlı olarak çiziyorsun.
ekranı temizlemezsen ne olur ?
niye böyle bi soru sordun bilmiyorum ama ekranı temizlemezsek eski karekterler olduğu yerde kalır.bizim yeni yaptığımız yeni konumundaki karekterlerle birlikte görülür.
lütfen yardımcı olun süre kısalıyor programı yapmam lâzım lütfen yardım edin lütfeeen.
problemin, cismin arkasında bıraktığı iz olduğunu düşündüğümden öyle dedim.
yok eğer ekranın istedin yerine o karekteri bastıramıyorsan,
kullandığın kütüphanenin header dosyasını incele, drawString gibi birşey ara.
bana basit bişey yazabilirmisiniz bu mantıkla 2 üç satırlık lütfen yapamıyorum:(:(
düzenle olmadığından flood yapıyorum özür dilerim.
bugün c'yi en iyi bilen arkadaşıma danıştım.bizim öğrendiklerimizle bunu yapamayız dedi.yardımcı olurmusunuz bilen abilerim arkadaşlarım hangi komutu kullanıcam.nasıl bir döngü kurmalıyım?
acehreli'nin anlattığı gibi,
x, y koordinatları tutacak.
dx, dy hız ve doğrultuyu tutacak.
x = x + dx
y = y + dy cismi hareket ettirmek için kullanılacak.
ekranının minimum ve maximum X ve Y değerlerini kullanarak
ekranın dışına çıkıp çıkmadığını test edeceksin.
x > X_MAX ise x = X_MAX ve dx = -dx olacak
küçük ise ne olur ?
y için aynı kontrol gerekli.
while( !bitir )
-- cismi hareket ettir.
-- sınırları kontrol et.
-- cismi çiz
-- kullanıcı bir tuşa basmış mı kontrol et, basmış ise bitir = true
kimsenin yapamadığı ödevden sana bir zarar gelmez FarCoN,
ayrıca hocanıza somut şeyler sorarsanız,
ipucu alırsınız gibi geliyor.
KamilORS
09/05/2007, 20:32
maksak grafik kullanmadan sadece * karakterini ekranın kenarlarından çarparak yön değiştirmesi ise ve de iden borland (turbo c, c++ builder vs. ) ise gotoxy() fonksiyonu ile yapabilirsin.conio.h da olması gerek.
maksak grafik kullanmadan sadece * karakterini ekranın kenarlarından çarparak yön değiştirmesi ise ve de iden borland (turbo c, c++ builder vs. ) ise gotoxy() fonksiyonu ile yapabilirsin.conio.h da olması gerek.
ben hocaya sordum oda gotoxy ile yapın dedi ama gotoxy ile nası kaydırcamki.o komut böle sadece çizdirmeye yaramıyormu :aglama::garip:
acehreli
12/05/2007, 20:11
gotoxy(eski_x, eski_y);
bosluk_karakteri_koy(); // eski yildizi sildin
gotoxy(yeni_x, yeni_y);
yildiz_karakteri_koy(); // yeni yildizi yerlestirdin
Ali
gcc de gotoxy() varmı? ;)
konsolun 25x80 olduğunu varsayıp matrisi herseferinde ekrana yazdırsak daha taşınabilir bir kod olmaz mı?
Not: Soruya cevap değil acehreli'ye birikiminden dolayı.
golgepapaz
12/05/2007, 21:30
aman tanrim hala mi gotoxy, yazilim endustrisi aldi basini gidiyor,mufredatta hala gotoxy li odevler var.... du bakalim hayrola...hala pascal da ogretiyorlardir bunlar.....
aman tanrim hala mi gotoxy, yazilim endustrisi aldi basini gidiyor,mufredatta hala gotoxy li odevler var.... du bakalim hayrola...hala pascal da ogretiyorlardir bunlar.....
Bence doğru yapıyorlar. Kodlama ve algoritma öğrenmek için en kısa yol konsolda program yazmak.
Kodlama ve algoritma öğrenecekler windows ta pencere buton oluşturmayı değil. Arayüz geliştirmek sonraki adım.
acehreli
12/05/2007, 22:39
mr_c, gcc'de gotoxy yok tabii ama FaRCoN gotoxy ile yapacakmis. :)
golgepapaz, ya printf'e ne demeli... Onu da kullaniyorlar. Hatta pthread_create ve arkadaslarini bile... Ah, ah... ;)
Ali
Ali hocam Allah razı olsun artık yeni öğretmenim sizsiniz:)
çok uğraştırıcı ama şimdi biraz yaptım mantıığı kavradım yani yarın sabahtan akşama kadar gotoxy(15,10); printf("*"); gotoxy(15,10); clrscr(); yazcam :D
döngü kurdum yukarıya doğru çok güzel kayıyoda kenarlara çarparken döngü bitürlü kuramadım elle yazıyorum ama çalışıyo;) o bana yeter .İnşAllah sorun çıkmadan yaparım.
golgepapaz (http://forum.ceviz.net/member.php?u=76398) pascal geçen sene öğrendik:D bende isterim windows ortamında programlar yapmak ama müfredat böyle ne yapalım elden bişey gelmez.bu sarı lacivert ekrana baka baka kuscam:Dkoyu cimbomluyum .bişey daha bu c ekranını sarı kırmızı yapma imkanımız varmı?Şaka şaka abilerim çok sağolun siz olmasaydınız ben ne yaprdım:):):)
acehreli
13/05/2007, 00:21
clrscr() degil de printf(" ") yapacaksin tabii ki. Butun ekrani silmeye gerek var mi... :) Hatta putchar(' ') cok daha uygun.
Siyah ekranin rengini degistirebiliyorsun: Pencere cercevesindeki sol uste tiklayinca acilan menude (pencere menusu?) en son secenek. :)
Ali
mr_c, gcc'de gotoxy yok tabii ama FaRCoN gotoxy ile yapacakmis. :)
Şöyle bi not yazmıştım : "Not: Soruya cevap değil acehreli'ye birikiminden dolayı." yani soruda gotoxy() istenmiş, tamamda gotoxy kullanmadan standart içinde çözemezmiyiz? sorusu size. ;)
acehreli
13/05/2007, 06:16
Hayir, gotoxy() gibi bir sey kullanmadan cozemeyiz; cunku standart, ekran gibi iki boyutlu bir cikis aygitindan habersizdir.
Standardin tanimladigi stdin, stdout gibi akimlar, tek boyutludur. O akimlara karakterleri art arda gonderir veya art arda okuruz. Bu tanimin disindaki islemler ek kutuphaneler yardimiyla halledilir.
Sen de o yuzden butun matrisi tekrar cizmeyi oneriyorsun. Ben de kabul ediyorum... Zaten ben de kisa bir zaman once bir kitaptaki platforma bagli programlari o sekilde platformdan bagimsiz hale getirmistim. Belki de sen de zaten o olaya gonderme yapiyordun. Ben anlamamisim... :)
Ali
Ali hocam
bakarmısınız acaba program sizde çalışıyormu şimdi okulda aksilik olmasın nolur hocam nolur:( :utangac::)
bende bazen çalışıyo bazen çalışmıyorda siz bakın lütfen
abilerim bişey daha sorcam ben kaydırmayı yaptımda.klavyeden bir tuşa basılana kadar kaymasını nasıl sağlıycam.
bu gotoxy();lerin başına do kaycam do{goto....} while(buraya ne yazıcam yani böylemi olucak) lütfen yardım ederseniz sevinirim.
acehreli
14/05/2007, 06:08
kbhit() islevi klavyede basili karakter oldugunda 0'dan farkli bir deger dOndUrur. while icinde onu kullanabilirsin.
Ali
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.