PDA

View Full Version : سوال: مقایسه تصاویرتصادفی با تصاویر انتخابی کاربر(بازی فکربکر)



FATEMEH@
جمعه 22 آذر 1392, 18:31 عصر
سلام دوستان من دارم بازی فکر بکر رو مینویسم با سی شارپ اما تو مقایسه تصاویری که کاربر حدس زده با تصاویری که بطور تصادفی ایجاد شده مشکل دارم و برنامه ام جواب نمیده
کسی میتونه کمک کنه؟
ممنونم خیلی نیاز دارم

pictureBox48.BackgroundImage این تصویریه که کاربر حدس زده
pictureBox93.BackgroundImage اینم تصویری که رندوم ایجاد شده
که اگر دقیقا رنگی که کاربر حدس زده با رنگی که رندوم ایجاد شده یکی بود بعد تو پنل result اون محل سبز میشه
اینم کد

کد:
int c1=0,c2=0,c3=0,c4=0;


//{
if (pictureBox93.BackgroundImage == pictureBox48.BackgroundImage)
c1 = 1;
if (pictureBox92.BackgroundImage == pictureBox48.BackgroundImage)
c1 = 2;
if (pictureBox91.BackgroundImage == pictureBox48.BackgroundImage)
c1 = 2;
if (pictureBox90.BackgroundImage == pictureBox48.BackgroundImage)
c1 = 2;
//************
if (pictureBox93.BackgroundImage == pictureBox47.BackgroundImage)
c2 = 2;
if (pictureBox92.BackgroundImage == pictureBox47.BackgroundImage)
c2 = 1;
if (pictureBox91.BackgroundImage == pictureBox47.BackgroundImage)
c2 = 2;
if (pictureBox90.BackgroundImage == pictureBox47.BackgroundImage)
c2 = 2;
//*************
if (pictureBox93.BackgroundImage == pictureBox46.BackgroundImage)
c3 = 2;
if (pictureBox92.BackgroundImage == pictureBox46.BackgroundImage)
c3 = 2;
if (pictureBox91.BackgroundImage == pictureBox46.BackgroundImage)
c3 = 1;
if (pictureBox90.BackgroundImage == pictureBox46.BackgroundImage)
c3 = 2;
//*********
if (pictureBox93.BackgroundImage == pictureBox45.BackgroundImage)
c4 = 2;
if (pictureBox92.BackgroundImage == pictureBox45.BackgroundImage)
c4 = 2;
if (pictureBox91.BackgroundImage == pictureBox45.BackgroundImage)
c4 = 2;
if (pictureBox90.BackgroundImage == pictureBox45.BackgroundImage)
c4 = 1;
//***********

if (c1 == 1)
pictureBox52.BackgroundImage = pictureBox94.Image;
if(c2==1)
pictureBox51.BackgroundImage = pictureBox94.Image;

sagggad
جمعه 22 آذر 1392, 22:55 عصر
حالا مشکلت کجاست دوست من؟؟من یه نسخه از نرم افزارت رو دارم اصلا کلا تا پیکچرباکس85 داری توش.اینجا94 ازکجا اومد؟؟

FATEMEH@
جمعه 22 آذر 1392, 22:59 عصر
حالا مشکلت کجاست دوست من؟؟من یه نسخه از نرم افزارت رو دارم اصلا کلا تا پیکچرباکس85 داری توش.اینجا94 ازکجا اومد؟؟
اونو بیخیال گفتم که پروژه جدید باز کردم
اینکه نمیتونم تصاویری که کاربر حدس زده رو با تصویر تصادفی هام مقایسه کنم و اگه برابر بود تو پنل result اون محل سبز بشه درواقع picture box مربوطه

FATEMEH@
شنبه 23 آذر 1392, 13:43 عصر
کسی نمیتونه کمکی بکنه دوستان؟
اگر ایده ی دیگه ای هم دارید بگید
ممنونم

kasraaa
شنبه 23 آذر 1392, 16:40 عصر
جای سبز کردن بهتره پیام بدی که آفرین برنده شدید و بازی رو ریست کنی

FATEMEH@
شنبه 23 آذر 1392, 16:44 عصر
جای سبز کردن بهتره پیام بدی که آفرین برنده شدید و بازی رو ریست کنی
ممنون از توجهت
اما نمیشه که دوست عزیزچون این یعنی فقط 1 رنگ رو درست گذاشتی
اگر 4 تاش درست بود اونوقت پیام میده

kasraaa
شنبه 23 آذر 1392, 16:47 عصر
پ ی جوری باید از دور بازی حذفش کنی اگه بشه با حذف کردن

FATEMEH@
شنبه 23 آذر 1392, 16:58 عصر
پ ی جوری باید از دور بازی حذفش کنی اگه بشه با حذف کردن
چیو حذف کنم؟

sagggad
شنبه 23 آذر 1392, 17:04 عصر
کلا گنگ حرف میزنین.ای لجم می گیره!!!!!!

sagggad
شنبه 23 آذر 1392, 17:06 عصر
مگه نمیتونی با یه دستورIf تعیین کنی که اگه عکس پیکچرباکس با اون یکی برابر بود مثلا یک کاری انجام بده؟؟؟؟؟؟؟؟؟؟

FATEMEH@
شنبه 23 آذر 1392, 17:13 عصر
مگه نمیتونی با یه دستورIf تعیین کنی که اگه عکس پیکچرباکس با اون یکی برابر بود مثلا یک کاری انجام بده؟؟؟؟؟؟؟؟؟؟
اقا سجاد 1 نگاه به دستورات بندازید اینکارو کردم اما جواب نمیده
نه ارور میده نه جواب
خنثی

FATEMEH@
شنبه 23 آذر 1392, 17:13 عصر
کلا گنگ حرف میزنین.ای لجم می گیره!!!!!!
خونسرد باشید دوست عزیز

mohamadjon
شنبه 23 آذر 1392, 17:32 عصر
آی که چقدر بدم میاد از سی شارپ!منم خودم توش موندم وداره مغزم منفجر میشه

sagggad
شنبه 23 آذر 1392, 17:42 عصر
شما براچی ازBackGrounImage بجای Image استفاده کردی؟؟؟:متعجب:

FATEMEH@
شنبه 23 آذر 1392, 17:53 عصر
شما براچی ازBackGrounImage بجای Image استفاده کردی؟؟؟:متعجب:
یادم نیست چرا
اما حواسم بود که کجا بک گروند دادم کجا ایمیج

sagggad
شنبه 23 آذر 1392, 18:09 عصر
یعنی مطمئنی یه وقت اشتباه جایی بک گروند به جای ایمیج نذاشتی؟؟
بعدش هم یه چیزی:الان این کدهایی که داری اصلا عمل نمیکنه؟؟؟

FATEMEH@
شنبه 23 آذر 1392, 18:12 عصر
یعنی مطمئنی یه وقت اشتباه جایی بک گروند به جای ایمیج نذاشتی؟؟
بعدش هم یه چیزی:الان این کدهایی که داری اصلا عمل نمیکنه؟؟؟
بله مطمئنم
اصلا

sagggad
شنبه 23 آذر 1392, 18:27 عصر
خوب حالا شما تمام BackGroundImage ها رو Replace کن به Image شاید درست شه.

sagggad
شنبه 23 آذر 1392, 18:27 عصر
ضمنا SizeMode پیکچرباکس ها رو روی Strech Image قراربده.

FATEMEH@
شنبه 23 آذر 1392, 20:47 عصر
خوب حالا شما تمام BackGroundImage ها رو Replace کن به Image شاید درست شه.
با چه دستوری؟

FATEMEH@
شنبه 23 آذر 1392, 20:48 عصر
ضمنا SizeMode پیکچرباکس ها رو روی Strech Image قراربده.
سایز درسته

sagggad
شنبه 23 آذر 1392, 20:54 عصر
با چه دستوری؟
دستور نمی خوادکه:برو تو کد هات بعد توی منوی Edit ویژوال استودیو روی Quic Replace کلیک کن،بعد توی تکس باکس اولی BackGroundImage و تو تکس باکس زیریش Image رو تایپ کن.با این کار هرچی کلمه BackGroundImage تو کدهات باشه به Image تبدیل میشه.
موفق باشید

FATEMEH@
شنبه 23 آذر 1392, 21:18 عصر
دستور نمی خوادکه:برو تو کد هات بعد توی منوی Edit ویژوال استودیو روی Quic Replace کلیک کن،بعد توی تکس باکس اولی BackGroundImage و تو تکس باکس زیریش Image رو تایپ کن.با این کار هرچی کلمه BackGroundImage تو کدهات باشه به Image تبدیل میشه.
موفق باشید
خب نیاز نیس

sagggad
شنبه 23 آذر 1392, 21:33 عصر
آخه یه سری امکانات که خصوصیت Image داره،BackGrounImage نداره.

sagggad
شنبه 23 آذر 1392, 21:34 عصر
حالا شما از متغیر های تعریف شده چه استفاده ای میکنید؟؟(مثلC1)

FATEMEH@
شنبه 23 آذر 1392, 21:39 عصر
حالا شما از متغیر های تعریف شده چه استفاده ای میکنید؟؟(مثلC1)
خب مشخص میکنم که ایا تصویری که کاربر حدس زده با تصویر تولید شده برابر هست یا نه
اگر بود میشه متغییر میشه 1

FATEMEH@
شنبه 23 آذر 1392, 21:39 عصر
آخه یه سری امکانات که خصوصیت Image داره،BackGrounImage نداره.
اخه چون از sender استفاده کردم باید از بک گروند استفاده میکردم

sagggad
شنبه 23 آذر 1392, 21:41 عصر
اخه چون از sender استفاده کردم باید از بک گروند استفاده میکردم


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

sagggad
شنبه 23 آذر 1392, 21:43 عصر
خب مشخص میکنم که ایا تصویری که کاربر حدس زده با تصویر تولید شده برابر هست یا نه
اگر بود میشه متغییر میشه 1

اون رو که میدونم دوست من.بعد از اون چه کار میکنید؟؟یعنی اگر مثلا C1=1 اونوقت برنامه چه عکس العملی از خودش نشون میده؟؟

FATEMEH@
شنبه 23 آذر 1392, 22:00 عصر
خوب اگه از این خصوصیت استفاده نمی کردید برنامه مطمئن تر بود.(البته یک کم طولانی میشد)
بیشتر یکم
40 بار باید 1 سری دستور رو مینوشتم

sagggad
شنبه 23 آذر 1392, 22:09 عصر
درسته خیلی طولانی میشد.البته من همیشه از همین روش های طولانی تو برنامه هام استفاده میکنم چون مطمئن تره.شما نگفتید:بعد از اون چه کار میکنید؟؟یعنی اگر مثلا C1=1 اونوقت برنامه چه عکس العملی از خودش نشون میده؟؟

FATEMEH@
شنبه 23 آذر 1392, 22:09 عصر
اون رو که میدونم دوست من.بعد از اون چه کار میکنید؟؟یعنی اگر مثلا C1=1 اونوقت برنامه چه عکس العملی از خودش نشون میده؟؟
تو اون پنل اخری 1 سری دایره بودا
اگه رنگا درست باشه تو اونا رنگ سبز قرار میگیره

sagggad
شنبه 23 آذر 1392, 22:10 عصر
اگه میشه کدهای اون رو هم بذارید یه نگاهی بندازم

MOHMMAD.M
شنبه 23 آذر 1392, 22:23 عصر
شما یه else برای یکیشون بنویس ببین جواب میگیری مثلا
else
maseege box("test"); :متفکر:

اخه من مطمئن نیستم این دستور if که شما گذاشتید برای موضوع مقایسه بین دوتا عکس کار کنه اونجور که شما میخوای .!!!
فکر کنم باید راهی بهتر برای مقایست ایجاد کنی .

FATEMEH@
شنبه 23 آذر 1392, 22:26 عصر
اگه میشه کدهای اون رو هم بذارید یه نگاهی بندازم
کد های کودوم؟
اینکه 1cچکار میکنه؟
که اخر همینا هست

FATEMEH@
شنبه 23 آذر 1392, 22:26 عصر
شما یه else برای یکیشون بنویس ببین جواب میگیری مثلا
else
maseege box("test"); :متفکر:

اخه من مطمئن نیستم این دستور if که شما گذاشتید برای موضوع مقایسه بین دوتا عکس کار کنه اونجور که شما میخوای .!!!
فکر کنم باید راهی بهتر برای مقایست ایجاد کنی .
نمیدونم
اخه مشابه ش رو دیدم کار کرده

sagggad
شنبه 23 آذر 1392, 22:33 عصر
کد های کودوم؟
اینکه 1cچکار میکنه؟
که اخر همینا هست
آها الان تازه اون رو خوندم،محمد راست میگه یه Else بذار ببین جواب میده؟؟اگه جواب داد که یعنی شرط درست نمیشه دیگه!

FATEMEH@
شنبه 23 آذر 1392, 22:42 عصر
دستور else چیز خاصی داشت؟
ارور میده

sagggad
شنبه 23 آذر 1392, 22:59 عصر
چه اروری میده؟؟؟

FATEMEH@
یک شنبه 24 آذر 1392, 08:19 صبح
چه اروری میده؟؟؟

Error 1 Only assignment, call, increment, decrement, and new object expressions can be used as a statement c:\users\ahmad\documents\visual studio 2010\Projects\fekr bekr3\fekr bekr3\Form1.cs 188 25 fekr bekr3


Error 2 Invalid expression term 'else' c:\users\ahmad\documents\visual studio 2010\Projects\fekr bekr3\fekr bekr3\Form1.cs 190 20 fekr bekr3


Error 3 ; expected c:\users\ahmad\documents\visual studio 2010\Projects\fekr bekr3\fekr bekr3\Form1.cs 190 24 fekr bekr3
اینم چیزی که نوشتم:
if (pictureBox93.BackgroundImage == pictureBox48.BackgroundImage)
{
c1 = 1;

else
MessageBox .Show ("kj");

}

sagggad
یک شنبه 24 آذر 1392, 08:45 صبح
این ارور میگه:Frm1.cs از داخل پروژت حذف شده ونیست.یه نگاه به همون آدرس بنداز.
این ارور که ارتباطی به Else نداره.یه اشکالی تو همون مسیر که نوشته برا برنامت بوجود آمده.نگاه کن!!!

rasoolf
یک شنبه 24 آذر 1392, 08:48 صبح
سلام اولاً دستوری که نوشتی برای else اشتباهه.

if (pictureBox93.BackgroundImage == pictureBox48.BackgroundImage)
{
c1 = 1;

else
MessageBox .Show ("kj");

}
باید else را بیرون if بنویسی. به این صورت:

if (pictureBox93.BackgroundImage == pictureBox48.BackgroundImage)
{
c1 = 1;



}
else
MessageBox .Show ("kj");


ثانیاً فکر نمیکنم مقایسه دوتا عکس اینجوری جواب بده. مگر اینکه عکس هایی را که توی برنامه تون میزارید یه تعداد مشخصی باشه و برای هرکدوم یک اسمی بزاری بعد توی برنامه از طریق اسمهاشون باهم دیگه مقایسه کنی.

ثالثاً اگر قرار باشه که ما هرچی میخواهیم انجام بدیم سریع نتیجه بده و هیچ تلاش وفکری پشت اون نباشه که هیچ ارزشی نداره.
کار ارزشمند کاریه که مدتها روش فکر و مطالعه بشه. اینو در جواب دوستی گفتم که گفته بود از سی شارپ بدش میاد

FATEMEH@
یک شنبه 24 آذر 1392, 11:10 صبح
ممنونم دوست عزیز
بله ارور حل شد متوجه شدم
خب همینطوره
8 تاعکس دارم فقط
که اسماشون هم عدده
الان شرطم درست نیست چون else جواب میده
اما مکیدونم چجور پس مقایسه کنم

FATEMEH@
یک شنبه 24 آذر 1392, 11:11 صبح
این ارور میگه:Frm1.cs از داخل پروژت حذف شده ونیست.یه نگاه به همون آدرس بنداز.

این ارور که ارتباطی به Else نداره.یه اشکالی تو همون مسیر که نوشته برا برنامت بوجود آمده.نگاه کن!!!

ارور حل شد
حالا فهمیدم شرطم اصلا کار نمیکنه و درست نیست
نمیدونم چجور مقایسه کنم
ممنونم ازت

sagggad
یک شنبه 24 آذر 1392, 11:24 صبح
شما سورسش رو بذار شاید بتونم مشکلت رو حل کنم.آخه اینجوری دقیق متوجه برنامه نیستم.

FATEMEH@
یک شنبه 24 آذر 1392, 11:37 صبح
میل کردم براتون

sagggad
یک شنبه 24 آذر 1392, 11:54 صبح
دارم روش کارمیکنم!!

FATEMEH@
یک شنبه 24 آذر 1392, 11:59 صبح
دارم روش کارمیکنم!!

:لبخندساده:ممنونم

sagggad
یک شنبه 24 آذر 1392, 12:01 عصر
بفرمایید دوستان گلم گیرش آوردم:
این کدش:
(if (pictureBox1.Image.VerticalResolution == pictureBox2.Image.VerticalResolution
{
;("برابرند")MessageBox.Show
}
این هم سورسش:
لینک دانلود:113982

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

FATEMEH@
یک شنبه 24 آذر 1392, 12:06 عصر
بفرمایید دوستان گلم گیرش آوردم:
این کدش:
(if (pictureBox1.Image.VerticalResolution == pictureBox2.Image.VerticalResolution
{
;("برابرند")MessageBox.Show
}
این هم سورسش:
لینک دانلود:113982

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

sagggad
یک شنبه 24 آذر 1392, 12:08 عصر
یعنی چه مشکلی داشتید؟؟سورس رو دانلود کردید؟؟

FATEMEH@
یک شنبه 24 آذر 1392, 12:12 عصر
یعنی چه مشکلی داشتید؟؟سورس رو دانلود کردید؟؟
else رو جواب میده

sagggad
یک شنبه 24 آذر 1392, 12:15 عصر
خوب براچی esle گذاشتین؟؟

FATEMEH@
یک شنبه 24 آذر 1392, 12:16 عصر
خب برا اینکه ببینم شرطم کار میده یانه

FATEMEH@
یک شنبه 24 آذر 1392, 12:20 عصر
تو 1 برانامه دیگه چند تا حالت رو مقایسه کردم با همین دستور جواب داد
اما تو برنامه اصلیم نداد
پس دستور درسته
باید روش کار کنم ببینم مشکل چیه
ممنونم

sagggad
یک شنبه 24 آذر 1392, 12:26 عصر
ببخشید اون یکی مشکل داشت.این کد درسته:
(if (pictureBox1.Image.PhysicalDimension == pictureBox2.Image.PhysicalDimension

;("برابرند")MessageBox.Show

این هم سورسش:image Comparison1.rar (http://barnamenevis.org/attachment.php?attachmentid=113983&d=1387099559)

ببخشید

FATEMEH@
یک شنبه 24 آذر 1392, 12:27 عصر
شما خودتون 1 دور رو سورس چک کنید
تصویر دایره اول توی پنل اولی باید یا دایره اول (که زیر عکسه که نوشته فکر بکر) برابر باشه
از منوها show رو که بزنید رنگا مشخص میشه
ممنونم

sagggad
یک شنبه 24 آذر 1392, 12:28 عصر
آره اون اولی در هرصورت میگفت برابرن!!!ولی این یکی درسته.امتحانش کردم

FATEMEH@
یک شنبه 24 آذر 1392, 12:29 عصر
:متعجب:واییییییییییییییییی
بازم مثله همیشه گل کاشتید
فکر کنم حله:تشویق::تشویق::تشویق::تشو ق::تشویق:

sagggad
یک شنبه 24 آذر 1392, 12:33 عصر
خواهش میکنم:لبخندساده:

FATEMEH@
یک شنبه 24 آذر 1392, 12:42 عصر
خواهش میکنم:لبخندساده:
:کف:وایییییییییییییییی جواب داد
ممنونم
واقعا نمیدونم چجور ازتون تشکر کنم
ایشالا همیشه و همه جا موفق باشیدممنونم:لبخندساده::قلب: :تشویق::تشویق::تشویق::تشویق:: شویق::تشویق:

sagggad
یک شنبه 24 آذر 1392, 12:44 عصر
از قدیم گفتن:
ز کوشش به هر چیز خواهی رسید /////////////////////// //////////////////////////// به هرچیز خواهی کماهی رسید:لبخندساده:
موفق باشید

kasraaa
یک شنبه 24 آذر 1392, 16:21 عصر
حاصل دست رنجتو بزار ببینیم چی شدآخرش

FATEMEH@
یک شنبه 24 آذر 1392, 17:08 عصر
حاصل دست رنجتو بزار ببینیم چی شدآخرش
نشد بازم
باید از کلاس استفاده کنم
بدجور رفتم تو گل

kasraaa
یک شنبه 24 آذر 1392, 19:00 عصر
what?
نفهمیدم منظورت دستور استاده با کلاس انجام بدی؟

FATEMEH@
یک شنبه 24 آذر 1392, 20:04 عصر
what?
نفهمیدم منظورت دستور استاده با کلاس انجام بدی؟
بله
باید با کلاس انجام بدم هیچی هم بلد نیستم
میتونید کمکم کنید؟

kasraaa
یک شنبه 24 آذر 1392, 21:18 عصر
بفرس نگاه کنم میتونم یا اگه آره دریغ نمیکنم اگه نتونستم
شرمنده

FATEMEH@
یک شنبه 24 آذر 1392, 21:32 عصر
بفرس نگاه کنم میتونم یا اگه آره دریغ نمیکنم اگه نتونستم
شرمنده
اختیار دارید
ممنونم
http://www.uplooder.net/cgi-bin/dl.cgi?key=dbf0d0f9e278289a0fcdfe42ab87cd20
هر موقع بازش کردید بگید تا توضیح بدم چون کامن نذاشتم تریس کردنش سخته

habibb
یک شنبه 24 آذر 1392, 22:20 عصر
اختیار دارید
ممنونم
http://www.uplooder.net/cgi-bin/dl.cgi?key=dbf0d0f9e278289a0fcdfe42ab87cd20
هر موقع بازش کردید بگید تا توضیح بدم چون کامن نذاشتم تریس کردنش سخته

چه جوری بازی کنم





یاد بدین

FATEMEH@
یک شنبه 24 آذر 1392, 22:25 عصر
چه جوری بازی کنم






یاد بدین
کامل نیس
اما خب شروع رو بزنید بعد رنگارو درگ کنید تو قسمت سفید
بعد ازمنو ها show colorرو بزنید بعدم چک
البته قانونا نباس show رو زد اما چون بازیکن نیستید بزنید
خاهش میکنم کمکم کنید

sagggad
یک شنبه 24 آذر 1392, 22:38 عصر
الان مشکلت کجاست؟؟

FATEMEH@
یک شنبه 24 آذر 1392, 22:39 عصر
الان مشکلت کجاست؟؟
اینکه چ توابعی تو کلاس بذارم
چجور بذارم

sagggad
یک شنبه 24 آذر 1392, 22:40 عصر
براچی باید از کلاس استفاده کنی؟؟

FATEMEH@
یک شنبه 24 آذر 1392, 23:43 عصر
براچی باید از کلاس استفاده کنی؟؟
استاد میخاد

kasraaa
دوشنبه 25 آذر 1392, 11:03 صبح
من کد رو دیدم از طرف من به استادتون ی فحش بده و بگو کجای این برنامه باید با کلاس باشه؟
میشه بصورت متدی در بالای همین فرمت باشه اما نه اینکه کلاسی باشه

بچه انصافا نگاه کنید ببینید من اشتب میگم

sagggad
دوشنبه 25 آذر 1392, 11:25 صبح
راست میگه فردا همه باهم جمع میشیم میریم استادت ر انقدرمیزنیم که....

habibb
دوشنبه 25 آذر 1392, 13:10 عصر
کامل نیس
اما خب شروع رو بزنید بعد رنگارو درگ کنید تو قسمت سفید
بعد ازمنو ها show colorرو بزنید بعدم چک
البته قانونا نباس show رو زد اما چون بازیکن نیستید بزنید
خاهش میکنم کمکم کنید

می تونید کارهایی که دکمه ها وظیفه به انجامشون دارن رو بدین به کلاس هایی که دکمه ها توابع کلاس هایی را صدا بزنن.

برای درگ و دورپ کردن عکس ها از دابل بافرینگ استفاده کنید .

نمونه ای می گذارم از دابل بافرینگ معمولی


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
//using System.Threading;


namespace Double_Buffering
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Bitmap background;
double Theta = 0;
Timer animation;
Int32[] habibX = new int[25000];
Int32[] habibY = new int[25000];
private void Form1_Load(object sender, EventArgs e)
{
// گرفتن کپی از تصویر پس زمینه
this.background = (Bitmap)pictureBox1.Image.Clone();

animation = new Timer();
animation.Interval = 20;//هر 20 میلی ثانیه یک بار فریم رو برام نشون بده
animation.Tick += new EventHandler(this.button1_Click);

animation.Start();
}
private void button1_Click(object sender, EventArgs e)
{
{
Theta += .05;

// picturebox حرکت دایره ای
pictureBox3.Top = (int)((Math.Cos(Theta) * 100) + 100);
pictureBox3.Left = (int)((Math.Sin(Theta) * 100) + 300);

pictureBox2.Left = (int)((Math.Cos(Theta) * 100) + 100);
pictureBox2.Top = (int)((Math.Sin(Theta) * 100) + 300);

// Double Buffering بافر کردن تصویر کنترل در حال حرکت برای اجرای تکنیک
Bitmap buffer = new Bitmap(pictureBox1.DisplayRectangle.Width,pictureB ox1.DisplayRectangle.Height);

using (Graphics context = Graphics.FromImage(buffer))
{
// کیفیت ترسیم
context.SmoothingMode = SmoothingMode.HighQuality;

// ترسیم پس زمینه درون بافر
context.DrawImage(this.background, 0, 0);


// PictureBox ترسیم بافر بر روی کنترل
pictureBox1.CreateGraphics().DrawImage(buffer, 0, 0);
}
}
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//DialogResult dr = MessageBox.Show(" آیا مطمئن به خروج هستید؟", " پیام", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign);if (dr == DialogResult.No)e.Cancel = true;
if (e.CloseReason == CloseReason.UserClosing) { DialogResult r = MessageBox.Show(" بسته شود؟", "هشدار", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (r == System.Windows.Forms.DialogResult.No)e.Cancel = true; }
}
}
}

FATEMEH@
دوشنبه 25 آذر 1392, 17:15 عصر
من کد رو دیدم از طرف من به استادتون ی فحش بده و بگو کجای این برنامه باید با کلاس باشه؟
میشه بصورت متدی در بالای همین فرمت باشه اما نه اینکه کلاسی باشه

بچه انصافا نگاه کنید ببینید من اشتب میگم
وای واقعا
استادنگفته حتما کلاس اما اصلا درسی که اوب ترم تاحالا به ماداده کلاس بوده
حالا من بدون کلاس تحویل بدم ممکنه نمره نده

FATEMEH@
دوشنبه 25 آذر 1392, 17:22 عصر
حالا یکم مشورت کردم تصمیم گرفتم که اعداد تصادفی رو تو تابعی تو کلاس تعریف کنم و بعد تو دکمه شروع تابع رو صدا برنم
اما گیر کردم
یعنی اینا رو نوشتم

class fekrbekr
{
// tarife moteghayer haye private
public int c1, c2, c3, c4;
public PictureBox p1=new PictureBox ();
private PictureBox p2=new PictureBox ();
private PictureBox p3 =new PictureBox ();
private PictureBox p4=new PictureBox ();
private PictureBox p5 =new PictureBox ();
private PictureBox p6= new PictureBox ();
private PictureBox p7 =new PictureBox ();
private PictureBox p8= new PictureBox ();
private PictureBox p93=new PictureBox ();
private PictureBox p92=new PictureBox ();
private PictureBox p91=new PictureBox ();
private PictureBox p90 =new PictureBox ();
private Panel Panel23 = new Panel();




public void start()
{
// ye shey az form1
Form1 frm1 = new Form1();
// meghdar dehie pictureBox haee ke tarif kardam ba pictureBox haye form1
p1 = frm1.pictureBox1;
p2 = frm1.pictureBox2;
p3 = frm1.pictureBox3;
p4 = frm1.pictureBox4;
p5 = frm1.pictureBox5;
p6 = frm1.pictureBox6;
p7 = frm1.pictureBox7;
p8 = frm1.pictureBox8;
Panel23 = frm1.panel23;





public void rndcolor()
{

Random Rnd = new Random();
c1 = Rnd.Next(0, 7);
c2 = Rnd.Next(0, 7);
c3 = Rnd.Next(0, 7);
c4 = Rnd.Next(0, 7);

switch (c1)
{
case 0:

p93.BackgroundImage = Properties.Resources._0;
break;
case 1:
p93.BackgroundImage = Properties.Resources._1;
break;
case 2:
p93.BackgroundImage = Properties.Resources._2;
break;
case 3:
p93.BackgroundImage = Properties.Resources._3;
break;
case 4:
p93.BackgroundImage = Properties.Resources._4;
break;
case 5:
p93.BackgroundImage = Properties.Resources._5;
break;
case 6:
p93.BackgroundImage = Properties.Resources._6;
break;
case 7:
p93.BackgroundImage =Properties .Resources ._7
break;
}

switch (c2)
{
case 0:
p92 = p1;
break;
case 1:
p92 = p2;
break;
case 2:
p92 = p3;
break;
case 3:
p92 = p4;
break;
case 4:
p92 = p5;
break;
case 5:
p92 = p6;
break;
case 6:
p92 = p7;
break;
case 7:
p92 = p8;
break;
}
switch (c3)
{
case 0:
p91 = p1;
break;
case 1:
p91 = p2;
break;
case 2:
p91 = p3;
break;
case 3:
p91 = p4;
break;
case 4:
p91 = p5;
break;
case 5:
p91 = p6;
break;
case 6:
p91 = p7;
break;
case 7:
p91 = p8;
break;
}
switch (c4)
{
case 0:
p90 = p1;
break;
case 1:
p90 = p2;
break;
case 2:
p90 = p3;
break;
case 3:
p90 = p4;
break;
case 4:
p90 = p5;
break;
case 5:
p90 = p6;
break;
case 6:
p90 = p7;
break;
case 7:
p90 = p8;
break;
}

اما اشتباهه
چون هیچکاری نمیکنه

FATEMEH@
دوشنبه 25 آذر 1392, 17:28 عصر
واصل اینکه اصلا درواقع تابع رو صدانمیزنه
من اینجور فراخوانیش کردم

fekrbekr fekr= new fekrbekr();
fekr.start();
fekr.rndcolor();

FATEMEH@
دوشنبه 25 آذر 1392, 17:29 عصر
می تونید کارهایی که دکمه ها وظیفه به انجامشون دارن رو بدین به کلاس هایی که دکمه ها توابع کلاس هایی را صدا بزنن.

برای درگ و دورپ کردن عکس ها از دابل بافرینگ استفاده کنید .

نمونه ای می گذارم از دابل بافرینگ معمولی


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
//using System.Threading;


namespace Double_Buffering
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Bitmap background;
double Theta = 0;
Timer animation;
Int32[] habibX = new int[25000];
Int32[] habibY = new int[25000];
private void Form1_Load(object sender, EventArgs e)
{
// گرفتن کپی از تصویر پس زمینه
this.background = (Bitmap)pictureBox1.Image.Clone();

animation = new Timer();
animation.Interval = 20;//هر 20 میلی ثانیه یک بار فریم رو برام نشون بده
animation.Tick += new EventHandler(this.button1_Click);

animation.Start();
}
private void button1_Click(object sender, EventArgs e)
{
{
Theta += .05;

// picturebox حرکت دایره ای
pictureBox3.Top = (int)((Math.Cos(Theta) * 100) + 100);
pictureBox3.Left = (int)((Math.Sin(Theta) * 100) + 300);

pictureBox2.Left = (int)((Math.Cos(Theta) * 100) + 100);
pictureBox2.Top = (int)((Math.Sin(Theta) * 100) + 300);

// Double Buffering بافر کردن تصویر کنترل در حال حرکت برای اجرای تکنیک
Bitmap buffer = new Bitmap(pictureBox1.DisplayRectangle.Width,pictureB ox1.DisplayRectangle.Height);

using (Graphics context = Graphics.FromImage(buffer))
{
// کیفیت ترسیم
context.SmoothingMode = SmoothingMode.HighQuality;

// ترسیم پس زمینه درون بافر
context.DrawImage(this.background, 0, 0);


// PictureBox ترسیم بافر بر روی کنترل
pictureBox1.CreateGraphics().DrawImage(buffer, 0, 0);
}
}
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//DialogResult dr = MessageBox.Show(" آیا مطمئن به خروج هستید؟", " پیام", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign);if (dr == DialogResult.No)e.Cancel = true;
if (e.CloseReason == CloseReason.UserClosing) { DialogResult r = MessageBox.Show(" بسته شود؟", "هشدار", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (r == System.Windows.Forms.DialogResult.No)e.Cancel = true; }
}
}
}


میشه 1 توضیح بدید
من متوجه نشدم که الان این برنامه چکار میکنه

FATEMEH@
دوشنبه 25 آذر 1392, 18:21 عصر
من تصویم گرفتم البته با کمک دوستان که اینو توابع رو تو کلاس استفاده کنم البته بعلاوه همون ایجاد تصویر تصادفی

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

1 تاپیک دیگه زدم اونجا راهنمایی ام کنید
ممنونم
http://barnamenevis.org/showthread.php?432268-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%D8%AA%D8%A7%D8%A8%D8%B9-%D8%A7%D8%B2-%DA%A9%D9%84%D8%A7%D8%B3

habibb
دوشنبه 25 آذر 1392, 20:09 عصر
دابل بافرینگ معمولی (http://barnamenevis.org/showthread.php?432286-%DB%8C%DA%A9-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D8%A7%D8%A8%D9%84-%D8%A8%D8%A7%D9%81%D8%B1%DB%8C%D9%86%DA%AF-%D9%85%D8%B9%D9%85%D9%88%D9%84%DB%8C&p=1933199#post1933199)