Sudoku

Omdat het niet altijd over mountainbike hoeft te gaan...... Zet een boompje op over alles wat NIET met mountainbike te maken heeft maar hou het wel deftig.
Post Reply
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Sudoku

Post by Puzzle »

Ik denk dat ik de snelste manier heb gevonden om Sudoku-puzzels op te lossen.

Ik heb er een Java-applet voor geschreven, zodat jullie nu meer tijd hebben om te koersen.

Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Post by Puzzle »

Gelieve geen pm meer te sturen om naar de broncode te vragen, a.u.b.
User avatar
Galibier2646
Mountainbiker
Posts: 149
Joined: Thu 14 Oct 2004 21:17
Location: 2015 - SJ Carbon 29er / Sram X9

Post by Galibier2646 »

Puzzle wrote:Gelieve geen pm meer te sturen om naar de broncode te vragen, a.u.b.
He Cliff :wink: ,

No problem amigo. We wilden gewoon even vergelijken !

Voor de geïnteresseerden, broncode via pm te verkrijgen vanaf 1 november... ( nie deze van Cliff aka Puzzle )

Grtz
User avatar
Galibier2646
Mountainbiker
Posts: 149
Joined: Thu 14 Oct 2004 21:17
Location: 2015 - SJ Carbon 29er / Sram X9

Re: Sudoku

Post by Galibier2646 »

Puzzle wrote:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op ! 8)
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Re: Sudoku

Post by Puzzle »

Galibier2646 wrote:
Puzzle wrote:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op ! 8)
Bewijs het.
User avatar
Galibier2646
Mountainbiker
Posts: 149
Joined: Thu 14 Oct 2004 21:17
Location: 2015 - SJ Carbon 29er / Sram X9

Re: Sudoku

Post by Galibier2646 »

Puzzle wrote:
Galibier2646 wrote:
Puzzle wrote:
Ik sluit niet uit dat er een speciaal geval is dat het niet kan oplossen.
... oh ja , de onze lost ze wel allemaal op ! 8)
Bewijs het.
ok :wink:
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Post by Puzzle »

Code: Select all

// File: CijferFrequentie.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 
public class CijferFrequentie
{
    private int aantal[]=null;
    private Vak vakken[]=null;
 
    public CijferFrequentie()
    {
        aantal=new int[9];
        vakken=new Vak[9];
    }
 
    public void MaakLeeg()
    {
        for (int i=0;i<9;i++)
            {
            aantal[i]=0;
            // opm: geen vakken.
            }
    }
 
    public void Tel(final int cijfer,
                    final Vak vak)
    {
        final int i=cijfer-1;
        aantal[i]++;
        vakken[i]=vak;
    }
 
    public void Tel(final CijferVerzameling cijferVerzameling,
                    final Vak vak)
    {
        for (int cijfer=1;cijfer<=9;cijfer++)
            {
            if (cijferVerzameling.Bevat(cijfer))
                {
                Tel(cijfer,
                    vak);
                }
            }
    }
 
    public boolean KomtNietVoor(final int cijfer)
    {
        final int i=cijfer-1;
        return aantal[i]==0;
    }
 
    public boolean KomtEenKeerVoor(final int cijfer)
    {
        final int i=cijfer-1;
        return aantal[i]==1;
    }
 
    public Vak GeefVak(final int cijfer)
    {
        final int i=cijfer-1;
        return vakken[i];
    }
}
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Post by Puzzle »

Code: Select all

// File: CijferVerzameling.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 
public class CijferVerzameling
{
    private int aantal;
    private boolean bevat[]=null;
 
    public CijferVerzameling()
    {
        bevat=new boolean[9];
    }
 
    public void VoegAllesToe()
    {
        aantal=9;
        for (int i=0;i<9;i++)
            {
            bevat[i]=true;
            }
    }
 
    public void SchrapAlles()
    {
        aantal=0;
        for (int i=0;i<9;i++)
            {
            bevat[i]=false;
            }
    }
 
    public void VoegToe(final int cijfer)
    {
        final int i=cijfer-1;
        final boolean isElement=bevat[i];
        if (!isElement)
            {
            aantal++;
            bevat[i]=true;
            }
    }
 
    public void Schrap(final int cijfer)
    {
        final int i=cijfer-1;
        final boolean isElement=bevat[i];
        if (isElement)
            {
            aantal--;
            bevat[i]=false;
            }
    }
 
    public int GeefAantal()
    {
        return aantal;
    }
 
    public boolean Bevat(final int cijfer)
    {
        final int i=cijfer-1;
        return bevat[i];
    }
 
    public int GeefEnige()
    {
        for (int i=0;i<9;i++)
            {
            if (bevat[i])
                {
                return i+1;
                }
            }
        // opm: hier zouden we niet mogen komen.
        return 0;
    }
 
    public int GeefWillekeurig()
    {
        for (int i=0;i<9;i++)
            {
            if (bevat[i])
                {
                return i+1;
                }
            }
        // opm: hier zouden we niet mogen komen.
        return 0;
    }
}
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Post by Puzzle »

Code: Select all

// File: GekozenVakken.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 
import java.util.Stack;
 
public class GekozenVakken
{
    private Stack cijfers=null;
 
    public GekozenVakken()
    {
        cijfers=new Stack();
    }
 
    public void VoegToe(final Vak vak)
    {
        cijfers.push(vak);
    }
 
    public Vak Geef()
    {
        return (Vak)cijfers.pop();
    }
 
    public boolean IsLeeg()
    {
        return cijfers.empty();
    }
 
    public void MaakLeeg()
    {
        while (!IsLeeg())
            {
            Geef();
            }
    }
}
User avatar
Puzzle
Mountainbiker
Posts: 178
Joined: Sat 19 Aug 2006 11:15
Location: MBK Super Sprint

Post by Puzzle »

Code: Select all

// File: MogelijkeCijfers.java
// Date: 30 September 2006.
//
// Copyright (c) 2006 Cliff Huylebroeck. All Rights Reserved.
//
// Permission to use, copy, modify, and distribute this software
// and its documentation for NON-COMMERCIAL purposes and without
// fee is hereby granted provided that this copyright notice
// appears in all copies.
//
// Cliff Huylebroeck MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
// SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
// A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. Cliff Huylebroeck SHALL NOT
// BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 
public class MogelijkeCijfers extends CijferVerzameling
{
    public MogelijkeCijfers()
    {
    }
 
    public void MaakLeeg()
    {
        VoegAllesToe();
    }
}
Post Reply