Türkiye'nin en yeni Ultima Online, Counter-Strike, LoL, Dota 2, E-spor oyunları ve daha birçok oyunla ilgili Türkçe oyun haber, bilgi, topluluk platformu. Türkiye'nin en yeni Ultima Online, Counter-Strike, LoL, Dota 2, E-spor oyunları ve daha birçok oyunla ilgili Türkçe oyun haber, bilgi, topluluk platformu.
  • ANASAYFA
  • FORUM
  • DOKÜMAN
  • DOWNLOAD
  • DISCORD
  • İLETİŞİM
   Üye ol    Giriş
    Doküman > Ultima Online > Sphere > Dizi (Array) Mantığı

Dizi (Array) Mantığı

  • Slothere
  • August 23, 2011
  • 2 Yorumlar
  • 4.2K Görüntüleme
programlama dillerinde olduğu gibi sphere emülatörü altında da dizi kullanımı son zamanlarda oldukça arttı. fakat genellikle düz mantık veya ayriyetten yazılmış fonksiyonlar ile kullanılıyor. sphere emülatörü altından dizi (array) kullanımında ekstra fonksiyonlara ihtiyacınız yoktur. anlatacağım yöntem ile tüm scriptlerinizde etkin olarak dizi yöntemini basit ve kullanışlı şekilde kullanabileceksiniz. önceden hazırlıklı olmak için aşağıdaki bağlantıda bulunan dökümandaki temel kullanım kısmını iyice anlamış olmanız gerekmektedir.

https://www.ultima-strike.com/i-5282-temel-string-tanimlamalari.html

öncelikle dizi tanımı ile konuya girelim. dizileri en basit haliyle verileri içlerinde barındıran kümeler gibi tanımlayabiliriz. örnek olarak isimler dizisi tanımlamak istiyorsunuz. yapmanız gereken isimler adlı bir küme oluşturup o kümenin elemanları olarak belirttiğiniz isimleri atamaktır.

örnek:

isimler = {ali,mehmet,ahmet}

burada basitçe 3 elemanlı bir küme oluşturmuş olduk. programlama dillerindeki dizi de hemen hemen aynı şekilde, aynı mantıkla işlemektedir. fakat bilinmesi gereken birkaç ufak ayrıntı ile mantık vardır. programlama dillerinde dizi tanımlaması dilin özelliğine göre değişmektedir. biz sphere emülatörü altından kullanacağımız için bundan sonraki örnekleri sphere altından göstereceğim.

sphere altında dizileri tanımlamak kısmına gelelim. belirttiğim gibi diziler benzer elemanları içerisinde barındıran kümelerdir. ilk olarak dizinin barındıracağı elemanları ve bu elemanların kullanım alanlarını iyi planlamamız gereklidir. her sistemde dizi kullanmak bazen gereksiz olabilir. basitçe normal değişkenler aracılığı ile yapabileceğiniz işlemleri dizi ile yapmamanızı öneririm.

sphere altından basitçe dizi tanımlamak için elemanların arasına virgül koymamız yeterlidir. örnek olarak üstteki örneği sphere altında tanımlamak için aşağıdaki kodları kullanabiliriz.

local.isimler = ali,mehmet,ahmet

bu şekilde yaptığımız bir tanımı bir dizi olarak ele alabileceğimiz gibi bütün halinde bir metin olarakta ele almamız mümkündür. her virgül ile ayrılan metin dizi olacak diye bir kural yoktur. dizi sizin kullanım yeriniz ve hayal gücünüze göre şekilenecektir. farklı tanımlamalar yapabilirsiniz fakat bunun sphere'da en temel kullanımı ve bence en sağlıklısı virgül kullanımıyladır.

tanımlanan dizideki elemanlara ulaşmak ve bu verileri gösterme kısmına gelelim. en başta da bahsettiğim gibi genellikle bu iş için ekstra fonksiyonlar yazılır, çizilir, kullanılır. fakat sphere altından ufak bir hile ile bunca zahmete girmeden basitçe verilerinize dilediğiniz gibi erişmeniz mümkündür.

dizi mantığında verilere erişebilmeniz için index mantığına aşinâ olmanız gerekmektedir. index basitçe elemanların bulunduğu konumların sayısal karşılığıdır. bu karşılık sayesinde elemanlarınıza rahatça erişmeniz mümkündür. örnek olarak döngü kullanımlarında çok işinize yarayacaktır. index numaraları 0'dan başlar. eklenen her eleman bir öncekinin bir numara fazlası ile numaralandırılır. yukarıdaki tanımladığımız basit dizide 3 eleman olduğunu görüyoruz. buradaki numaralandırmayı örnek olarak gösterecek olursak;
-ali 0 numara,
-mehmet 1 numara,
ahmet'te 2 numaralı index'e sahiptir. elemanlara erişimde bu numaralara dikkat edeceğiz.

burada dikkat edilmesi gereken basit bir nokta vardır. dizilerdeki eleman sayısı dizinin eleman sayısını verir, son index numarasını değil. son elemana ulaşmanız için bu rakamın bir eksiğini almalısınız, çünkü index numaraları 0'dan başlayıp birer birer artar. böylece 3 elemanlı bir dizideki son index numarası 2 olacaktır (0,1,2).

index numaralandırmasını da öğrendiğimize göre dizi mantığının artık basit şekilde kafamızda şekillenmiş olması gerekiyor. eğer kafanızdaki şekillendirme aşağıdaki resimdeki gibiyse dizi mantığını anlamaya yakınsınız, eğer bu şekilde değilse dökümanı baştan okumanızı öneririm.



evet geldik en can alıcı noktaya, verileri kullanmak. bunun için sphere'ın temel sözdizimlerinden bir tanesi olan args'ı kullanacağız. args bildiğiniz gibi girilen metinleri argüman olarak ele alıp çeşitli şekillerde kullanmamızı sağlar (bknz. temel string tanımlamaları dökümanı, temel kullanım bölümü). bizim elimizde şu an local.isimler adı altında tanımladığımız bir dizimiz bulunmaktadır. bu dizimizdeki elemanlara ulaşmamız ve veriyi işleyebilmemiz için öncelikle args'a atıyoruz.

args = <local.isimler>

bu atmadan sonra dökümanda da bahsettiğim şekilde veriyi dilediğimiz gibi şekillendirip kullanma imkanına sahibiz artık. dizilerimizde ayraç olarak virgülü kullandığımız için elemanlara ulaşmamız çok daha basit bir hal almış durumda. artık elemanlarımıza <argv[elemanın index numarası]> şeklinde erişme imkanımız var. mesela 1. eleman olan mehmet'e erişmek için aşağıdaki kodları kullanacağız.


args = <local.isimler>
sysmessage merhaba <argv[1]>

burada çıktı merhaba mehmet olacaktır, çünkü belirttiğimiz sözdiziminin 1. elemanına karşılık gelen veri mehmet olarak tanımlanmış vaziyette. ekstra hiç bir fonksiyon ve yöntem kullanmamıza gerek kalmadan basitçe bir dizi tanımlayıp buradan dilediğimiz veriyi aldık. gayet basit değil mi?

burada ayriyetten en çok karşılaşılan yanlışlardan birisini de belirtmek istiyorum. args'ı fonksiyonlarınızda, itemlarınızda, dialoglarınızda heryerde kullanabilirsiniz. args temel bir sözdizimi olduğundan kaynak belirtmeksizin anlık olarak kullanabilirsiniz.

basitçe dilimin döndüğü kadar (uykulu şekilde) sizlere sphere'da dizi kullanımını anlatmaya çalıştım. faydası olabileceğini düşündüğüm için böyle bir paylaşım yapma ihtiyacı duydum, umarım bazı konulardaki tabulara yıkmaya vesile olur.

Üye Ol veya Giriş Yap

Bu içeriğe yorum atmak istiyorsanız hemen üye olun veya giriş yapın.

Facebook ile Bağlan Twitch ile Bağlan

Yorumlar (2)

No Avatar
Morego 2011-09-15 12:47

Elinge Saglık

No Avatar
Aldarson 2011-08-23 15:28

eline sağlık

Sadece kayıtlı kullanıcılar yeni yorum yapabilir.
Beğeni Takipçi Üye Takipçi
Benzer Sayfalar

Bulunamadı.



  • Son Forumlar
  • Sayfalar
  • Computer_Man
    Takım arkadaşları aranıyor

    Sunucular 15 hours önce

  • osiris03
    The North Shield ( TNS ) - Golden Age 2020

    Sunucular 1 weeks önce

  • yusuf_4502
    ip ban kaLdırma

    Ultima Online 2 weeks önce

  • Mercuryuo
    Mercury UO - Açılış

    Sunucular 2 weeks önce

  • EleganceUO
    Elegance UO

    Sunucular 2 weeks önce

  • Neganpvp
    Negan UO PVP @2021

    Sunucular 3 weeks önce

  • Mercuryuo
    Mercury UO

    Sunucular 3 weeks önce

  • Syntax
    Uo Centred Hk,

    Ultima Online 3 weeks önce

  • Bütün bir yıl çok çalıştılar, çok fazla mücadele ettiler ve artık sona geldiler.

    ESL One Cologne 2017

    June 30, 2017

  • Activision yetkililerinin yaptığı açıklamaya göre Cod:MW Remastered, Infinite Warfare’den ayrı bir oyun olarak satılmaya başlanacak.

    Call of Duty Modern Warfare Remastered açıklandı!

    June 24, 2017

  • Artık gelenekselleşen Steam mevsim indirimlerinin en sevileninin zamanı geldi kapımıza dayandı.

    Steam Yaz İndirimi 2017 Rehberi

    June 22, 2017

  • Ultima Online için unoffical DLC

    Ultima LandFall

    June 18, 2017

  • Simple Radar - Kullanışlı ve Basit Radar

    June 03, 2017

  • CS:GO FPS Arttırma ile ilgili detaylı bilgilendirici faydalı döküman

    CS:GO FPS Arttırma ile İlgili Herşey

    May 28, 2017

  • Easy Vibrance enhancer v1.3.0.1

    May 09, 2017

  • Vibrance GUI

    March 31, 2017

Menü

ANASAYFA
FORUM
DOKÜMAN
DOWNLOAD
İLETİŞİM
Ideamedia
© 2004 - 2021 Ultima-Strike. Her hakkı saklıdır.