commodore.gen.tr

Commodore => Commodore Yazılım => Konuyu başlatan: eins üzerinde Şubat 17, 2016, 00:56:13 ÖÖ



Konu Başlığı: Bu da benim "tenliner" denemem...
Gönderen: eins üzerinde Şubat 17, 2016, 00:56:13 ÖÖ
Bilindiği üzere basic ile 10 satırlık oyun yarışması var.
Bu da C64 basic için benim denemem. Açıkçası daha bitmedi. Hem optimize edilecek hem de oyun sonu kontrolü henüz yok. Ama şimdilik 10 satır dahilinde. :)

Oyun konusu şu; 3x3 toptan oluşan 5 bölge var. Başlangıçta her bölgede aynı renkte 9 top var. Çalıştırılınca bu toplar karıştırılıyor. Amaç her bölgede aynı renkte 9 top olacak şekilde tekrar sıralamak. Rubik küpün 2 boyutlu olanı gibi birşey.

Klavye ile oynanıyor. 123 ve 456 tuşları ile ilgili satır yada sütun 1 top sağa yada aşağıya doğru kaydırılıyor.

Aşağıdaki fotoda her bir tuşun oyun sahasındaki topları hangi yönde kaydırdığını işaretledim.

(http://i64.tinypic.com/jszyh3.jpg)

Oyun zorluğunu ilk satırdaki Z=1 ataması ile değiştirmek mümkün. 0 en kolay 9 en zor gibi. Z ne kadar büyük olursa saha o kadar çok karıştırılıyor. Aşağıda çok karıştırılmış bir saha örneği var:

(http://i64.tinypic.com/jgtmwi.jpg)

Açıkçası oyun düşündüğümden çok daha zor olmuş. 3. seviyeden sonrasını çözemiyorum. :)

Kod aşağıda:

Kod:
10 z=1:printchr$(147)"     456"chr$(13)chr$(13)chr$(13)chr$(13)chr$(13)"1"
11 print"2"chr$(13)"3":poke53280,0:poke53281,0:c=1:a=3:b=0:gosub90
12 c=2:b=6:gosub90:c=7:b=3:gosub90:c=5:a=0:gosub90:c=14:a=6:gosub90
20 forj=0toz:p=int(rnd(1)*3):gosub70:p=int(rnd(1)*3):gosub80:next
30 print chr$(19);"?":get a:if a>0 and a<4 then p=a-1:gosub70
32 if a>3 and a<7 then p=a-4:gosub80
33 goto 30
70 t=55497+p*40:poket,peek(t+9):fori=0to8:poket+9-i,peek(t+8-i):next:return
80 t=55701+p:poket-360,peek(t):fori=0to8:poket-i*40,peek(t-40-i*40):next:return
90 forx=atoa+2:fory=btob+2:t=1106+y*40+x:poket,81:poke54272+t,c:nexty,x:return

Yazmaya üşenenler için prg imajı da ekte.

İyi geceler...


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: yavuzg üzerinde Şubat 17, 2016, 01:40:52 ÖÖ
Visual Studio ile ekrana nokta bastıran en basit programın bile megabytle'larca büyüklükte olduğu (çalışması için gereken binlerce DLL ve API'yi saymıyorum bile) günümüzde o scanline'lı sayılar ve renkli karater "top" ların insana hala büyüleyici gelmesi enteresan :)

Eline sağlık, kolay gelsin ;)


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: Cengiz Demir üzerinde Şubat 17, 2016, 08:10:50 ÖÖ
Güzel bir çalışma olmuş. ;)


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: Simon (Özay Turay) üzerinde Şubat 17, 2016, 08:55:07 ÖÖ
Eline sağlık, wizofwor'un bahsettiği yarışmaya katılacak mısın?


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: wizofwor üzerinde Şubat 17, 2016, 08:57:57 ÖÖ
Güzel bir fikir. Bitmiş halini dört gözle bekliyorum.

Bilindiği üzere basic ile 10 satırlık oyun yarışması var.
Bu da C64 basic için benim denemem. Açıkçası daha bitmedi. Hem optimize edilecek hem de oyun sonu kontrolü henüz yok. Ama şimdilik 10 satır dahilinde. :)
Bu şekilde sığdıramazsan kısaltmaları kullanabilirsin biiyorsun değil mi? Satır başına 80 karakter limiti komutları yazarken geçerli. List aladığında 80 karakterden fazla çıkmasını sorun etmiyorlar.

Bu durumda ekran görüntüsü ile başvuruyorsun. Aşağıda verdiğim örneğe bakabilirsin.

(http://i.imgur.com/nvocTj3.png)

Alıntı
Açıkçası oyun düşündüğümden çok daha zor olmuş. 3. seviyeden sonrasını çözemiyorum. Gülümseme
Bu BASIC'te yazdığım Mahjong oyununda bana da olmuştu. Ne kadar kolaylaştırmaya çalıştıysam da bir türlü oyunu yenemedim.

Visual Studio ile ekrana nokta bastıran en basit programın bile megabytle'larca büyüklükte olduğu (çalışması için gereken binlerce DLL ve API'yi saymıyorum bile) günümüzde o scanline'lı sayılar ve renkli karater "top" ların insana hala büyüleyici gelmesi enteresan :)
Visual Studio'nun dll'leriyle boy ölçüşemez ama burada da arka planda çalışan BASIC yorumlayıcısı ve kernel rutinlerini unutmamak lazım. Keşke Windows beraberinde Solitaire, Minsweper koyana kadar amatörlere hitap eden BASIC gibi yalın bir programlama dili de koysalarmış.


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: blackturk üzerinde Şubat 17, 2016, 10:24:22 ÖÖ
10 satır için iyi bir deneme olmuş.


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: Cengiz Demir üzerinde Şubat 17, 2016, 10:35:09 ÖÖ
Bence, yarışmaya girerse derece şansı var gibi :)


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: eins üzerinde Şubat 17, 2016, 12:12:17 ÖS
@Simon, yarışmaya katılmam herhalde, 2015 entrylerine baktım da adamlar bayağı action yazmışlar 10 satırda. :D Dün gece velet uyutmadı, ne yapılabilir diye karaladım sadece...

@wizofwor, ben kısaltmaların geçerli olduğunu bilmiyordum. List çekince 80 karakterin altında kalmasına uğraştım. Hatta okunabilir olsun diye tırnak içindeki kontrol karakterlerini bile eklemedim chr$ kullandım saf gibi. Bir de çok zaman geçmiş unutmuşum, c64 de ELSE yokmuş. :P Dolayısı ile her bir kontrol bir satırı tüketiyor mecburen. Bence esas kısıtlayıcı yan bu.

Bir de zaten yazmadan önce aklımda oluşan hoş bir zeka oyunu olur düşüncesi dediğim gibi yazıp oynayınca kayboldu. Zira çok zor olmuş ve heves bırakmıyor insanda. Belki biraz mantığı değiştirip daha basit bir hale sokabilirim.

Teşekkürler cevaplarınız için.


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: wizofwor üzerinde Şubat 17, 2016, 12:38:18 ÖS
Ben kısaltmaların geçerli olduğunu bilmiyordum. List çekince 80 karakterin altında kalmasına uğraştım. Hatta okunabilir olsun diye tırnak içindeki kontrol karakterlerini bile eklemedim chr$ kullandım saf gibi. Bir de çok zaman geçmiş unutmuşum, c64 de ELSE yokmuş. :P Dolayısı ile her bir kontrol bir satırı tüketiyor mecburen. Bence esas kısıtlayıcı yan bu.

Hatta geçen sene katılımcılardan biri ufak bir program yazmıştı. List alınca kısaltmaları bozmuyordu. Bulursam linkini buraya ekleyeyim.

ELSE olayı başa bela. Ben önce bodoslama yazıp sonra nerden ne kırparım diyerek halletmeye çalışıyorum. Mantık kısmını mümkün olduğunca metamatik olarak formüze etmeye çalışıyorum. "ON GOTO 100,200,300" şekilindeki kullanımı da bayağı bir faydalı oluyor.  

Alıntı
Bir de zaten yazmadan önce aklımda oluşan hoş bir zeka oyunu olur düşüncesi dediğim gibi yazıp oynayınca kayboldu.
Zira çok zor olmuş ve heves bırakmıyor insanda. Belki biraz mantığı değiştirip daha basit bir hale sokabilirim.

Sadece bir fikir: Anladığım kadarıyla kaydırma yaparken satır ve sütün sonlarında artan topları satır başına ekliyorsun. (veya tam tersi). Burada biraz esneklik katabilirsin. Bellirli bir sayıdaki topu elde tutup oradan istediğini seçmek, sıralama değiştirmek gibi. Hani şu Zuma'daki sıradaki topu geri gönderip bir sonrakini fırlatabiliyoruz ya. Oyunu çok değiştirmeden. Benzer bir mekanizma düşünülebilir.


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: eins üzerinde Şubat 17, 2016, 14:26:10 ÖS
@wizofwor, teşekkürler.
Matematik olarak formülize edebilmek gerçekten verimli. Bir de ON GOSUB olsa güzel olurdu.

Basitleştirmek için satır limitini geçmeden neler yapabilirim diye düşündüğümde benim de aklıma, bölge sayısını azaltmak, 3x3 yerine 2x2 yapmak yada 5 bölge 3x3 kalsa bile sadece 3 takım topu sahada bırakmak gibi fikirler gelmişti. Akşama vakit olursa biraz daha karaları bakalım kısaltmalar ne kadar yer açacak... :D


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: Alpyre üzerinde Şubat 17, 2016, 19:12:21 ÖS
Dedim 10 satırda bu iş nasıl olur...
...sonra baktım ki ":" ile tek satıra toplanmış komutlar. :D


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: LW3D üzerinde Şubat 17, 2016, 20:17:44 ÖS
Dedim 10 satırda bu iş nasıl olur...
...sonra baktım ki ":" ile tek satıra toplanmış komutlar. :D

Öyle bile olsa bunu yazmak iş kanımca...Yani mekaniği mantığı oturtmak kolay olmasa gerek... Şöyle bir baktımda anlamadım :P


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: NoStres üzerinde Şubat 18, 2016, 05:11:42 ÖÖ
"Bilindiği üzere basic ile 10 satırlık oyun yarışması var."
Hocam ben bilmiyorum; :D yarışma ile ilgili bilgi alabileceğimiz, konu veya link verebilir misiniz?


Konu Başlığı: Ynt: Bu da benim "tenliner" denemem...
Gönderen: joker_ üzerinde Şubat 18, 2016, 07:26:28 ÖÖ
Hocam ben bilmiyorum; :D yarışma ile ilgili bilgi alabileceğimiz, konu veya link verebilir misiniz?

wizofwor konu hakkında burada  (http://www.commodore.gen.tr/forum/index.php?topic=11934.msg136947#new)detaylı bilgi veriyor ;)