Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore YazılımBu da benim "tenliner" denemem...
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: Bu da benim "tenliner" denemem...  (Okunma Sayısı 10797 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« : Ş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.



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:



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...

* tenliner1.prg (0.45 KB - Yükleme: 578 kez.)
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
yavuzg
Genel Yönetici
*****
Mesaj Sayısı: 5.894



Üyelik Bilgileri
« Yanıtla #1 : Ş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
Logged

Cengiz Demir
Uzman
*****
Mesaj Sayısı: 3.828



Üyelik Bilgileri
« Yanıtla #2 : Şubat 17, 2016, 08:10:50 ÖÖ »

Güzel bir çalışma olmuş.
Logged

Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.756


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #3 : Şubat 17, 2016, 08:55:07 ÖÖ »

Eline sağlık, wizofwor'un bahsettiği yarışmaya katılacak mısın?
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #4 : Ş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.



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ış.
Logged

blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #5 : Şubat 17, 2016, 10:24:22 ÖÖ »

10 satır için iyi bir deneme olmuş.
Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
Cengiz Demir
Uzman
*****
Mesaj Sayısı: 3.828



Üyelik Bilgileri
« Yanıtla #6 : Şubat 17, 2016, 10:35:09 ÖÖ »

Bence, yarışmaya girerse derece şansı var gibi
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #7 : Ş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. Kahkaha 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ş. 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.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #8 : Ş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ş. 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.
« Son Düzenleme: Şubat 17, 2016, 15:17:29 ÖS Gönderen: wizofwor » Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #9 : Ş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... Kahkaha
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #10 : Ş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. Kahkaha
Logged

Alper
LW3D
Yönetici
*****
Mesaj Sayısı: 11.418


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #11 : Ş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. Kahkaha

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

NoStres
Deneyimli
*****
Mesaj Sayısı: 633


One Love, One Heart, One Destiny


Üyelik Bilgileri WWW
« Yanıtla #12 : Şubat 18, 2016, 05:11:42 ÖÖ »

"Bilindiği üzere basic ile 10 satırlık oyun yarışması var."
Hocam ben bilmiyorum; Kahkaha yarışma ile ilgili bilgi alabileceğimiz, konu veya link verebilir misiniz?
Logged

joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #13 : Şubat 18, 2016, 07:26:28 ÖÖ »

Hocam ben bilmiyorum; Kahkaha yarışma ile ilgili bilgi alabileceğimiz, konu veya link verebilir misiniz?


wizofwor konu hakkında burada detaylı bilgi veriyor
Logged
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: