النتائج 1 إلى 4 من 4

الموضوع: دروس الـDark basic :بدايــــة الطريق (كاملة) من DBprog

  1. #1
    التسجيل
    24-01-2006
    الدولة
    QATAR
    المشاركات
    4,098

    دروس الـDark basic :بدايــــة الطريق (كاملة) من DBprog

    بسم لله الرحمن الرحيــــــــم
    الدرس الأول

    وقبل كل شيء السلام عليكم ورحة الله وبركاته
    هذه أول دروسي في لغة الـــــــDark basic , وفي هذا الدرس سأشرح عن العلاقات الرياضيّه والأوامر المتعلقه بالنصوص
    وأنواع المتغيرات الذي سنتعامل معها .
    هناك ثلاثه متغيرات سنتعامل معها وهي:
    1)- المتغيرات العدديه(integer ).
    2)- المتغيرات من نوع السلسله الحرفيه(string ).
    3)- المتغيرات العشريّه (long ).
    هنا جدول توضيحي للموضوع
    Name : Mark
    Integer : None
    $ : String
    # : long

    سنشرح كل واحد على حدى

    * المتغيرات العدديه(integer ).
    في هذا النوع من المتغيرات سوف نتعامل معه بشكل كبير أثناء دراستنا
    لأنه يدخل في العمليات الحسابيه والأكثر أهميّه من ذلك إنه لايقتصر على العمليات الحسابيه فقط
    هنا سنذكر إستخدام أخر مهم له
    كود PHP:
     
    load image 
    "File name",1
    load bitmap 
    "File name",2
    load object 
    "File name",
    وإلخ........
    إذا بتلاحظوا الأعداد 1,2,3 بعد كل File name هي الأعداد التي سنتعامل معها دون الحاجه إلى كتابة أسم
    الملف المراد إستدعائه أو العمل عليه
    ملاحظه :-
    مثل أوامر التحميل(load) أعلاه لاتقبل إلا الأعداد الطبيعيه.
    مثال بسيط يوضح إستعمال الأعداد الحقيقيه في العمليات الحسابيه

    أفتح برنامج الـــــDark basic وفي نافذة الكود أكتب السطور التاليه:-
    كود PHP:
     
    a
    =2+6
    print a
    Wait key 
    أو يمكن كتابة الأوامر بهده الطريقه
    كود PHP:
    b=6
    c
    =2
    a
    =b+c
    print a
    wait key 
    مـــــــــــاذا تلاحظوا عند الضغط على زر F5 أي عند تنفيذ الأوامر ورؤية الناتج؟
    نعم هذا صحيح ,ستلاحظوا إن الناتج هو 8
    سنشرح الكود بشكل سريع
    في السطر الأول جمعنا عددين هما 6 و 2 وأردنا أن نخزن الناتج في المتغير العددي a
    أما بالنسبه للأمر Wait key
    فهو يعتبرمن الاوامر تقريباً لولاه لما كنت تستطيع رؤية نتيجة تنفيدك للأوامر
    لماذا سمي Wait key ؟
    لأن شاشة العرض تبقى حتى تضغط على أي زر من ثم تعود إلى بيئة البرمجه

    لمـــــــــــاذا a متغيرعددي ؟
    لاحظوا الجدول التوضيحي في سطر Integer تحت عنوان mark
    نلاحظ إنه كُتب None أي لايوجد رمز يمثل المتغيرات العدديه حتى إذا حطيتوا رمز
    مثل المتغيرات الأخرى($,#) فهو لن يعمل أو تظهر نتيجه غير مرجوّه.

    *المتغيرات من نوع السلسله الحرفيّه(String ).
    يمكن التعامل مع هذا النوع من المتغيرات بعدة طُرق ومنها :
    1)- يمكن عرض النصوص بشكل مباشر.

    مثـــــــــال:-
    كود PHP:
     
    print "Hi,my name is DBprog" 
    Wait key 
    أو
    كود PHP:
    a$="Hi,my name is DBprog"
    Print a$
    Wait key 
    أو
    كود PHP:
    a$="Hi,my name is DBprog"
    b$="and my age is 21"
    print a$+b$
    wait key 
    ملاحظه:-
    1)- يمكن كتابة الكود السابق بهذه الطريقه
    كود PHP:
     
    a
    $="Hi,my name is DBprog"
    b$="        and my age is 21"
    print a$+b$
    wait key 
    مــــــــاذا نلاحظ في السطر الثاني من الكود ؟
    نلاحظ وجود فراغ والغرض منه ترك مسافه بين العبارات
    2)- يجب وضع النص بين إشارتي التنصيص ("") بحكم إنه متغير نصّي

    * المتغيرات العشريّه(long)
    أو السلسله العدديه الطويله , يمكن التعامل معها بنفس الطريقه التي تعاملنا مع الــInteger
    لهذا لاداعي لشرحها وهذا مثال يشرح الأمور
    كود PHP:
     
    a
    #=22.45
    b#=56.23
    c#=a#+b#
    print c#
    wait key 
    ملاحظه:-
    إذا أزحنا إشارة إشارة # من أحد المتغيرات فإنه سيتم جمع integer مع long
    أما إذا أزحناها من المتغير الذي يمثل الناتج فإن الناتج سيكون عدد طبيعي عند التنفيذ
    جربها وشوف..........

    الأن والحمد لله أنتهينا من شرح أنواع المتغيرات الأساسيه الذي سنتعامل معها والأن سوف نتطرّق إلى

    Convert
    في هذا الموضوع سوف نتعلم كيف نقوم بالتحويل مع المتغيرات فيما بينها
    عند التحويل إلى string نستخدم الأمر Str$
    مثـــــال:-
    كود PHP:
     
    a
    =50
    a
    $=str$(a)
    print 
    a$
    wait key 
    ملاحظه:-
    ينطبق هذا التحويل أعلاه على الـــlong أيضاً
    عند التحويل إلى Integer أو long نستخدم أمر val
    كود PHP:
     
    a
    $="Hi,my name is DBprog"
    a=val(a$)
    print 
    a
    wait key 
    نلا حظ أن الناتج كان صفر...... لمـــــــاذا؟
    شيء معروف ...لأن القيمه المحوله إلى عدد كانت نصّيه لهذا كان الناتج صفرً
    لأنه لم يتعرف على إنها عدد أثناء التحويل.

    وهنا أيضاً سوف نتعرف على بعض الأوامر التي تتعلق بالنصوص و سوف تساعدنا فيما بعد,وهي:

    Asc$ command
    هذا الأمر يعيد قيمة الحرف بما يقابله من عدد بنظام Ascii
    مثـــــال:-
    كود PHP:
    s=Asc("b")
    print 
    s
    wait key 
    نلاحظ إن النتيجه ستكون 98 وهو العدد الذي يمثل الحرف B
    يمكنك أن تجرب على أعداد اُخرى.

    Chr$ command
    هذا الأمر وبإختصار شديد عكس السابق
    مثـــــــال:-
    كود PHP:
    s$=Chr$(98)
    print 
    s$
    wait key 
    Len command
    هذا الأمر يقوم بإحصاء عدد الحروف الموجوده في النص.....كيف؟
    مثـــــــال:-
    كود PHP:
    name=len("Hi,my name is DBprog")
    print 
    name
    wait key 
    لمـــاذا لم نخزن النص في متغير نصّي ($name) ؟
    هذا الأمر مُختص بإحصاء الحروف وبما إنه مُختص بذلك في هذه الحاله سيتم تخزين النص في متغير من نوع Integer
    حتى يظهر لنا عدد الأحرف
    ملاحظه:-
    هذا الأمر يحصي المسافات(Space) أيضاً ركز على هذه النقطه

    Mid$ command
    يقوم هذا الأمر بطباعة الحرف الذي أنت تحدده في الـparametar الخاص بيه
    مثـــــــال:-
    كود PHP:
    DBprog$=mid$("Hi every body",2)
    print 
    DBprog$
    wait key 
    نلاحظ إثناء التنفيذ إنه تم طباعة الحرف i لإننا وضعنا رقم 2 وهو يمثل ثاني حرف في النص
    والذي سيتم طباعته
    ملاحظه:-
    يتم إحصاء الفراغات أيضاً في هذا الأمر وأن صدف إننا كتبنا في المثال السابق
    رقم 3 سيصادف أثناء العد فراغ(Space) وسيكون الناتج لاشيء(شاشه سوداء فقط).

    Right$ command
    هذا الأمر مشابه نوعاً ما للسابق من ناحية الـParametar
    وهو يقوم بطباعة النصوص إبتداءً من اليمين
    مثـــــــال:-
    كود PHP:
    Myname$=right$("hello every body",4)
    print 
    Myname$
    wait key 
    سيتم طباعة كلمة body أثناء التنفيذ

    Left$ command
    هذا الأمر كالسابق ولكن يطبع من اليسار حسب القيمه المعطاه.
    مثــــــال:-
    كود PHP:
     
    Myname
    $=left$("hello every body",4)
    print 
    Myname$
    wait key 
    هنا سيطبع كلمة جحيم(hell) ههههههههه.

    ملاحظه هامّه جداً:-
    لاتكتب الأكواد نقلاً من الموضوع بل قوم بنسخها مباشرتاً حتى تراها بشكل صحيح أثناء لصقها وشكراً

    وأتمنى أن تكونوا أستفذتم من الشرح ولنا لقاء في الدرس القادم..........

  2. #2
    التسجيل
    24-01-2006
    الدولة
    QATAR
    المشاركات
    4,098

    رد: دروس الـDark basic :بدايــــة الطريق (كاملة) من DBprog

    السلام عليكم ورحمة الله وبركاته

    الدرس الثــــاني
    في هذا الدرس سوف نتعرف على بعض الأومر التي من شأنها تحسين النصوص أو بمعنى أخر
    التعديل في خصائص النصوص ومنها

    Set cursor command
    هذا الأمر يقوم بتحديد نقطه على شاشة العرض(عند التنفيد)......كيف؟
    سيطلب منك هذا الأمر تحديد الأحداثي x,y
    وهذا الأمر فعّال جداً مع مع الأمر Print
    مثـــــال:-
    كود PHP:
     
    Rem 
    "This command will print my name"
    set cursor 320,240
    print "DBprog"
    wait key 
    سنشرح الأمر السابق بسرعه
    السطر الأول لو بتلاحظوا كلمة Rem جاءت في بدايته وهذه الكلمه تختص بالتعليقات
    أي أن أي شيء يُكتب بعدها سواء كان رمز أو أمر لايتم قرائته من قِبل الــCompiler
    السطر الثاني
    نقوم بتحديد المكان الذي ستظهر فيه الكتابه وذلك عن طريق الأحداثيات
    أما بالنسبه للسطور الأخرى فهي ليست جديده بالنسبه لكم

    Text command
    هذا الأمر يُعتبر الأفضل في عرض النصوص لإنه يطلب الأحداثيات والنص المراد كتابته
    Parametar
    Text x,y,String

    مثـــــال:-
    كود:
     
     
    Rem "This command will print my name"
    text 320,240,"DBprog"
    wait key
    Font commands
    ومن ضمنها
    set text size
    هذا الأمر يتحكم بحجم الخط
    set text font
    هذا الأمر يتحكم بنوع الخط

    مثـــــال:-
    كود PHP:
     
    set text font 
    "Arial"
    set text size 40
    text 320
    ,240,"DBprog"
    wait key 
    الأوامر التي تُعيد لك قيــــم

    Text font$() command
    هذا الأمر يُعيد لك نوع أو أسم الخط المستخدم في الكتابه
    مثـــــــال:-
    كود PHP:
     
    DBprog
    $=text font$()
    text 320,240,DBprog$
    wait key 
    Text size()
    مثل السابق ولكن يعيد القيمه المتعلقه بحجم الخط
    مثـــــــال:-
    كود PHP:

    DBprog 
    TEXT SIZE()
    set cursor 320,240
    print DBprog
    wait key 
    Set text to Bold,italic,normal command

    مثـــــال:-
    كود PHP:
     
    DBprog 
    TEXT SIZE()
    set text to italic
    set cursor 320
    ,240
    print DBprog
    wait key 
    Ink command
    هذا الأمر يقوم بإعطاء لون للخط ولخلفيته, طالما يقوم بذلك فهو يطلب الأمر المختص باللون وأعتقد إنكم سمعتم من قبل عن
    RGB
    هذا الأمر بيطلب قيم لكلاً من اللون الأحمر والأخضر والأزرق حسب الترتيب

    مثــــــال:-
    كود PHP:
     
    ink rgb
    (25,255,16),rgb(30,90,50)
    DBprog TEXT SIZE()
    set text to italic
    set cursor 320
    ,240
    print DBprog
    wait key 
    وهناك الكثير من الأوامر المتعلّقه بالخط يمكنك إكتشافها بنفسك
    أما الأن فذكرنا أهمها
    سنتعرف الأن على أحــــــــد أوامر الأدخال وهو

    Input commandهذا الأمر يطلب منك النص المراد ظهوره إلى جانب القيمه التي تريد أن يتم إدخالها
    ولهذا الأمر طريقتين للأستخدام
    1)- إما أن تضع القيمه المراد إدخالها مباشره(متغير).
    2)- إما أن تضع نص لإعطاء الشخص فكره عما يتم إدخاله في الحقل
    .

    مثــــــال:-
    كود PHP:
     
    Input myname
    $
    print 
    "you make it,Conguratulations"
    wait key 
    أو
    كود PHP:
     
    Input 
    "my name  ",myname$
    print 
    "you make it,Conguratulations"
    wait key 
    في السطر الأول من الأمرين السابقين وضعنا متغير نصّي والذي كان عباره عن وحدة الأدخال.
    عند تنفيد الأمر نلاحظ إنه بيطلب إدخال إسمك أو أي شيء في الحقل
    وعند الضغط لمشاهدة النتيجه سنرى رساله أو أي شيء تريد له الظهور أو حزمه من الأوامر.
    وهنا رفعت مثال في المرفقات يختصر كل ناشرحته في هذا الدرس وأعرف إن البعض بيقول لماذا لم يرفعه وينتهي من الأمر؟
    وجواب هذا السؤال بسيط جداً
    لإن هناك بعض الأشخاص الذين يحتاجون لشرح مفصّل حتى تثبت الفكره بحكم إنهم مبتدئين
    وبهذا أنتهينا من الأمور المتعلّقه بالنصوص وسنناقش الجمل الشرطيّه وجمل الدوران في الدرس القادم وهذا مثال بسيط عن جملة الشرط

    وشكراً.................(^_^)
    الملفات المرفقة الملفات المرفقة

  3. #3
    التسجيل
    24-01-2006
    الدولة
    QATAR
    المشاركات
    4,098

    رد: دروس الـDark basic :بدايــــة الطريق (كاملة) من DBprog

    بسم الله الرحمن الرحيم


    السلام عليكم يا إخوتي الكرام وأعتذر عن الأنقطاع الطويل عليكم وذلك بسبب الظروف التي مررت بها مؤخراً إلى جانب أشياء أخرى ومع هذا لم أنساكم بعد
    لإنني شخص يفي بوعوده,دعونا من هذا الكلام الأن وأرجو أن تركّزوا معي في هذا الدرس لإنه كل شيء في لغات البرمجه بتتمحور على هذه الأشياء بشكل عام


    condition statements

    أعتقد بإنّكم تعرفوا جمل الشرط if ..........else..........endif and if............. then ربما صياغتها قد تكون مختلفه في بالمقارنه
    مع لغات برمجه أخرى, لكن الفكره لاتختلف أبداً كما يُقال المثل (وجهان لعمله واحده).
    سأوضّح سبب الأختلاف في مثال بسيط


    في الــــvisual basic

    أولاً يتم توقيع أداة النص text مع أداة command ومن ثم نضع الكود الأتي في أداة command تحت الحدث click أو أي شيء تريد
    كود PHP:
     
    if text1="123456" then
    msgbox
    "Correct code"
    else
    msgbox"Wrong code"
    endif 
    في الــdark basic
    كود PHP:
     
    msg
    $ = "hi there"
    print msg$
    if 
    msg$="hi there" then
    wait 1000
    cls
    print "exist"
    wait key
    or
    msg$ = "hi there"
    print msg$
    if 
    msg$="hi there" 
    wait 1000
    cls
    print "exist"
    else
    print
    "buz off"
    endif
    wait key 
    # ملاحظه:
    else
    لن يكون لها غرض في المثال الثاني من الدارك والسبب هو لعدم وجود حدث معيّن حتى يتم التخيير من أمرين لذا لاتستغربوا من الأمر
    وسيتم مناقشته لاحقاً.


    # ماذا نلاحظ في الأمثله السابقه؟
    نلاحظ إن في الــvisual basic قد تم الجمع في كلا الأسلوبين الذي أستخدمناهم في الدارك
    أي إن في الدارك نستخدم if .......then وإما if........else........endif وهذا ما أقصده من خلال كلامي فيما سبق عن إختلاف أسلوب
    سياغة جمل الشرط بأساليب مختلفه ولكن الغرض واحد.........يبدوا إنني تماديت في الكلام والأن هيا لنباشر في الشرح.


    If.........else..........endif & if .........then

    فيما سبق أعتقد إنه توضحت الفكره شويّه عن إستخدام هذه الجمل الشرطيّه,أما الأن سيتم مناقشتها بشكل أوضح ومبسّط أكثر إن شاء الله.
    هذه الجُمل تكون فعّاله أكثر عندما يتم ربطها أو أستخدامها مع نوع أخر من الجُمل ,هنا سنرى قوتها وفعاليتها.
    كود PHP:
     
    msg
    $ = "hi there"
    do
    input "Set (hi there) statment int field    ",msg$
    if 
    msg$="hi there"
    wait 1000
    set cursor 0
    ,20
    print "exist"
    else
    print 
    "buz off"
    wait 1000
    end
    endif
    loop 
    نلاحظ عند تطبيق هذا المثال بشكل صحيح أي تنفيد ما طُلب منك بحسب السؤال سيتم ظهور رساله وتخبرك إنه النص المدخل موجود (Exist)
    مالم سيتم طباعة أبتعد وستخرج من البرنامج بعد ثانيه(buzz off)

    لإن اّليّة عمل جملة الشرط هذه هي إختبار نوعين من المدخلات إن كان المُدخل صحيح أو الحدث الذي أنت وضعته سيتم نقلك إلى المنطّقه أو الحدث الذي تريده
    مالم سيتم حدث معيّن, أما النوع الأخر من الجُمل (If.........then)لا تتوفّر له هذه الخاصيّه
    أي إنه حالما تضع شرط سينفّذه ولن يخيّرك بين أمرين.


    مثـــــال:-
    كود PHP:
     
    msg
    $ = "hi there"
    do
    input "Set (hi there) statment int field    ",msg$
    if 
    msg$="hi there" then
    wait 1000
    set cursor 0
    ,20
    print "exist"
    loop 
    ستلاحظ عند كتابة المطلوب أو أي شيء أخر سيتم ظهور النص(exist),وهذه مشكله ويمكن التخفيف من ضررها أي تحسينها لعملها بشكل مش بطّال
    وذلك بإستخدامgoto
    كيــــــــــف؟
    أي إنه لكي نتفاداها نرفق بعد الشرط goto أي الذهاب إلى المكان الذي أنت تريده أن ينفّذ من ثم العوده إلى حيث بدأت
    مثال توضيحي
    كود PHP:
     
       up
    :
    input "Set (hi there) statment int field    ",msg$
    if 
    msg$= "hi" then
    goto there
    if msg$= "go away" then
    goto there2

    there
    :
    set cursor 0,20
    print "exist"
    goto up
    there2
    :
    set cursor 0,20
    print "Buzz off"
    goto up
    wait key 
    عند التنفيذ سيتم إدخال الكلمه المطلوبه في نافذة الكود ليتم الحصول على النتيجه المُرضيّه والعوده إلى حيث بدأت العمليّه أما إن قمت بإزالة
    goto up
    ستلاحظ بإنه يتخطى النص المراد ظهوره في الشاشه ويتم ظهور أخر نص بحكم إنه مقيد بــgoto up سواء كانت موجوده أم لا
    جرب تزيل goto up في أول نقله وستلاحظ ماذا سيحدث
    أي إنه بإزالتها ستم عرض النص الذي يليها مباشرهم
    ومع هذا الخطاء موجود..............ماهــــــــو؟
    جرب تدخل كلمه أخرى عدا الذي يتم طلبهم وشوفوا ماذا سينتج.
    نعم هذا هو الخطاء سيكتب أول جمله وهي (exist).

    والأن بمجرد ما أقولكم الأتي البعض سيغضب ومنهم من ستفهّم الأمر ^_____________^
    الأن يمكن تجنّب هذه المشكله كامله بهذا الكود
    كود PHP:
     
     
    up
    :
    input "Set (hi there) statment int field    ",msg$
    if 
    msg$= "hi" then
    goto there
    if msg$<> "hi" then
    goto there2

    there
    :
    set cursor 0,20
    print "exist"
    wait 1000
    cls
    goto up
    there2
    :
    set cursor 0,20
    print "Buzz off"
    wait 1000
    cls
    goto up
    wait key 
    قوموا بلصقه وجربوا أن تكتبوا العباره الصحيحه أو أي عباره في ذهنكم ولاحظوا ماذا سيحصل,إشارة <>معناها لايساوي
    أي إنه أي كلمه عدا exist سيتم نقلك إلى كلمة buzz off .
    من سيتفهّم الأمر هو الشخص الذي مُلم في هذا الموضوع من قبل أما من سيغضب هو الشخص الذي مازال يتعلّم وسيقوللماذا لم يقولها من البدايه ويخلصنا)
    السبب هو إنني أريد لأخوتي أن يحيطوا بالموضوع بشكل كبير وكلما تشعّب الموضوع وزادت إحاطتك به قلّت و قوعك بالأخطاء أخي الكريم.

    # ملاحظه:
    يمكنك وضع الكود السابق في جملة دوران do.....loop .

    هناك بعض إضافات من خلالها تحسن عمل جُمل الشرط وهي


    AND & OR

    هذه الأوامر من شأنها تحسين جُمل الشرط ومنافعها كبيره
    OR:
    وظيفتها هي أن تخيّرك بين شرطين لحصول حدث أو أمر معيّن


    مثـــــــال:-
    كود PHP:
     
    up
    :
    input "Set (hi there) statment int field    ",msg$
    if 
    msg$= "hi" or msg$= "hello" then
    goto there
    if msg$<> "hi" then
    goto there2

    there
    :
    set cursor 0,20
    print "exist"
    wait 1000
    cls
    goto up
    there2
    :
    set cursor 0,20
    print "Buzz off"
    wait 1000
    cls
    goto up
    loop 
    هو نفس المثال السابق وإنما أضفنا السطر or msg$= "hello" بعد الشرط الأول وبذلك يتم التخيير بين نوعين من المٌدخلات
    ويمكنك أيضاً أن تجعل المدخلات متعدده إي إنه لايحصرك بين عدد معين من المدخلات
    or msg$= "hello" or msg$= "jackass" or msg$="welcom"..................elc

    AND:
    أما بالنسبه لأمر And فهو كثيراً مايستخدم في الأحداث أو القيم


    مثــــــــال:-
    كود PHP:
     

    up
    :
    if 
    upkey()=and inkey$()="X" then
    TEXT 10
    ,20,"Up arrow & X r pressed"
    WAIT 100
    cls
    goto up
    WAIT KEY 
    إن تم الضغط على زرّ ي الــx و ^(السهم للأعلى) في نفس الوقت ستظهر لك رساله وتخبرك بإنه العمليّه صحيحه
    # ملاحظه:-
    ألم تلاحظوا عدم الخروج من نافذة البرنامج على الرغم من وجود أمر Wait key .
    ذلك بسبب GOTO


    وهنا جمله يمكنها التحسين في العمل وهي

    select .......case.........endselect.........endcase.........Case default



    select .......case.........endselect.........endcase.........Case default :

    هذا النوع من جمُل الشرط يساعد على الأختيار بين عدة أمور أثناء تنفيذ الشرط بحسب القيم المُدخله أو الأحداثوهنا مثال يساعد على فهم الأمور بشكل أوضح
    الكود شويّه طويل(قوم بلصق الكود وحاول أن تضع رقم من الصفر إلى العشره لتشاهد الجربنه بتاعك..........أقصد علامتك ^_^...

    مثـــــــــــال:-
    كود PHP:
     
     
    up
    :
    input "your mark    ",m
    if m=10 or m=or m=or m=or m=or m=or m=or m=or m=or m=or m=0 then
    select m
    case 10
    print "Exellent";
    wait 2000
    cls
    goto up
    endcase
    case 9
    print "Imprisseve";
    wait 2000
    cls
    goto up
    endcase
    case 8
    print "Very good";
    wait 2000
    cls
    goto up
    endcase
    case 7
    print "Good";
    wait 2000
    cls
    goto up
    endcase
    case 6
    print "Not bad";
    wait 2000
    cls
    goto up
    endcase
    case 5
    print "Acceptable";
    wait 2000
    cls
    goto up
    endcase
    case 4
    print "Failed";
    wait 2000
    cls
    goto up
    endcase
    case 3
    print "Dump ass";
    wait 2000
    cls
    goto up
    endcase
    case 2
    print "Empty tank";
    wait 2000
    cls
    goto up
    endcase
    case 1
    print "No comment";
    wait 2000
    cls
    goto up
    endcase
    case 0
    print "grban";
    wait 2000
    cls
    goto up
    endcase
    endselect 
    كما يمكن الأستغناء عن هذا النوع من الجُمل فهو لايدخل بكثره في التطبيقات

    Looping statements

    هنا سنعرف كيفية التعامل مع جمل التكرار ومنها :
    For...........next
    While..........endwhile
    Do.............loop
    Repeat................until


    For ...............next:
    هذا النوع من جُمل الدوران محدود أي إنه عدد دورات التنفيد فيه يتم وضعها بحسب إحتياجاتك وتساعد كثيراً في العمل(عمليّه)ومتعددة الأستخدام.
    ولها فوائد كثيره وسنذكرها

    مثـــــــال:-
    كود PHP:
     
    for a1 to 5
    print "this statement will repeated in 5 lines"
    wait 100
    next a
    wait key 
    في هذا الكود سيتم تكرار النص داخل جملة التكرار for........next خمس مرّات ,لاحظ المتغيّر a كُتب بجانبه من 1 إلى 5 وهي عدد
    الدورات وتنفيد أمر الطباعه في كل دوره وبين كل دوره وأُخرى سيتأخر 100 مللي ثانيه لكي تتمكن من رؤية التنفيد بشكل بطيء لكي تتمكن من فهمه
    لكن إن أزلت أمر wait 100 سيتم تنفيذهم بسرعه لدرجة إنهم سيظهروا وكإنهم عباره واحده(سطور الطباعه).

    وهنا إستخدام أخر لجملة الدوران for.....next .
    كود PHP:
     
    for a1 to 100
    ink rgb
    (0,a,0),rgb(0,0,0)
    print 
    "this statement will repeated in 5 lines"
    wait 100
    next a
    wait key 
    ستلاحظوا عند التنفيذ شاشه سوداء ولكن إنتظروا شويّه...............
    أها بدأت الكتابه بالظهور وباللون الأخضر ..........كيـــــف؟
    لاحظوا هذا السطر الموجود في نطاق جملة الدوران
    ink rgb(0,a,0),rgb(0,0,0)
    في قيم الألوان المتعلّقه في لون الخط ثاني قيمه وهي اللون الأخضر أستبدلناها بالمتغيّر a ,أعتقد إنه الأن عرفتم سبب بروز لون الخط بعد فتره
    من تنفيذ الأكواد وهو بسبب مضاعفة القيمه للمتغير a في اللون الأخضر مع كل دوره(يمكنكم تجربتها مع باقي الألوان).

    وهنا مثال أخر سيساعدكم مستقبلاً في تصميم لجزء معيّن من لعبه بمجرد مشاهدتكم لعمله في الواقع المثال موجود وحتفهموا قصدي.
    كود PHP:
     
    color backdrop rgb
    (0,0,0)
    for 
    a1 to 5
    make object sphere a
    ,3
    color object a
    ,rgb(0,255,0)
    position object a,rnd(3),rnd(3),rnd(3)
    wait 200
    next a
    wait key 
    # ملاحظه:

    إن قمت بعمل object في جملة for.....next تأكد من إن جميع الأضافات لهذا الــobject لهم نفس المتغيّر كما في المثال أعلاه
    لإنه لو بتريدوا تلوين الــobjects الناتجه عن جملة الدوران سيطلب رقم الـobject وإن تم تحديد رقم محصور من 1 إلى 5 لن يعمل البرنامج
    لإن التغيير يطبّق على كافة الobjects في اّن واحد لذا ستواجه الكثير من الأوامر الذي تطلب رقم الobject هنا يجب وضع المتغيير الرئيسي لجملة الدوران
    في مكان رقم الــobject لكي يتم التعامل مع كافة الobjects في نطاق الجمله.


    While(condition)...........endwhile:

    هذا النوع من الجمل فعّال أكثر عندما يكون داخل جملة Do.......loop ,بإختصار شديد هذا النوع من الجُمل لايتم تنفيذ محتواه إلا إن كان الشرط صحيح

    مثــــــــال:-
    كود PHP:
     
    do
    WHILE 
    upkey()=1
      
    print "up key r pressed"
    wait 100
     
    ENDWHILE
    loop 
    في السطر الأول كُتب (طالما زر السهم للأعلى مضغوط أطبع الرساله "الزر للأعلى مضغوط") 1 هي قيمه تدل على إن الزر مضغوط.
    السطر الثالث هو للأنتظار عند كل ضغطه يتم تكرار الجُمل.

    أو يمكن كتابتها بالشكل التالي حتى لاتظهر كل تلك الجُمل بل جمله واحده فقط.
    كود PHP:
     
    do
    up:
    WHILE 
    upkey()=1
      
    print "up key r pressed"
    wait 100
    cls
    goto up:
     ENDWHILE
    loop 
    في هذا الكود إضافه بسيطه والغرض منها التحسين
    السطر الذي يلي wait 100
    cls يتم مسح الشاشه عندما تكون قيمة الضغط هي الصفر وتذهب إلى أعلى الكود حتى يتم التنفيذ من جديد ........


    Repeat..........until(contitio)

    هذه عكس الجمله الأولى ,أي إنها سيتم فيها الدوران لغاية شرط معيّن سيخرج من جملة
    repeat.......until

    مثــــــــــال:-
    كود PHP:
     
    repeat
    print "fsafsdfdsf"
    wait 200
     until spacekey
    ()=
    في هذا المثال سيتم تنفيذ أمر الطباعه حتى يتم الضغط على زر space هنا سيتم الخروج من الجمله والبرنامج كمان.

    Do...............loop:

    هذه هي أساس العمل كلّه وهي لاتقيّدك بشرط أو حدث معيّن على غرار الجُمل الأخرى وفيها سيتم الدوران بشكل متواصل ولا يتم الخروج منها إلا بشرط تضعه
    أنت بحسب الذي يتكيّف مع إحتياجاتك ويمكن مزجها مع كافة الجُمل الذي مررنا عليها والعكس كمان.

    كود PHP:
     
    do
    print 
    "hi montada";
    loop 
    طبّق هذا الأمر وحاول أن تخرج منها من دون إستخدام زر الــــescape
    لايمكنك ذلك أما زر الـescape تم وضعه للخروج لكي تخرج بشكل إعتيادي وتعود إلى واجهة التطبيق لكي تعدّل ماتريد

    وهنا مثال أخر يتم فيه مزج if ........then و Do......loop
    كود PHP:

    sync on
    :sync rate 60
    color backdrop rgb
    (0,0,0)
    make object cube 1,5
    position object 1
    ,0,0,20
    do
    if 
    rightkey()=1 then
    yrotate object 1
    object angle y(1)+1
    if leftkey()=1 then
    yrotate object 1
    object angle y(1)-1
    sync
    loop 
    عند الضغط على الأسهم الأيسر والأيمن بشكل مختلف تلاحظوا إن المكعّب بيتحرك بحسب الزر المضغوط حالما يتم التوقّف عن الضغط سيتوقف المٌكعّب عند أخر
    نقطه تحرّك فيها.

    وهناك الكثير من الجُمل الذي يتم مزجها وحتى جميعهم في نفس الــdo........loop .
    وهذا مثال يمكنكم من عبره أن تتعلموا المزج بين الجُمل وفي نفس اللحظه أن تستوحوا فكره في العابكم إن شاء الله.
    سيتم إستخدام الجمل الأكثر إستخداماً في العمل لذا لاتتعجبو من عدم وجود بعضها لإنها لاتلبّي الطلب أو إنها تستهلك الكثير من الكتابه.


    *طريقة اللعب*
    الأسهم للحركه
    زر space للإيقاف
    .

    # ملاحظه:

    * هذا المثال تنقصه تحسينات بسيطه ويصبح لعبه تقريباً(لاتتوقّعوا الكثير من مثال بسيط وفيه نقص بسبب عدم توفّر الوقت,يمكنكم تحسينها وإكمال النُقص فيها ^_^)
    * سأقوم برفع المثال على هيئة ملف dpo من عبره يمكنكم مراجعة الأوامر وهي نفس الذي ناقشناه سابقاً.
    لن أقوم بكتابته هنا نظراً لعدة أسباب:
    1)- بمجرّد كتابته وكإنني أعيد الذي كتبته أعلاه
    2)- الوقت لايسمح لي كما إن الشرح أستغرقني 3ساعات متواصله
    3)- أه........يبدوا إنني أتحدث كثيراً بالنسبه للمثال تجدوه في المرفقات.

    أما بالنسبه للإستفسارات سيتم مناقشتها في المكان المتخصص بها وأرجو أن تبهرونا بالنتائج وأرى الكثير من أخواني في مجال تصميم الالعاب.
    مع إنني لا أشعر بوجود أشخاص من مستخدمي الدارك .

    أعتقد بهذا أنتهينا من جُمل الشرط والدوران إن شاء الله وأرجو من إن الشرح قد نال رضاكم...............
    الملفات المرفقة الملفات المرفقة

  4. #4
    التسجيل
    24-01-2006
    الدولة
    QATAR
    المشاركات
    4,098

    رد: دروس الـDark basic :بدايــــة الطريق (كاملة) من DBprog

    أحداث الفأره(mouse command)

    أعرف إن البعض سيقول (من سيحتاج إلى هذا النوع من الأوامر ) هذا صحيح ولكن يكون لها فعاليّه في الألعاب البسيطه أو الألغاز في الألعاب
    مثل(الكروت,ترتيب الأشكال...........إلخ) وهي أوامر قليله وسهله يمكن الأستفاده منها وذلك بجُمل الشرط والأدوات امساعده لها and & or
    سنذكر هذه الأوامر ومنها

    mousex() command:

    وظيفة هذا الأمر هو أعطاء قيمه لحركة الماوس في المحور السيني
    parameter:
    return value=mousex()

    mousey() command:

    وظيفة هذا الأمر هو أعطاء قيمه لحركة الماوس في المحور الصادي
    parameter:
    return value=mousey()

    mousez() command:

    وظيفة هذا الأمر هو أعطاء قيمه لحركة الماوس في المحور العُمق(أي الزر أو العجله التي تتوسّط زرّي الماوس)
    وهذا مثال ينفّذ الأوامر مع ظهور قيمها.
    parameter:
    return value=mousez()

    mouseclick command:

    وظيفته هو عرض قيمة الزر عند الضغط عليه أي أن:
    1 = هي قيمة الزر الأيسر
    2 = قيمة الزر الأيمن
    3 = الأيمن والأيسر معاً
    4 =العجله أ, الزر الذي يتوسّط الأيسر والأيمن
    وهكذا عند الضغط على أي زر أو زرّين معاً يتم عرض قيمهم.
    parameter:
    return value=mouseclick()
    مثـــــــــال:-
    كود PHP:
     
    do
    cls
    x
    $=str$(mousex())
    y$=str$(mousey())
    z$=str$(mousez())
    clk$=str$(mouseclick())
    text 10,10,x$
    text 10,20,y$
    text 10,30,z$
    text 10,40,clk$
    if 
    mouseclick()=1 then
    text 320
    ,240,"left button"
    if mouseclick()=2 then
    text 320
    ,240,"right button"
    if mouseclick()=3 then
    text 320
    ,240,"left & right button"
    if mouseclick()=4 then
    text 320
    ,240,"middle button"
    if mouseclick()=5 then
    text 320
    ,240,"left & middle button"
    if mouseclick()=6 then
    text 320
    ,240,"right & middle button"
    if mouseclick()=7 then
    text 320
    ,240,"right & middle & left button"
    loop 


    mousemovex () command:

    وظيفته هي إظهار القيمه منذ أن تحرك الماوس من نقطة البدايه إلأى أخر نقطه وقفت أنت عليها(طبعاً هذا في نطاق المحور السيني)
    ملاحظه :
    نفس الغرض مع الأوامر الذي تحمل نفس عنوانه mousemovey() and mousemovez()
    parameter
    return value = mousemovex ()
    كما إن هذا الأمر بالكاذ إنك تشاهد مخرجاته لإنه في جملة دوران جرب
    كود PHP:
     
    do
    cls
    print mousemovex()
    loop 
    هنا بعض الأوامر الفعّاله الذي يمكن الأستفاده منها عند تصميم الألعاب....ألم يتسائل البعض ويقول (لماذا يظهر زر الماوس في الألعاب.....أنا لا أريده أن يظهر...)؟
    عندها يمكنك أستخدام الأمر

    Hide mouse command:

    بمجرد وضعه في بداية السطر ستلاحظ إن زر الماوس قد أختفى والأمر لايطلب إدخال قيم أو يقوم بإخراجها فقط يتم وضعه كما هو مبيّن لك على العنوان ..........وهناك أمر عكسه أيضاً وهو
    Show mouse:

    هنا أنتهينا من أوامر الماوس وكما إنه هناك أمثله مفيده يمكنك من عبرها أن تقتبس أفكار (في المرفقات)
    وأي نقطه غير مفهومه في المرفقات سيتم مناقشتها في القسم المتخصص لها

    أمر Data & Read:

    هذه الأوامر نافعه في النصوص وفي برمجة الألعاب, والغرض الأصلي منها جدوله أ, فهرسة المتغيرات عند ظهورها وهنا في الصوره التاليه ستتوضّح الفكره إن شاء الله حول هذا النوع من الأوامر

    وأرجو إنكم أستفدتوا منه
    إن شاء الله في القريب العاجل سيتم رفع دروس في مواضيع متقدّمه (الجزيئات +التعامل مع المجسمات ثلاثيّة الأبعاد بشكل كبير).
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: rar ex.rar‏ (6.1 كيلوبايت, المشاهدات 52)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •