zoukankan      html  css  js  c++  java
  • shuduku

    https://github.com/qianlAIyf/shuduku

    PSP:

    解题思路:

    1.先随机生成一个9*9的宫格,然后从这些格子中随机删去一些格子,使得最后能得到解。

      另外想了一个方法,利用3*3宫格,拓展至9*9宫格。

    2.从各种博客上查阅别人的写法,借鉴其中的优点。

    3.设计实现过程:

       (1)利用<time.h>将时间库引至文件,并定义一个3*3和一个9*9的数组;

       (2)使用的函数:

       create_phalanx(phalanx);

            place_phalanx(phalanx,sudoku,4);

            shift_down(phalanx);

            place_phalanx(phalanx,sudoku,3);

            shift_right(phalanx);

            place_phalanx(phalanx,sudoku,0);

            shift_up(phalanx);

            place_phalanx(phalanx,sudoku,1);

            shift_up(phalanx);

            place_phalanx(phalanx,sudoku,2);

            shift_left(phalanx);

            place_phalanx(phalanx,sudoku,5);

            shift_left(phalanx);

            place_phalanx(phalanx,sudoku,8);

            shift_down(phalanx);

            place_phalanx(phalanx,sudoku,7);

            shift_down(phalanx);

            place_phalanx(phalanx,sudoku,6);

            output(sudoku);

     (3)函数之间的关系: place_phalanx(phalanx,sudoku,n)函数总共有九个,每调用一次,就在9*9宫格中加入一个随机生成3*3宫格。

    4.关键函数

    void place_phalanx(int phalanx[][3],int sudoku[][9],int index_block)

    {

            int i,j;

            for(i=0;i<3;i++)

                     for(j=0;j<3;j++)

                             sudoku[index_block/3*3+i][index_block%3*3+j]=phalanx[i][j];

    }

    这是一个思路图:

    _________________________

    |   0   |   1   |   2   |

    |  right  |   up  |   up  |

    |  ->   |   ->        |   v   |

    |_______|_______|_______|

    |   3   |   4   |   5   |

    | down  |       |  left |

    |   ^   |            |   v   |

    |_______|_______|_______|

    |   6   |   7   |   8   |

    | down  |  down |  left |

    |  <-   |   <-        |   <-  |

    |_______|_______|_______|

  • 相关阅读:
    gcc -I -L -l区别
    如何在LINUX中开机、登陆、退出、定时、定期自动运行程序
    4B/5B编码原理
    powerpc平台移植zebra或quagga-0.99.23
    ubuntu 命令配置ip 网关 dns
    ubuntu新机安装工具
    svn add --no-ignore
    SSL handshake failed: SSL error: Key usage violation in certificate has been detected.
    netif_start_queue/netif_wake_queue/netif_stop_queue
    Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法
  • 原文地址:https://www.cnblogs.com/Ceqianl/p/8850006.html
Copyright © 2011-2022 走看看