<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Life is filled with wonder

    八皇后

    寫了兩天,
    應用遞歸和回溯.
    對如何組織類,
    更一步加深
    /Files/xyq002444/Queens.rar
    八皇后主程序的算法
    import java.util.*;

    public class QueenSolver {

        
    private int count;  //皇后的數(shù)目
        private Queen queens[];
        
    private Queue<Queen[]> queue;

        
    public QueenSolver(int count) {
            
    this.count = count;
            queens 
    = new Queen[count];
            queue 
    = new QueenList<Queen[]>();
            
    this.initialize();
            
    this.process();
        }

        
    //初始化
        private void initialize() {
            
    for (int i = 0; i < count; i++{
                queens[i] 
    = new Queen(i + 10);
            }

        }

        
    //能否放置一個皇后
        private boolean place(Queen queen) {
            
    for (int i = 0; i < queen.x - 1; i++{
                
    if (queens[i].y == queen.y || queens[i].getX_Y() == queen.getX_Y() || queens[i].getAddXY() == queen.getAddXY()) {
                    
    return false;
                }

            }

            
    return true;
        }


        
    private void process() {
            
    int k = 1;
            queens[k 
    - 1].y = 0;
            
    while (k > 0{
                queens[k 
    - 1].y = queens[k - 1].y + 1;
                
    while (queens[k - 1].y <= count && !this.place(queens[k - 1])) {
                    queens[k 
    - 1].y = queens[k - 1].y + 1;
                }

                
    if (queens[k - 1].y <= count) {
                    
    if (k == count) {
                        
    //                   this.printPosition(queens);
                        Queen[] queenClone = new Queen[queens.length];
                        
    for (int i = 0; i < queenClone.length; i++{
                            queenClone[i] 
    = new Queen(queens[i].x, queens[i].y);
                        }

                        
    for (int i = 0; i < queens.length; i++{
                            queens[i].setXPosition();
                            queens[i].setYPosition();
                        }

                        queue.offer(queenClone);
                    }
     else {
                        k 
    = k + 1;
                        queens[k 
    - 1].y = 0;
                    }

                }
     else {
                    k 
    = k - 1;
                }

            }

        }


        
    public void printPosition(Queen[] queens) {
            
    for (Queen queen : queens) {
                System.out.println(queen.x 
    + " y: " + queen.y);
            }

        }


        
    public Queue<Queen[]> getQueue() {
            
    return this.queue;
        }

    }

    posted on 2007-12-14 21:14 小屁 閱讀(823) 評論(2)  編輯  收藏 所屬分類: java

    評論

    # re: 八皇后 2007-12-14 21:34 小屁

    演示程序 jar文件, 直接運行  回復  更多評論   

    # re: 八皇后 2007-12-15 00:51 李偉彬

    check out 一下www.operamasks.org的源碼,發(fā)現(xiàn)老袁新創(chuàng)了一門名為elite的動態(tài)語言。在elite下,8皇后問題的解法如下:

    /* 利用列表聚合解決8皇后問題 */
    define queens(n) {
    define scan(i) {
    if i==0 then [[]]
    else [[q:qs] where qs in scan(i-1), q in [1..n], safe(q, qs)];
    }
    scan(n);
    }

    define safe(x, qs) {
    define n = 1;
    for (y in qs) {
    if (x==y || x==y+n || x==y-n)
    return false;
    n++;
    }
    return true;
    }

    define count = 0;
    for (x in queens(8)) {
    cout << ++count << ": " << x << endl;
    }  回復  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 日本高清在线免费| 无码日韩精品一区二区免费暖暖 | 亚洲一区AV无码少妇电影| 国产成人免费在线| 亚洲一区二区三区首页| 8x8x华人永久免费视频| 久久亚洲精品无码AV红樱桃| 久久久久久国产精品免费无码| 久久91亚洲精品中文字幕| 777爽死你无码免费看一二区| 无码专区—VA亚洲V天堂| 免费A级毛片av无码| 亚洲成a人片77777群色| 成人免费无码视频在线网站| 亚洲综合一区国产精品| 四虎影永久在线高清免费| jizz免费一区二区三区| 亚洲第一精品在线视频| www视频免费看| 亚洲偷自拍另类图片二区| 免费h成人黄漫画嘿咻破解版| 久久国产精品免费| 亚洲欧洲日韩不卡| 永久免费毛片在线播放| 色噜噜噜噜亚洲第一| 亚洲中文久久精品无码| 最刺激黄a大片免费网站| 亚洲性无码AV中文字幕| 国产成人亚洲精品91专区手机| 中文字幕无码日韩专区免费| 亚洲AV色吊丝无码| mm1313亚洲精品无码又大又粗| 黄色免费在线网站| 香蕉大伊亚洲人在线观看| 亚洲色一色噜一噜噜噜| 99久久国产热无码精品免费| 羞羞网站在线免费观看| 久久亚洲AV成人出白浆无码国产| 国产色婷婷精品免费视频| 暖暖免费日本在线中文| 亚洲精品宾馆在线精品酒店|