قرآن در کامپیوتر

دانلود نرم افزار های قرآنی یه صورت رایگان

قرآن در کامپیوتر

دانلود نرم افزار های قرآنی یه صورت رایگان

سورس برنامه حرکت اسب به زبان C

برنامه ای بنویسید که حرکت اسب را شبیه سازی کند ، به طوری که یک اسب از یک خانه از صفحه شطرنج شروع به حرکت کرده و تمام خانه ها را طی کند به شرط اینکه به هر خانه فقط یک بار برود.
محل شروع اسب را از کاربر می پرسد.
مثال : در شکل ادامه مطلب محل شروع حرکت خانه (1،1) در نظر گرفته شده است . حرکت بعدی اسب خانه (2،3) است که با عدد 2 شماره گذاری شده است . و عدد 3 برای حرکت سوم می باشد
صفحه شطرنج 8*8 است پس باید اسب 64 حرکت داشته باشد.

در برنامه زیر وقتی محل شروع را خانه های بالایی صفحه شطرنج انتخاب می کنیم سرعت برنامه نسبتا خوب است اما وقتی که خانه های پایینی صفحه را انتخاب می کنیم سرعت برنامه خیلی کُند می شد به طوری وقتی خانه 8 و 8 را محل شروع اسب انتخاب کنیم حل برنامه چند دقیقه طول می کشد.
لطفا شما نیز روی این برنامه کمی فکر کنید
اگر توانستید با الگریتم بهتری این مسئله را حل کنید در وبلاگ قرار دهید و یا مشکل برنامه زیر را حل کنید و ببینید که چه چیزی سرعت برنامه را کم می کند.


#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
int a[9][9];
void run(int,int,int);
void end(void);
main()
{
 int x,y,i=1;
 for(int j=1;j<=8;j++)
  for(int k=1;k<=8;k++)
   a[j][k]=0;
 clrscr();
 printf("*** program move hours ***\n\n");
 printf("\n Enter X : ");
 scanf("%d",&x);
 printf("\n Enter Y : ");
 scanf("%d",&y);
 if(x<1 || x>8 || y<1 || y>8)
 {
  printf("\nError : number between 1 and 8");
  getch();
  exit(1);
 }
 a[x][y]=i;
 i++;
 run(x-2,y-1,i);
 run(x-2,y+1,i);
 run(x-1,y-2,i);
 run(x+1,y-2,i);
 run(x-1,y+2,i);
 run(x+1,y+2,i);
 run(x+2,y-1,i);
 run(x+2,y+1,i);
 printf("\n Error : I can not end program");
 getch();
 end();
}
void run(int x,int y,int i)
{
 if(x<1 || x>8 || y<1 || y>8)
  return;
 if(a[x][y]!=0)
  return;
 a[x][y]=i;
 i++;
 if(i==65)
  end();
 run(x-2,y-1,i);
 run(x-2,y+1,i);
 run(x-1,y-2,i);
 run(x+1,y-2,i);
 run(x-1,y+2,i);
 run(x+1,y+2,i);
 run(x+2,y-1,i);
 run(x+2,y+1,i);
 a[x][y]=0;
}
void end(void)
{
 clrscr();
 for(int j=1;j<=8;j++)
 {
  for(int k=1;k<=8;k++)
   printf("%d\t",a[j][k]);
  printf("\n\n\n\n\n\n");
 }
 getch();
 exit(0);
}

نویسنده برنامه : مهندس

نظرات 4 + ارسال نظر
0172.. یکشنبه 9 اسفند‌ماه سال 1388 ساعت 06:27 ب.ظ

سلام آقا مهندس بسیار عالی بود

با تشکر

alibahman سه‌شنبه 17 آبان‌ماه سال 1390 ساعت 05:35 ب.ظ http://werderbremen2011.blogfa.com

برنامه ای بنویسید که حرکت اسب را شبیه سازی کند ، به طوری که یک اسب از یک خانه از صفحه شطرنج شروع به حرکت کرده و تمام خانه ها(68 تایی) را طی کند.مهم نیست هر خانه چند بار تکرار شود.


(لطفاجوابو در بخش نظرا وب سایتم بنویس.تشکر)

alibahman سه‌شنبه 17 آبان‌ماه سال 1390 ساعت 05:37 ب.ظ http://werderbremen2011.blogfa.com

برنامه ای بنویسید که حرکت اسب را شبیه سازی کند ، به طوری که یک اسب از یک خانه از صفحه شطرنج شروع به حرکت کرده و تمام خانه ها(68 تایی) را طی کند.مهم نیست هر خانه چند بار تکرار شود.

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

morteza جمعه 25 بهمن‌ماه سال 1392 ساعت 02:36 ق.ظ

مهندس جان اسب به انگلیسی می شه horse نه hours بعدشم برنامه ات اشکال داره همیشه اولین الگوریتمی که به جواب می رسه بهترین نیست.

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد