تبلیغات
الکترونیک - آموزش - الگریتم

الکترونیک

دوشنبه 4 آذر 1387

آموزش - الگریتم

نویسنده: محسن   

سلام ،

در مورد الگوریتم شوت به دروازه یا shootToGoal میخواستم یه توضیحات ابتدایی رو بگم ::

از مواردی که در shootToGoal می تونیم مورد بحث و بررسی قرار بدیم ، توجّه به

Opponent Goalie Catchable Area , Cone To Goal , Opponent's Situation , Teammate Situation , Opponents Kickable Area

میباشد که میتوان از این مشخصه ها در یک تابع مثل shootToGoal استفاده کرد و با محاسبات و دادن امتیاز یا کسر امتیاز نقطه ی

مطمئنی رو بر روی خط دروازه به دست آورد و به اون نقطه شوتید.

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

الگوریتم می شود که در پستهای بعدیم توضیح میدم. )

خوب میریم سراغ الگوریتم ::

اینکه به کدوم نقطه شوت بزنم خیلی مهمّ برای همین بر روی خط دروازه دو نقطه رو به عنوان targetPos انتخاب میکنیم و به

صورت زیر تعریف میکنیم ::

VecPosition posTarget[2] = {VecPosition( 52.5 , 6.5 ) , VecPosition( 52.5 , -6.5 )};۰

تو این الگوریتم فقط موقعیت دروازه بان و خود بازیکن رو در نظر میگیریم ::

Vec Position posAgent = WM->getAgentGlobalPosition();۰
VecPosition posGoalie = WM->getGlobalPosition( OBJECT_OPPONENT_GOALIE ();۰


و با چک کردن شروط زیر امن ترین نقطه برای شوت رو انتخاب میکنیم و بهش میشوتیم ::

1. اگر Y من بزرگتر در Y دروازه بان بزرگتر از 0 بود ::
 5487  5487الف . اگر posAgent.getY() > 0 :
 5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487شوت به نقطه ی posTarget[0]۰
 5487  5487 ب. 5487 در غیر اینصورت :
 5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487شوت به نقطه ی posTarget[1]۰

2. در غیر اینصورت :
 5487  5487 الف . اگر posAgent.getY() < 0 :
 5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487شوت به نقطه ی posTarget[1]۰

 5487  5487  5487ب . 5487 در غیر اینصورت :
 5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487  5487 شوت به نقطه ی posTarget[0]۰


---------------------------------------------------------------------------------------
امیدوارم که بتونید استفاده کنید ( البته برای تازه کارها خیلی خوب میتونه باشه .)

لینک در انجمن برای پرسش سوال:
http://www.rcsoccersim.com/forum/index.php/topic,106.0.html

نظرات() 
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر

نویسندگان

آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :