بازگشت   پی سی سیتی > سایر گفتگوها > ورزش Sports > بخش عمومی ورزش

بخش عمومی ورزش در این تالار به مباحث عمومی ورزش از قبیل رشته های مختلف آن پرداخته میشود

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #1  
قدیمی 08-28-2009
deltang deltang آنلاین نیست.
کاربر عالی
 
تاریخ عضویت: Mar 2009
محل سکونت: TehrAn
نوشته ها: 6,896
سپاسها: : 0

200 سپاس در 186 نوشته ایشان در یکماه اخیر
deltang به Yahoo ارسال پیام
جدید 2D Soccer Simulation - شبیه سازی فوتبال دو بعدی

فصل اول - آشنایی با شبیه سازی

سلام

همانطوری که میدانید 2D Soccer Simulation ( به اختصار : 2dsoccersim ) یکی از رشته های محبوب در زمینه Robocup هست که هم در ایران و هم در سایر کشور ها سرمایه گزاری های زیادی روی اون انجام میشه . به دلیل اینکه بر خلاف سایر رشته های روبوکاپ , برای درست کردن یک تیم فوتبال شبیه سازی شده هیچ خرج و مخارجی احتیاج نیست .
  • شبیه سازی یعنی چی؟
    شاید این اولین سوالی باشه که بعد از شنیدن شبیه سازی فوتبال یا Soccer Simulation به ذهنتون برسه! به طور کلی شبیه سازی در رایانه یعنی محیطی مثل واقعیت توی رایانه بسازیم و عملیاتی روی محیط شبیه سازی شده انجام بدیم و نتیجه ی آن را ببینیم!
  • حال چرا شبیه سازی کنیم وقتی می تونیم تمام جوانب رو در واقعیت بررسی کنیم؟
    بعضی از وقایع یا آزمایش ها بسیار پر هزینه هستند و حتی بعضی از آنها در زمان مورد نظر قابل آزمایش نیستند. به عنوان مثال می خواهیم روش های مختلف مدیریتی رو بعد از وقوع زلزله بررسی کنیم! واضح است که ایجاد یک زلزله ممکن نیست و حتی اگر ممکن بود خسارت مالی و جانی فراوانی به همراه داشت. اینجاست که شبیه سازی به کمک ما میاد. در حال حاضر در زمینه ی مدیریت پس از زلزله هر سال مسابقاتی در سطح جهان برگزار میشود .
  • انواع لیگ های شبیه سازی :
  1. شبيه سازی مربی فوتبال: مسابقه شبيه سازی مربی فوتبال، يک ليگ جنبی رقابتهای شبيه سازی است، که در آن نرم افزارهای هوشمندی که به عنوان مربی آماده شده اند، با استفاده از يک زبان استاندارد (Coaching Language) قادر خواهند بود با تيمهای مختلف کار کنند، و آنها را رهبری و هدايت نمايند. تحقيقات در اين رشته، بر مدلسازی رفتار حريف و سازگار شدن Online متمرکز است. اين نرم افزارها (مربی ها) ميتوانند به دو صورت عمل نمايند: بررسی و تجزيه و تحليل بازيهای قبلی، و تجزيه و تحليل و سازگار شدن در حالی که بازی در حال انجام است.
  2. شبيه سازی سه بعدی فوتبال : اين رشته، بر مبنای سيستم شبيه سازی که در سمپوزيوم بين المللی ربوکاپ در سال 2003 معرفی گرديد به راه افتاده است. قرار است قابليتهای بسيار زيادتری به Server شبيه ساز سه بعدی اضافه گردد. نرم افزارها و مستندات مرتبط از طريق Sourceforge قابل دسترسی است.
  3. مسابقه توسعه شبيه ساز سه بعدی فوتبال : با توجه به اينکه رشته شبيه سازی سه بعدی فوتبال هنوز در ابتدای راه است، مسابقه جنبی ديگری در کنار ليگ شبيه سازی فوتبال راه افتاده است، که شرکت کنندگان ايده های خود را برای افزودن قابليتهای جديد به Server شبيه ساز سه بعدی فوتبال برای سايرين مطرح مينمايند. در پايان به برترين ايده ها (بنا به نظر اکثريت) جوايزی اهدا ميشود.
  4. شبیه سازی امداد: پروژه شبیه سازی امداد روبوکاپ یکی از زمینه های تحقیقاتی – کاربردی جدید روبوکاپ است که هدف اصلی آن ایجاد یک سیستم پشتیبانی تصمیم اضطراری است. با استفاده از جمع آوری اطلاعات مربوط به بلای طبیعی رخ داده (زلزله)، پیش‌بینی، نقشه ریزی و سرانجام یک واسط کاربر ایجاد چنین سیستمی امکان پذیر می باشد.برای شبیه سازی، یک محیط شبیه سازی فاجعه شهری که روی شبکه ای از رایانه های متصل به هم کار می کند، ساخته شده است. در این دنیای شبیه سازی شده، عامل های ناهمگون مانند آتش نشان ها، فرماندهان، قربانیان، داوطلبان، و غیره عملیات جستجو و نجات را هدایت می کنند. امدادگران انسانی می توانند از این شبیه ساز به عنوان زیربنا و پایه سیستم شبیه ساز مورد نظر خود استفاده کنند و سپس ویژگیهای مورد نظر خود را با اضافه کردن ماژول های مورد نیاز به شبیه ساز به سیستم اضافه کنند.این پروژه موضوعات تحقیقاتی پیشرفته در زمینه های مختلفی را در بر می گیرد. به عنوان مثال در زمینه هوش مصنوعی و رباتیک، استراتژی رفتار (برای مثال برنامه ریزی چندعاملی، برنامه ریزی بلادرنگ، ناهمگونی عاملها، و غیره) یکی از مسایل پیچیده موجود می باشد.نتایج پژوهش های انجام شده در پروژه شبیه سازی امداد روبوکاپ در اختیار همگان قرار می گیرد. همه ساله افراد زیادی با هدف پژوهش، سرگرمی، و آموزش در این مسابقات شرکت می کنند. طیف گسترده ای از قسمت های مختلف این فناوری در ایجاد یک سیستم اجتماعی ایمن تر در آینده قابل استفاده خواهد بود.
  • شبيه سازی دوبعدی فوتبال
    در اين رشته که از جمله قديمی ترين رشته های مسابقات جهانی ربوکاپ است، تيمهايی متشکل از 11 برنامه نرم افزاری هوشمند با استفاده از يک نرم افزار Server به نام RoboCup Soccer Server که از سايت رسمی شبيه ساز ربوکاپ قابل دسترسی است، با هم به رقابت ميپردازند
پاسخ با نقل قول
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید




  #2  
قدیمی 08-28-2009
deltang deltang آنلاین نیست.
کاربر عالی
 
تاریخ عضویت: Mar 2009
محل سکونت: TehrAn
نوشته ها: 6,896
سپاسها: : 0

200 سپاس در 186 نوشته ایشان در یکماه اخیر
deltang به Yahoo ارسال پیام
پیش فرض

فصل دوم - شبیه سازی فوتبال 2 بعدی


برای ایجاد و اجرای شبیه سازی دو بعدی احتیاج به موارد زیر داریم :
  • Linux Ubuntu / Fedora / Suse
کلیه آموزش های ما برای لینوکس Fedora هست و اگر لینوکس دیگری دارید مطابق دستورات لینکوس خودتان عمل کنید .

  • آشنایی اندک با برنامه نویسی C++ یا Java
50% کد هایی که قرار میدهیم IF و Else هستند


آشنایی در حد توابع , شرط ها و حلقه ها ...
  • کامپایلر GCC و پکیچ Boost
در صورتی که هنگام نصب لینوکس , تمام پکیج های مربوط به برنامه نویسی و تمام پکیج های مربوط به Library ها را علامت بزنید دیگر نیازی به عملیات زیر نیست در غیر این صورت باید تمام عملیات زیر را انجام دهید :
با یوزر root لوگین شوید ,

قبل از شروع هرکاری باید مطمئن شوید که gcc روی لینوکس نصب هست! اگر نیست می تونید از درون سی دی لینوکس و با استقاده از Software Management توی YaST نصبش کنید یا توی Konsole بزنید:


کد:
yum install gcc

gcc یک کامپایلر C هست که توی لینوکس خیلی استفاده میشه .


بعد از اینکه مطمئن شدید gcc نصب هست باید یه پکیج دیگه بنام boost رو نصب کنید!


نصب این پکیج زمان خیلی زیادی می گیره و حدود 1 گیگ هم هارد نیاز داره! البته سرور شبیه ساز فوتبال فقط نیاز به دو تا از Library های اون داره، شما می تونید فقط همون دو تا رو make و make install کنید:



کد:



libboost_filesystem-gcc.so libboost_program_options-gcc.s


بصورت پیش فرض این Library ها توی /usr/local/lib ذخیره میشن! اما یه مشکلی که وجود داره اینه که اسم این Library ها توی پکیج جدید Boost نسبت به زمانی که Soccer Simulation Server ساخته شده فرق کرده پس باید اسم اونا رو عوض کنیم!


برای این کار به /usr/local/lib برین و اسم دو تا فایل رو با این دوخط دستور عوض کنید:



کد:



mv libboost_filesystem-gcc41-1_34_1.so libboost_filesystem-gcc.so mv libboost_program_options-gcc41-1_34_1.so libboost_program_options-gcc.so


که اگر گه Boostای که گرفتین فرق داشته باشه ممکنه اون عدد های آخر فرق کنن!








  • Soccer Server / Monitor / Base / Log

با یوزر Root لوگین شوید و تمام فایل ها را به طور کامل Extract کنید ,
این 3 فولدر را باید نصب کنید :

rcssbase-12.1.0
rcssmonitor-12.1.0.
rcssserver-12.1.1

من آموزش نصب rcssserver-12.1.1 رو میدم , بقیه به طریق مشابه است .

وارد Konsole شوید و دستورات زیر را وارد کنید :
کد:

cd Desktopcd rcssserver-12.1.1./configuremakemake install

حالا 2 فایل دیگر هم نصب کنید به همین طریق ( با تفافت اینکه cd rcssserver-12.1.1 باید تغییر کند ) ,

دوباره وارد Konsole شوید و دستور زیر را تایپ کنید :
کد:

./rcsoccer sim

(البته بودن فاصله )

حالا اگر صفحه ای شبیه صفحه زیر را مشاهده کردید ( البته بدون بازیکن ) یعنی عملیات موفقیت آمیز بوده و سرور شبیه ساز به طور کامل روی لینوکس شما نصب شده ...



ویرایش توسط deltang : 08-28-2009 در ساعت 02:45 PM
پاسخ با نقل قول
  #3  
قدیمی 08-28-2009
deltang deltang آنلاین نیست.
کاربر عالی
 
تاریخ عضویت: Mar 2009
محل سکونت: TehrAn
نوشته ها: 6,896
سپاسها: : 0

200 سپاس در 186 نوشته ایشان در یکماه اخیر
deltang به Yahoo ارسال پیام
پیش فرض

خوب دوستان در آموزش هاي بالا ياد گرفتيد كه چگونه سرور شبيه سازي دو بعدي را نصب و اجرا كنيد !

حالا دو تا فايل آموزشي بسيار مفيد با فرمت pdf براتون مي زارم كه شما رو در شبيه سازي فوتيال دو بعدي به سطح بالايي مي رسونه اما تا تهش نيست و بعد از خواندن اين دو فايل باز هم نمي توانيد تيم بنويسيد و براي مسابقات آماده شويد !!

و ديگر هيچ فايل آموزشي بالاتري وجود نداره !

ان شاءالله به زودي من يك فايل آموزشي به صورت فوق كامل تهيه خواهم كرد كه از صفر صفر يعني حتي برنامه نويسي c اي كه براي شبيه سازي لازمه تا فنون و ترفند هاي secret پاياني و تاكتيك هاي جديد بازي ... ( كه البته اگه اين تيكه آخر رو بزارم فروشيش مي كنم اگر نه رايگان براي دانلود عموم مي زارم !! ) ...

اما علاقه مندان فعلا اين دو فايل رو دانلود كنن تا لذت ببرن !!

لينك دانلود :
کد:
http://people051.persiangig.ir/other/Amouzesh%202D%20soccer.rar
پسورد :
کد:
www.people.blogfa.com
دوستان اگر دلگرمي بدين سريع تر آموزشم حاضر مي شه وگر نه شايد اصلا حاضر نشه !!
پاسخ با نقل قول
  #4  
قدیمی 08-28-2009
deltang deltang آنلاین نیست.
کاربر عالی
 
تاریخ عضویت: Mar 2009
محل سکونت: TehrAn
نوشته ها: 6,896
سپاسها: : 0

200 سپاس در 186 نوشته ایشان در یکماه اخیر
deltang به Yahoo ارسال پیام
پیش فرض

باینری تیم WrightEagle(تیم دوم جهان در سه سال گذشته! البته شایدم چهار سال گذشته!!)

کد:
http://ai.ustc.edu.cn/rco/rco08/binary/WrightEagle.tar.gz
یه تیم ضعیف تر برای شروع کار:

کد:
http://ai.ustc.edu.cn/rco/rco08/binary/ZcvcTF.tar.gz
یه تیم باز هم ضعیف تر:

کد:
http://ai.ustc.edu.cn/rco/rco08/binary/Strive.tar.gz
البته اینها بازم یه کم! قوی اند(البته برای شروع ضعیف اند)
پاسخ با نقل قول
  #5  
قدیمی 08-28-2009
deltang deltang آنلاین نیست.
کاربر عالی
 
تاریخ عضویت: Mar 2009
محل سکونت: TehrAn
نوشته ها: 6,896
سپاسها: : 0

200 سپاس در 186 نوشته ایشان در یکماه اخیر
deltang به Yahoo ارسال پیام
پیش فرض

شروع کار
ابتدا از فایل های موجود شروع میکنیم:
مهمترین فایل همون Main.cpp هست که خیلی جزیی بررسیش میکنیم،در اینجا مشخص میشه کسی که براش برنامه اجرا شده coach هست یا بازیکن. اگر coach بود از این به بعد کار با کلاس AdvancedCoach است وگرنه کار با کلاس AdvancedAgent.(باز هم تاکید میکنم برای همه اعضای تیم یک برنامه اجرا میشود و شما باید در کد خود مشخص کنید چه موقع coach اجرا شود چه وقت بازیکن، کی دفاع اجرا شود کی دروازه بان و...)
پس تا اینجای کار ما به دو class مربی و بازیکن(AdvancedCoach و AdvancedAgent) رسیدیم.
چون فعلا میخواییم فایل های همون وسطو بررسی کنیم (فعلا) کاری به این دو و باقی جزییات که به فایل های ریخته شده وسط بیس ربطی ندارند، کاری نداریم.
Makefile و Makefile.common هم کارشون اینه که وقتی شما make رو در خط فرمان تایپ میکنید همه فایل ها رو کامپایل کرده و یک فایل به اسم TeamName]Agent] بسازند. که در حالت عادی MersadBaseAgent میباشد.
فایل اجرایی شما startAll است که میاد به اندازه مورد نیاز(11 -12 تا) این MersadBaseAgent رو اجرا میکنه.startCoach و start5+goalie و ... هم تعدادی از بازیکن ها یا مربی رو اجرا میکنند.
به جز killAll میتونید بقیه فایل هارو پاک کنید :دی
(البته unpackLogFiles هم بعدا بدردتون میخوره، و header هم استفاده میشه، میتونید استفادش نکنید و بعد پاکش کنید، استفاده مفیدی نداره! فقط وقتی تیم start میشه نوشته های توش تو کنسول یا ... نوشته میشه. بود و نبودش یکیه،.تو start ها استفاده میشه، یعنی از بالای آنها برش دارید مساوی با اینه که ازش استفاده نمیکنید و میتونید پاکش کنید)
پاسخ با نقل قول
  #6  
قدیمی 08-28-2009
deltang deltang آنلاین نیست.
کاربر عالی
 
تاریخ عضویت: Mar 2009
محل سکونت: TehrAn
نوشته ها: 6,896
سپاسها: : 0

200 سپاس در 186 نوشته ایشان در یکماه اخیر
deltang به Yahoo ارسال پیام
پیش فرض

بررسی فولدر های موجود و فایل های داخل آنها

اول از آنهایی شروع میکنیم که زیاد باهاشون کاری نداریم، HPSو SignalHandling رو کلا باهاشون کاری نداشته باشید(شاید بعدا بخواهید تغییرشان بدهید)
Formation هم نیازی به این فولدر نداره، یعنی کار formation میتونه بدون این فولدر انجام بشه(ignore ش کنید)
Coach هم همانطور که از اسمش پیداست مربوط میشه به مربی، زمان شورع و کار مبتدی کاری به مربی نداشته باشید(از کار های پیشرفته تر محسوب میشه)
Connection هم مربوط به ما نمیشه و اتصال بازیکنان به سرور هستش و ...(نیازی نیست تغییرش دهید)
بقیه فولدر ها خیلی مهم اند و تقریبا با تک تک فایلاشون کار داریم، چون کلاس های مهمی توشون تعریف شده که خیلی استفاده میشوند.

Configs: فایل های .conf اینجا هستند که اهمیتشون به اینه که راحت میشه تغییرشون داد و نیازی هم به کامپایل ندارند.( با تغییر دادن قسمتی کوچکی از آنها ممکن است تیم شما تغییر کلی ای بکند) مثل PassFactors.conf که فاکتور های پاس و ضریب آنها(وزن آنها) در آن لحاظ شده. علاوه بر این کانفیگ های اصلی Agent.conf و Coach.conf هم اینجا هست.
فعلا کاری به استفاده از کانفیگ و خواندن آنها در برنامه cpp نداریم.

دیگه قاعده صادق نیست(اول از اونهایی شروع میکنیم که زیاد باهاشون کاری ندارم)، WorldModel خیلی مهمه.

WorldModel:تقریبا مهم ترین فولدری که باید کاملا به فایل هاش، کلاس هاش و تابع های کلاس هاش مسلط باشید. چون زیاد ازشون استفاده میشه. ارتباط یک Agent با محیط بیرون و اطرافش(شایدم سرور) از طریق WorldModel است. مثلا این که الان ball کجاست(مختصاتش) یا چه سرعتی داره(بردار سرعت، جهت و مقدار داره که البته با مشخص کردن x و y در اینجا مشخص میشه)، نزدیک ترین بازیکن به توپ کیه، هم تیمی یا نه، شمارش چنده،مختصاتش چیه و ...؛ من الان کجام، شمارم چنده، چه type ی دارم(حدود 17 type داریم،مثلا یکی تند میدود ولی مثلا زود خسته میشه، و کوچک تر از بقیس به این معنی که از فاصله کمتری میتونه رو توپ اثر بذاره و... . یعنی هر کدوم ویژگی های خاص خودشو داره) همگی اطلاعاتی هستند که WorldModel در اختیار ما قرار میده.
میشه گفت کلاس WorldModelUtilities مهم ترین فایل WorldModel است.(که از WolrdModelBase ارث میبره) همون فایلیست که باید بهش مسلط باشید.
قبل از توضیح WorldModelUtilities باید کلاس های زیر را بررسی کنیم:
  1. Object: همونطور که از اسمش معلومه یک شی هست که به تنهایی بی کاربرد ترین فایل cpp موجود در بیس مرصاد است!! ولی خیلی خیلی مهمه! چون کلاس های مهمی مثل Player و Ball ازش ارث میبرند که Body هم از Player ارث میبره. مهم ترین متغییر هاش position و velocity و decay(میزان اصطکاک با زمین) هستند و تابع های مهمش هم get و set این متغییر ها به همراه getDistance که فاصله آن با یک نقطه یا یک Object دیگر رو برمی گردونه، هستند.
  2. Ball: همون توپ است که تابع های مهمش simulate ها و update ها و isValid هستند.(مثلا به جز توپ اصلی شما یک شی از کلاس Ball تعریف میکنید و simulateش میکنید،(اول برابر قرار دادیدش با توپ اصلی) میتونید با این کار بفهمید که مثلا بعدا اگر فلان اتفاق بیفته، توپ کجاس و چه وضعیتی داره،وضعیت مثل سرعت)
  3. Player: یک بازیکن، چون ممکن است که منظور خود Agent باشد تابع isBody وجود دارد(چون از خودش بیشتر از بقیه اطلاعات دارید) تابع های مهمش خیلی زیادن ولی برخی از آنها عبارتند از: isValid,isAlive زنده بودنش یعنی این که تو زمین هست یا نه، مثلا اگه بهش بگیم که برو به position توپ و تو valid نباشه، بازیکن kill میشه(به اصطلاح) و میره بیرون زمین و سیاه میشه(دیگه قایل استفاده نیست). کارهای که باعث kill شدن یک بازیکن میشوند بیشتر از این ها هستند. و مهمترین توابع Player تمامی get ها هستند!چون اطلاعات رو در اختیار ما قرار میدن، پس همشون رو بخونید و بلد باشید.
  4. Body:این کلاس هم خود بازیکن است.
پیشنهاد من این است کد .h تمام این کلاس ها رو بخونید.(فایل h. ی که این کلاس ها در آن تعریف شده اند)

فکر کنم دیگه زیاد شد. شما اینها رو فعلا بخونید، بقیه WorldModel رو بعدا میگم.
پاسخ با نقل قول
  #7  
قدیمی 07-31-2010
djsohrab2007 djsohrab2007 آنلاین نیست.
تازه وارد
 
تاریخ عضویت: Jul 2010
نوشته ها: 1
سپاسها: : 0

0 سپاس در 0 نوشته ایشان در یکماه اخیر
Exclamation کمک

نقل قول:
نوشته اصلی توسط deltang نمایش پست ها
خوب دوستان در آموزش هاي بالا ياد گرفتيد كه چگونه سرور شبيه سازي دو بعدي را نصب و اجرا كنيد !

حالا دو تا فايل آموزشي بسيار مفيد با فرمت pdf براتون مي زارم كه شما رو در شبيه سازي فوتيال دو بعدي به سطح بالايي مي رسونه اما تا تهش نيست و بعد از خواندن اين دو فايل باز هم نمي توانيد تيم بنويسيد و براي مسابقات آماده شويد !!

و ديگر هيچ فايل آموزشي بالاتري وجود نداره !

ان شاءالله به زودي من يك فايل آموزشي به صورت فوق كامل تهيه خواهم كرد كه از صفر صفر يعني حتي برنامه نويسي c اي كه براي شبيه سازي لازمه تا فنون و ترفند هاي secret پاياني و تاكتيك هاي جديد بازي ... ( كه البته اگه اين تيكه آخر رو بزارم فروشيش مي كنم اگر نه رايگان براي دانلود عموم مي زارم !! ) ...

اما علاقه مندان فعلا اين دو فايل رو دانلود كنن تا لذت ببرن !!

لينك دانلود :
کد:
http://people051.persiangig.ir/other/Amouzesh%202D%20soccer.rar
پسورد :
کد:
www.people.blogfa.com
دوستان اگر دلگرمي بدين سريع تر آموزشم حاضر مي شه وگر نه شايد اصلا حاضر نشه !!
سلام
من تازه شروع کردم به یادگیری شبیه سازی دوبعدی و روی بیس uva هم کار می کنم. مطلب شما را خواندم ۲ سوال برام ایجاد شد :
۱ - من cygwin را نصب کردم حالا چه جوری روی ویندوز بیس را اجرا کنم ؟
۲- لینک دانلود شما خرابه‌!
با تشکر
پاسخ با نقل قول
پاسخ


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 
ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 05:12 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها