نمایش نتایج 1 تا 12 از 12

نام تاپیک: پازل هشت تایی

  1. #1

    Unhappy پازل هشت تایی

    سلام دوستان

    کسی سورس کد به زبان #C یا VB پیاده سازی پازل هشت تایی رو با الگوریتم های 1-ژنتیک 2-SMA* و 3-جستجوی دو طرفه داره؟
    خیلی فرصتم کمه.اگه کسی کمکم کنه ممنون میشم

    میدونم که خواستن سورس پروژه خلاف قوانین سایته اما لطفا اگه کسی میدونه الگوریتماشو بهم بگه خودم برنامشو بنویسم.اصلا نمیدونم باید از کجا شروع کنم
    آخرین ویرایش به وسیله shahlay : دوشنبه 11 خرداد 1388 در 02:03 صبح

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    نقل قول: پازل هشت تایی

    در مورد ژنتیک و اون مورد دیگه اطلاعی ندارم. اما جستجوی 2 طرفه کار ساده ایه. کافیه که از 2 حالت شروع و پایان جستجوی سطحی رو به کار ببری و هر مرحله ببینی به هم میرسن یا نه. البته من سورس کد همچین برنامه ای رو به زبان #C و VB ندارم و با جاوا برنامه مینویسم.
    امیدوارم این توضیح من کمکت کنه اگر نه لطفاً بگو کجاش رو بیشتر توضیح بدم.
    موفق باشی.

  3. #3

    نقل قول: پازل هشت تایی

    ممنونم از توجه شما
    ببخشید میتونم ازتون بخوام سورس کد جاواتونو ببینم؟البته اگه از الگوریتم جستجوی دو طرفه یا اون دو مورد دیگه واسه پیاده سازیش استفاده کردین.من خیلی مبتدیم تو این زمینه!!

    ممنون

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    نقل قول: پازل هشت تایی

    نقل قول نوشته شده توسط shahlay مشاهده تاپیک
    ممنونم از توجه شما
    ببخشید میتونم ازتون بخوام سورس کد جاواتونو ببینم؟البته اگه از الگوریتم جستجوی دو طرفه یا اون دو مورد دیگه واسه پیاده سازیش استفاده کردین.من خیلی مبتدیم تو این زمینه!!

    ممنون
    من سورس کد یه طرفه رو دارم. به دردتون میخوره؟؟؟؟؟؟؟؟

  5. #5

    نقل قول: پازل هشت تایی

    آره ممنوم میشم.که بتونم ازش یه ایده بگیرم

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    نقل قول: پازل هشت تایی


    import java.util.Hashtable;
    import java.util.LinkedList;
    public class Puzzle {
    private String source;
    private String destination;
    public Puzzle(String s,String d){source=s; destination=d;}
    public Puzzle() {}
    static final int N=3;
    boolean inside(int i,int j) {return i>=0 && i<N && j>=0 && j<N;}
    final int[][] move={{0,1},{0,-1},{1,0},{-1,0}};
    final char[] op={'R','L','D','U'};
    int I(int k) {return k/N;}
    int J(int k) {return k%N;}
    int K(int i,int j) {return i*N+j;}
    private boolean solvAbility(){
    int first=invariant(source);
    int last=invariant(destination);
    int plf=source.indexOf("9");
    int pll=destination.indexOf("9");
    return (first+I(plf)+J(plf))%2==(last+I(pll)+J(pll))%2;
    }
    private int invariant(String st){
    int k=0;
    for (int i = 0; i < st.length(); i++) {
    for (int j = i+1; j < st.length(); j++) {
    if(st.charAt(i)>st.charAt(j)) k++;
    }
    }
    return k;
    }
    public String solveBfs(){
    if(!solvAbility()) return null;
    LinkedList<String> quee=new LinkedList<String>();
    Hashtable<String, String> ht=new Hashtable<String, String>();
    ht.put(source, "");
    quee.add(source);
    while(true){
    String q=quee.removeFirst();
    String st=ht.get(q);
    int place=q.indexOf("9");
    int i=I(place);
    int j=J(place);
    for (int d = 0; d < 4; d++) {
    int ii=i+move[d][0];
    int jj=j+move[d][1];
    if(inside(ii, jj)){
    int k=K(ii,jj);
    StringBuffer cur=new StringBuffer(q);
    cur.setCharAt(place, cur.charAt(k));
    cur.setCharAt(k, '9');
    String p=cur.toString();
    if(p.equals(destination)){
    return st+op[d];
    }
    if(!ht.containsKey(p)){
    quee.add(p);
    ht.put(p, st+op[d]);
    }
    }
    }
    }
    }
    public static void main(String[] args) {
    System.out.println(new Puzzle("123456789","479658123").solveBfs());
    //System.out.println();
    }
    }

  7. #7

    نقل قول: پازل هشت تایی

    سلام دوستان
    مي شه با الگوريتم Bss هم بگذاريم لطفا يه خوده سريعتر

  8. #8
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    Post نقل قول: پازل هشت تایی

    نقل قول نوشته شده توسط stayesh مشاهده تاپیک
    سلام دوستان
    مي شه با الگوريتم Bss هم بگذاريم لطفا يه خوده سريعتر
    الگوریتم Bss دیگه چیه؟!! میشه یکم توضیح بدین؟؟؟

  9. #9
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    39

    نقل قول: پازل هشت تایی

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

  10. #10

    نقل قول: پازل هشت تایی

    دوستان این صفحه رو تو سایت codeproject حتماً ببینید.
    الگوریتم پازل 8 تایی به کمک چند الگوریتم پیاده سازی شده.مطمئنا خیلی به دردتون میخوره.
    http://www.codeproject.com/KB/recipes/Seshi8Puzzle.aspx
    موفق باشید.

  11. #11
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    نقل قول: پازل هشت تایی

    نقل قول نوشته شده توسط MTD_GOLD مشاهده تاپیک
    qwerty11 عزیز
    با عرض سلام و خسته نباشی
    من به برنامه هشت وزیر نیاز مبرم دارم(برای جاوا)
    اگه لطف کنی برنامه رو برام قرار بدی دعا گوت می شم
    اگه یه توضیحی بدی که برنامه رو چه جوری نوشتی واقعا ممنونت می شم
    یا علی
    اگه با الگوریتم پسگرد آشنا باشی این کد خیلی آسونه و مطمئناً متوجه میشی.

    import java.util.Scanner;

    public class NQuee {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int[] row = new int[n];
    NQuee.putQuee(0, n, row);
    }

    static void putQuee(int k, int n, int[] row) {
    for (int i = 0; i < n; i++) {
    row[k] = i;
    if (isSoloution(k, row)) {
    if (k == n - 1) {
    print(row);
    System.err.println("");
    }
    else {
    putQuee(k + 1, n, row);
    }
    }
    }
    }

    static boolean isSoloution(int k, int[] row) {
    for (int i = 0; i <= k - 1; i++) {
    if (row[i] == row[k]) {
    return false;
    }
    if (Math.abs(row[i] - row[k]) == Math.abs(i - k)) {
    return false;
    }
    }
    return true;
    }

    static void print(int[] row) {
    for (int i = 0; i < row.length; i++) {
    for (int j = 0; j < row.length; j++) {
    if (j == row[i]) {
    System.err.print("Q ");
    }
    else {
    System.err.print(". ");
    }
    }
    System.err.println("");
    }
    }
    }

  12. #12

    نقل قول: پازل هشت تایی

    برنامه پازل 15 تایی و استفاده از مرتب سازی اول عمق با زیان برنامه نویسی #c رو هم می تونید در سایت بزارید ممنون

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •