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.
Ik ga het er straks op zetten in kleur, dat zal gemakkelijker zijn om te lezen.
Omdat de verschillen met mijn snelheidstest zeer klein waren ga ik er van uit dat ik het niet meer zal kunnen verbeteren.
Afhankelijk van het aantal ingevulde vakken is het vele keren sneller dan de oplossingen van de professor.
Jullie mogen nu zelf uitrekenen hoeveel keer sneller.
Ik heb de professor er volledig af gereden. Ze moesten zijn job aan mij geven, maar ik heb veel grotere plannen.
Omdat de verschillen met mijn snelheidstest zeer klein waren ga ik er van uit dat ik het niet meer zal kunnen verbeteren.
Afhankelijk van het aantal ingevulde vakken is het vele keren sneller dan de oplossingen van de professor.
Jullie mogen nu zelf uitrekenen hoeveel keer sneller.
Ik heb de professor er volledig af gereden. Ze moesten zijn job aan mij geven, maar ik heb veel grotere plannen.
Ik heb juist een uur werk gehad om mijn nieuwe website up te loaden maar nu zie ik dat ze geen bestanden in Mac-formaat ondersteunen. Het komt er allemaal verkeerd op. Ze hebben een slecht programma.
Ik heb er alles afgehaald.
Ik zal het laten weten als ik er een nieuwe plaats voor gevonden heb.
Het is niet zo gemakkelijk om vrije webruimte te vinden waar Java op mag en waar je niet wordt begraven onder reclame, dus dat zou een tijd kunnen duren.
Ik heb er alles afgehaald.
Ik zal het laten weten als ik er een nieuwe plaats voor gevonden heb.
Het is niet zo gemakkelijk om vrije webruimte te vinden waar Java op mag en waar je niet wordt begraven onder reclame, dus dat zou een tijd kunnen duren.
Eerst komt de tweede oplossing van de professor die ik verbeterd heb.
Code: Select all
package sudoku;
import java.util.Comparable;
class ProfVak implements Comparable
{
private int x;
private int y;
private int keuze;
private int cijfer;
private final boolean cijferMagInRij[]=new boolean[9];
private final boolean cijferMagInKolom[]=new boolean[9];
private final boolean cijferMagInKot[]=new boolean[9];
public ProfVak(final int x,
final int y)
{
this.x=x;
this.y=y;
keuze=9;
cijfer=-1;
for (int i=0;i<9;i++)
{
cijferMagInRij[i]=true;
cijferMagInKolom[i]=true;
cijferMagInKot[i]=true;
}
}
public int compareTo(final Object other)
{
if (cijfer!=-1)
{
return 1;
}
final ProfVak ander=(ProfVak)other;
if (ander.cijfer!=-1)
{
return -1;
}
return keuze-ander.keuze;
}
public int Geef_x()
{
return x;
}
public int Geef_y()
{
return y;
}
public int Geef_keuze()
{
return keuze;
}
public void Zet_cijfer(final int cijfer)
{
this.cijfer=cijfer;
}
public int Geef_cijfer()
{
return cijfer;
}
public void Wis_cijfer()
{
cijfer=-1;
}
public void VoegToeInRij(final int cijfer)
{
cijferMagInRij[cijfer]=true;
if (cijferMagInKolom[cijfer]
&& cijferMagInKot[cijfer])
{
keuze++;
}
}
public void VoegToeInKolom(final int cijfer)
{
cijferMagInKolom[cijfer]=true;
if (cijferMagInRij[cijfer]
&& cijferMagInKot[cijfer])
{
keuze++;
}
}
public void VoegToeInKot(final int cijfer)
{
cijferMagInKot[cijfer]=true;
if (cijferMagInRij[cijfer]
&& cijferMagInKolom[cijfer])
{
keuze++;
}
}
public void VerwijderUitRij(final int cijfer)
{
if (cijferMagInRij[cijfer])
{
if (cijferMagInKolom[cijfer]
&& cijferMagInKot[cijfer])
{
keuze--;
}
cijferMagInRij[cijfer]=false;
}
}
public void VerwijderUitKolom(final int cijfer)
{
if (cijferMagInKolom[cijfer])
{
if (cijferMagInRij[cijfer]
&& cijferMagInKot[cijfer])
{
keuze--;
}
cijferMagInKolom[cijfer]=false;
}
}
public void VerwijderUitKot(final int cijfer)
{
if (cijferMagInKot[cijfer])
{
if (cijferMagInRij[cijfer]
&& cijferMagInKolom[cijfer])
{
keuze--;
}
cijferMagInKot[cijfer]=false;
}
}
public boolean Geef_isMogelijkCijfer(final int cijfer)
{
return cijferMagInRij[cijfer]
&& cijferMagInKolom[cijfer]
&& cijferMagInKot[cijfer];
}
public int Geef_enigeMogelijkeCijfer()
{
for (int i=0;i<9;i++)
{
if (Geef_isMogelijkCijfer(i))
{
return i;
}
}
throw new RuntimeException("programmeerfout");
}
public int Geef_mogelijkeCijfers(final int mogelijkeCijfers[])
{
int j=0;
for (int i=0;i<9;i++)
{
if (Geef_isMogelijkCijfer(i))
{
mogelijkeCijfers[j++]=i;
}
}
return j;
}
public String Dump()
{
if (cijfer!=-1)
{
return "| "+(cijfer+1);
}
else if (keuze==0)
{
return "|#0";
}
else if (keuze==1)
{
final int enige=Geef_enigeMogelijkeCijfer();
return "|!"+(enige+1);
}
else
{
return "|?"+keuze;
}
}
}Code: Select all
package sudoku;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class ProfBord
{
private final ProfVak bord[][]=new ProfVak[9][9];
private final List vakken=new ArrayList(81);
private int aIteraties=0;
public ProfBord(final int opgave[][])
{
for (int i=0;i<9;i++)
{
for (int j=0;j<9;j++)
{
bord[i][j]=new ProfVak(i,j);
vakken.add(bord[i][j]);
}
}
for (int i=0;i<9;i++)
{
for (int j=0;j<9;j++)
{
final int cijfer=opgave[i][j];
if (cijfer!=0)
{
Zet_cijfer(i,
j,
cijfer-1);
}
}
}
}
public void Zet_cijfer(final int r,
final int c,
final int v)
{
bord[r][c].Zet_cijfer(v);
for (int i=0;i<9;i++)
{
bord[i][c].VerwijderUitKolom(v);
}
for (int i=0;i<9;i++)
{
bord[r][i].VerwijderUitRij(v);
}
for (int i=0;i<3;i++)
{
for (int j=0;j<3;j++)
{
bord[(r/3)*3+i][(c/3)*3+j].VerwijderUitKot(v);
}
}
}
public void Wis_cijfer(final int r,
final int c,
final int v)
{
bord[r][c].Wis_cijfer();
for (int i=0;i<9;i++)
{
bord[i][c].VoegToeInKolom(v);
}
for (int i=0;i<9;i++)
{
bord[r][i].VoegToeInRij(v);
}
for (int i=0;i<3;i++)
{
for (int j=0;j<3;j++)
{
bord[(r/3)*3+i][(c/3)*3+j].VoegToeInKot(v);
}
}
}
public boolean LosOp()
{
final int mogelijkeCijfers[]=new int[9];
Collections.sort(vakken);
aIteraties++;
final ProfVak vak=(ProfVak)vakken.get(0);
final int cijfer=vak.Geef_cijfer();
if (cijfer!=-1)
{
return true;
}
final int keuze=vak.Geef_keuze();
if (keuze==0)
{
return false;
}
final int x=vak.Geef_x();
final int y=vak.Geef_y();
if (keuze==1)
{
final int enige=vak.Geef_enigeMogelijkeCijfer();
Zet_cijfer(x,
y,
enige);
if (LosOp())
{
return true;
}
Wis_cijfer(x,
y,
enige);
return false;
}
final int aMogelijkeCijfers=vak.Geef_mogelijkeCijfers(mogelijkeCijfers);
for (int j=0;j<aMogelijkeCijfers;j++)
{
final int i=mogelijkeCijfers[j];
Zet_cijfer(x,
y,
i);
if (LosOp())
{
return true;
}
Wis_cijfer(x,
y,
i);
}
return false;
}
public int Geef_aIteraties()
{
return aIteraties;
}
public void Dump()
{
for (int i=0;i<9;i++)
{
String s=new String();
for (int j=0;j<9;j++)
{
s+=bord[i][j].Dump();
}
s+="|";
System.out.println(s);
}
}
}Code: Select all
package sudoku;
import java.applet.Applet;
import java.io.IOException;
public class ProfOplosser extends Applet
{
final int opgave1[][]=
{
{7,0,0,0,2,4,1,0,0},
{0,3,0,0,0,6,0,0,0},
{9,4,0,7,0,0,6,3,2},
{0,2,0,0,0,0,0,1,3},
{0,0,9,0,0,0,4,0,0},
{5,1,0,0,0,0,0,9,0},
{6,9,1,0,0,3,0,4,7},
{0,0,0,5,0,0,0,2,0},
{0,0,5,9,4,0,0,0,8}
};
final int opgave2[][]=
{
{7,0,0,2,9,0,0,0,0},
{0,4,0,1,0,0,7,0,5},
{8,0,0,0,0,3,0,0,0},
{0,0,0,3,0,0,1,0,0},
{0,9,0,0,1,0,0,2,0},
{0,0,7,0,0,8,0,0,0},
{0,0,0,8,0,0,0,0,2},
{9,0,6,0,0,4,0,1,0},
{0,0,0,0,3,1,0,0,8}
};
final int streekkrant[][]=
{
{7,0,0,0,0,4,0,0,3},
{2,0,0,0,0,3,4,7,8},
{0,4,3,0,7,1,0,0,0},
{3,2,0,0,0,0,5,4,0},
{0,0,0,0,0,0,0,0,0},
{0,7,6,0,0,0,0,3,1},
{0,0,0,4,8,0,7,1,0},
{6,5,7,2,0,0,0,0,4},
{4,0,0,3,0,0,0,0,2}
};
final int puzzels[][][]=
{
{
{3,0,1,0,0,0,0,0,0},
{9,0,7,0,0,2,6,0,0},
{6,5,0,0,7,8,0,2,0},
{0,0,0,0,0,0,4,0,6},
{2,0,5,4,0,3,0,7,0},
{7,4,6,0,0,0,2,3,0},
{0,0,0,0,0,0,5,0,8},
{0,0,0,0,9,0,0,0,2},
{0,6,0,8,5,4,0,9,0}
},
{
{7,0,0,0,0,0,0,0,0},
{9,0,0,0,0,5,0,2,8},
{0,5,0,0,0,0,0,0,7},
{0,7,4,2,0,0,3,0,5},
{3,0,0,0,5,0,0,0,2},
{0,8,0,6,3,7,0,4,1},
{0,0,8,4,6,1,0,0,0},
{6,3,9,0,0,0,0,0,0},
{4,0,7,0,9,0,0,0,6}
},
{
{5,0,0,7,3,0,0,0,0},
{4,0,0,0,0,0,0,8,0},
{6,0,9,0,2,0,7,5,1},
{0,0,4,6,0,2,0,0,0},
{3,0,0,0,0,5,8,2,0},
{2,0,5,3,0,0,0,1,6},
{0,4,0,0,0,0,0,0,0},
{8,5,0,1,0,0,0,0,3},
{0,0,0,2,0,8,1,4,0}
},
{
{0,0,8,0,9,0,0,0,4},
{0,0,0,0,3,0,0,0,0},
{0,0,0,0,5,0,0,0,9},
{2,0,1,0,0,6,0,9,0},
{0,9,0,2,1,0,0,0,5},
{0,6,0,0,7,0,1,3,2},
{0,0,0,0,8,1,5,2,3},
{0,2,5,0,0,0,9,0,0},
{9,0,0,7,0,0,6,4,1}
},
{
{0,3,9,0,6,8,0,0,1},
{0,2,0,0,0,0,6,9,0},
{0,0,0,0,0,0,0,0,0},
{6,0,3,0,0,0,2,5,0},
{2,0,8,0,0,0,1,4,0},
{0,4,0,0,0,0,3,0,9},
{0,0,0,0,8,2,0,0,0},
{9,0,0,1,7,0,8,2,5},
{3,0,2,6,9,5,0,0,0}
},
{
{0,4,0,8,2,0,3,0,9},
{9,5,3,0,0,0,0,2,8},
{0,8,0,0,3,0,0,0,0},
{4,0,0,2,0,0,7,0,3},
{1,0,5,3,6,0,0,4,2},
{2,3,0,0,0,0,0,0,0},
{3,0,0,0,0,2,0,9,0},
{0,0,0,4,7,0,0,0,0},
{5,0,4,0,0,3,0,0,0}
},
{
{0,0,2,0,0,0,0,9,0},
{0,0,0,0,8,7,0,0,5},
{0,9,0,0,0,0,7,4,0},
{0,2,1,0,0,0,0,0,7},
{0,5,4,7,0,0,0,0,1},
{0,0,7,1,0,2,6,5,0},
{0,0,3,0,5,0,4,0,0},
{0,4,0,3,0,9,0,6,2},
{0,0,9,2,0,0,5,3,0}
},
{
{0,0,5,0,0,8,0,7,1},
{0,0,0,0,0,0,0,0,0},
{0,0,0,6,0,0,5,0,2},
{9,7,0,0,0,6,0,0,0},
{1,5,4,0,0,7,0,0,0},
{8,2,6,5,0,0,0,1,0},
{3,0,0,0,0,4,0,0,0},
{2,0,8,0,5,0,0,6,9},
{0,6,9,3,0,2,1,4,0}
},
{
{0,0,0,0,5,0,8,0,0},
{0,0,0,0,1,0,7,4,0},
{0,0,0,0,0,0,2,1,5},
{7,9,0,0,0,5,0,6,2},
{0,6,8,0,0,0,0,0,0},
{0,0,2,0,0,9,5,3,8},
{0,0,0,2,0,0,0,0,0},
{0,2,1,8,9,0,6,0,4},
{9,0,0,5,0,4,3,2,0}
},
{
{0,0,0,0,3,5,0,0,8},
{0,0,0,4,9,0,0,0,3},
{9,3,0,7,0,0,0,4,5},
{2,5,0,9,7,3,4,0,0},
{0,0,0,8,0,6,5,0,9},
{0,0,0,1,5,4,8,0,0},
{0,0,0,0,0,0,0,0,4},
{0,0,1,5,0,9,3,0,0},
{0,0,0,0,4,8,0,0,0}
},
{
{7,3,9,0,4,0,1,0,6},
{5,0,0,0,0,2,4,0,7},
{1,0,0,9,0,0,5,0,0},
{0,0,0,4,0,0,0,0,0},
{3,1,0,7,8,0,6,4,0},
{0,0,5,0,0,0,9,0,0},
{8,9,0,6,0,0,0,0,1},
{0,0,0,2,7,5,0,3,9},
{0,0,0,8,0,0,0,0,0}
},
{
{0,0,3,0,8,0,0,0,4},
{0,0,0,9,0,3,8,2,0},
{0,0,0,0,0,0,9,0,0},
{1,0,4,2,3,0,0,0,0},
{0,9,0,0,0,0,2,4,8},
{2,8,0,0,0,0,3,1,7},
{0,0,0,5,0,0,0,8,0},
{0,2,0,0,0,7,0,0,1},
{0,0,7,8,2,9,6,0,5}
},
{
{5,6,0,0,8,3,4,0,7},
{0,0,7,4,6,0,0,2,0},
{0,4,8,1,0,0,0,0,9},
{0,9,0,3,0,0,0,5,0},
{6,0,0,0,0,0,0,4,0},
{7,0,2,0,0,1,0,6,3},
{0,5,0,0,0,0,3,0,0},
{8,0,0,0,0,5,0,0,4},
{9,0,0,6,1,0,0,0,0}
},
{
{3,1,7,4,0,0,0,2,0},
{0,4,0,0,7,0,0,0,6},
{5,0,0,2,0,0,7,1,4},
{7,0,0,0,0,0,3,0,0},
{0,0,0,0,2,9,1,4,0},
{4,9,1,3,0,0,0,5,8},
{0,0,0,0,5,3,0,0,0},
{9,0,0,6,0,0,5,0,2},
{1,0,0,0,0,0,0,0,0}
},
{
{0,0,0,0,0,1,2,0,0},
{4,8,2,0,0,0,0,5,0},
{0,0,3,8,5,0,0,0,0},
{0,1,0,2,0,5,0,7,0},
{8,0,7,0,9,6,0,0,1},
{3,0,0,0,0,0,8,9,2},
{2,0,0,0,1,7,0,0,0},
{0,0,9,0,0,8,0,0,0},
{0,4,0,6,0,9,0,2,8}
},
{
{0,0,0,3,9,0,1,0,0},
{1,0,0,6,4,0,0,0,0},
{0,6,0,0,1,2,0,8,0},
{0,0,0,0,0,0,0,0,0},
{7,0,0,8,3,5,0,0,2},
{2,0,1,0,7,4,6,5,0},
{0,0,0,0,8,9,5,6,0},
{0,0,0,0,5,6,0,3,1},
{0,0,0,1,2,0,0,0,7}
},
{
{0,0,0,0,0,0,2,7,5},
{0,5,3,0,0,0,0,0,1},
{0,9,0,0,0,0,0,3,4},
{0,0,0,0,0,0,0,4,0},
{5,0,0,9,4,0,3,1,2},
{0,0,4,8,5,3,0,0,7},
{3,0,0,4,6,0,0,0,0},
{0,4,0,0,9,0,0,0,3},
{9,0,0,1,3,2,4,0,0}
},
{
{0,0,0,0,0,4,0,0,0},
{4,1,6,8,2,0,0,9,0},
{0,0,0,9,0,0,0,1,0},
{2,0,8,0,0,0,5,6,3},
{1,0,0,6,0,3,0,0,8},
{0,0,0,5,0,0,0,4,9},
{9,0,0,0,5,8,7,3,1},
{0,0,0,0,0,0,8,2,4},
{0,0,0,0,0,7,9,0,0}
},
{
{0,0,6,8,0,0,1,0,2},
{0,3,1,0,4,0,5,6,8},
{0,0,4,0,1,6,7,0,3},
{4,0,3,0,2,0,0,0,0},
{0,0,0,0,8,0,0,0,6},
{0,0,0,6,0,0,2,3,5},
{0,0,0,1,0,0,0,0,0},
{0,0,0,7,9,0,0,0,0},
{0,7,8,4,0,5,0,0,1}
},
{
{0,2,0,0,0,6,1,4,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,8,7,0,0,0},
{0,0,4,0,0,3,8,2,0},
{0,0,1,0,4,0,9,0,0},
{0,3,0,9,6,5,7,0,4},
{1,4,6,0,0,0,0,0,0},
{3,0,9,6,2,0,0,0,0},
{2,8,7,4,0,0,0,9,3}
},
{
{0,0,0,4,0,0,1,0,2},
{0,0,2,0,9,8,0,6,0},
{6,1,0,0,0,0,0,0,8},
{3,0,0,8,0,0,0,2,1},
{8,0,0,0,0,0,0,0,4},
{2,0,1,7,6,0,0,8,0},
{4,0,6,0,2,0,0,0,0},
{0,8,0,6,0,0,2,0,3},
{1,2,0,0,0,0,5,0,6}
},
{
{0,0,0,0,7,3,2,0,8},
{8,0,2,0,9,0,0,0,0},
{0,0,1,0,0,2,3,6,0},
{0,0,0,3,0,0,4,0,1},
{4,0,5,0,0,0,0,0,3},
{7,0,0,0,0,4,5,8,0},
{0,8,0,0,4,0,0,0,6},
{0,0,0,2,0,0,7,0,0},
{0,4,6,7,3,9,0,2,0}
},
{
{0,0,0,2,0,6,9,7,0},
{0,3,1,9,0,0,0,0,0},
{7,0,6,8,5,0,0,0,0},
{0,0,8,0,6,0,2,0,0},
{0,0,0,7,9,0,0,6,0},
{6,0,5,0,0,0,0,0,7},
{4,0,3,0,2,0,0,8,9},
{0,0,9,6,0,4,0,0,0},
{5,2,0,0,0,9,0,0,6}
},
{
{4,0,0,3,0,0,0,2,0},
{5,0,0,0,0,0,0,0,0},
{6,0,0,8,0,2,0,0,0},
{7,0,0,0,0,6,0,5,0},
{0,0,0,7,0,3,6,4,0},
{9,0,0,5,0,4,0,0,2},
{3,6,9,0,2,8,1,0,5},
{0,0,7,0,0,9,0,3,0},
{2,0,0,1,0,0,0,9,6}
},
{
{4,0,1,0,5,0,3,8,0},
{8,0,0,0,0,3,0,0,1},
{0,5,0,0,0,0,0,7,4},
{0,0,0,0,0,8,4,6,0},
{6,4,0,1,0,0,0,9,8},
{9,0,0,0,6,0,0,0,0},
{0,2,0,0,7,0,8,0,0},
{5,0,0,3,0,0,0,0,7},
{0,3,0,5,8,0,0,1,6}
},
{
{0,0,9,5,0,4,8,2,7},
{0,0,7,0,2,9,0,0,6},
{2,5,0,0,0,7,9,0,0},
{0,7,0,0,0,0,2,6,8},
{0,0,0,6,4,0,0,0,0},
{0,0,3,0,0,0,5,0,1},
{0,0,6,0,7,0,0,0,0},
{0,0,0,0,9,0,1,7,0},
{0,1,4,2,3,0,0,0,0}
},
{
{0,0,6,2,0,0,9,0,0},
{0,3,9,0,0,0,2,0,0},
{0,0,0,7,9,6,8,5,0},
{0,1,2,0,7,0,0,0,0},
{0,0,0,0,0,0,0,0,2},
{0,4,5,0,0,0,0,0,8},
{4,0,0,5,0,7,0,8,0},
{0,9,0,4,0,3,0,2,1},
{2,5,3,0,0,9,0,7,0}
},
{
{1,0,2,6,0,0,9,0,0},
{0,9,8,3,0,0,6,4,5},
{0,6,0,9,0,0,3,0,0},
{2,0,0,0,5,4,0,0,0},
{9,0,0,2,0,1,5,0,6},
{0,0,3,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,3},
{5,2,1,4,0,3,8,0,0},
{0,0,9,0,0,0,4,6,0}
},
{
{4,0,8,5,7,0,0,0,0},
{0,5,0,0,0,0,1,4,7},
{1,3,0,0,0,0,0,5,8},
{0,9,0,1,0,6,0,0,5},
{5,1,0,0,0,0,9,0,0},
{0,0,6,0,5,9,0,1,4},
{0,0,0,0,2,8,0,0,0},
{0,0,0,0,0,0,0,8,2},
{8,0,0,0,1,0,6,9,0}
},
{
{0,0,0,7,0,8,0,0,0},
{0,0,0,0,0,2,0,9,0},
{0,8,9,0,0,4,2,0,5},
{9,0,0,0,0,0,3,1,0},
{0,0,0,0,0,0,0,4,8},
{0,5,0,4,2,0,0,0,7},
{0,3,2,0,0,0,4,5,6},
{7,0,8,0,0,0,1,0,3},
{0,6,5,0,1,0,7,8,0}
},
{
{0,9,3,4,0,0,0,0,7},
{0,0,2,1,0,0,4,0,0},
{0,0,1,6,5,9,0,0,3},
{0,0,0,0,0,0,9,0,5},
{0,0,0,0,1,4,7,0,0},
{0,0,0,0,9,0,0,1,4},
{7,1,0,0,0,0,8,9,2},
{0,0,5,9,0,1,0,0,6},
{0,0,0,0,0,2,0,4,1}
},
{
{0,3,0,6,5,4,9,7,8},
{0,0,8,3,0,0,0,0,0},
{0,0,5,9,0,7,0,0,0},
{0,0,0,5,0,2,4,6,0},
{0,0,0,0,0,0,0,9,0},
{0,7,0,0,9,0,2,5,0},
{0,0,0,8,0,0,7,3,0},
{0,0,7,2,0,0,5,8,0},
{8,0,0,0,0,9,0,2,4}
},
{
{2,0,0,0,0,3,7,4,1},
{6,0,0,0,4,0,0,0,0},
{1,0,0,2,0,0,9,0,0},
{4,6,0,3,0,0,0,8,5},
{0,0,3,6,0,2,0,0,0},
{8,0,0,0,1,5,0,9,6},
{0,0,0,0,0,0,0,3,0},
{0,4,0,0,3,1,5,0,0},
{0,0,8,0,5,6,0,0,7}
},
{
{0,8,4,7,5,0,9,0,0},
{5,0,0,3,0,2,0,1,4},
{3,7,0,9,6,0,8,0,0},
{6,0,0,0,0,0,0,0,0},
{0,2,8,0,0,5,3,0,0},
{4,0,0,0,7,3,0,5,8},
{0,3,7,0,0,0,0,0,0},
{8,6,0,0,3,0,0,0,1},
{0,0,0,0,0,0,0,0,3}
},
{
{0,1,2,0,0,7,0,5,0},
{5,0,0,0,0,6,0,0,0},
{0,0,7,5,8,3,0,0,0},
{2,7,0,0,0,0,1,0,6},
{8,9,1,0,6,0,0,0,0},
{6,0,0,0,0,0,0,0,9},
{4,5,0,3,1,2,0,0,0},
{0,0,0,9,0,0,0,6,0},
{7,8,9,0,0,0,0,3,1}
},
{
{0,1,4,0,0,0,2,0,8},
{0,2,0,0,0,0,0,0,0},
{0,3,0,0,7,2,1,0,0},
{0,0,3,4,2,0,0,0,0},
{4,0,0,6,0,0,0,8,2},
{5,8,2,0,0,0,0,6,0},
{3,0,9,0,0,0,0,2,7},
{0,5,8,7,0,3,0,0,0},
{1,0,0,2,0,6,5,0,0}
},
{
{0,0,9,0,0,4,0,0,0},
{0,2,0,9,8,0,0,0,0},
{4,5,0,0,2,1,0,0,0},
{0,0,0,1,0,2,0,0,6},
{0,6,1,0,9,3,0,0,4},
{0,0,4,5,0,0,0,3,1},
{0,1,0,0,7,9,4,0,0},
{6,4,0,2,0,0,1,0,0},
{0,0,8,4,1,0,0,0,0}
},
{
{0,0,2,0,3,0,4,0,0},
{9,0,0,1,4,5,0,0,0},
{7,0,0,0,6,2,5,0,3},
{0,8,0,0,0,1,9,0,0},
{0,0,6,2,0,0,0,0,5},
{0,7,0,0,0,6,3,2,0},
{0,0,0,6,0,0,0,0,9},
{5,0,0,4,0,9,0,0,7},
{0,3,9,7,0,0,0,5,0}
},
{
{0,4,0,0,0,0,0,0,0},
{7,0,2,0,0,0,1,0,0},
{9,1,0,6,0,0,3,0,0},
{2,0,1,0,0,9,5,6,0},
{0,9,7,0,0,6,0,3,0},
{0,0,0,0,0,3,8,0,7},
{0,8,0,0,0,1,0,0,3},
{6,0,0,8,3,0,0,0,2},
{1,2,0,0,0,4,6,0,8}
},
{
{0,0,0,5,6,4,0,0,0},
{0,0,4,0,0,0,0,9,8},
{3,2,0,8,0,0,0,0,0},
{0,0,8,4,1,0,0,0,0},
{0,6,0,0,0,0,0,8,0},
{4,0,9,0,0,8,0,2,0},
{0,0,0,0,2,5,0,0,9},
{8,0,0,0,4,0,0,5,7},
{2,1,5,7,8,9,0,0,3}
},
{
{0,0,7,0,5,0,0,1,0},
{0,0,0,2,0,0,0,0,0},
{1,2,6,0,0,0,5,4,0},
{0,0,0,0,2,0,0,9,0},
{0,5,0,0,0,0,6,0,4},
{0,3,9,6,4,0,0,7,5},
{0,0,5,1,0,0,7,0,9},
{3,0,2,0,0,0,4,0,0},
{0,0,8,4,6,5,0,2,0}
},
{
{5,0,0,8,7,9,3,0,1},
{0,0,9,2,1,0,6,0,0},
{0,1,3,5,0,0,0,0,0},
{0,6,0,0,0,0,0,0,2},
{7,0,8,0,0,0,0,0,0},
{0,0,0,4,0,0,1,0,8},
{9,3,0,6,2,1,8,0,0},
{0,0,0,7,0,0,0,1,0},
{0,0,0,0,8,5,0,6,9}
},
{
{7,0,0,3,2,0,6,0,0},
{0,0,0,9,8,0,3,0,0},
{1,0,2,6,5,0,0,8,0},
{0,0,4,7,9,3,0,0,2},
{0,0,0,1,0,2,5,0,0},
{3,0,0,0,0,8,0,0,0},
{0,4,0,0,0,0,0,1,5},
{0,5,0,4,0,0,0,9,3},
{0,1,0,0,3,5,0,0,0}
},
{
{0,3,0,0,1,0,0,5,2},
{0,4,0,0,0,7,0,6,0},
{0,6,0,5,3,0,0,4,0},
{9,0,0,6,0,3,0,0,8},
{8,0,7,0,0,5,0,0,0},
{3,0,0,0,0,0,0,1,0},
{0,7,3,9,0,0,0,0,0},
{0,0,5,3,8,0,0,7,0},
{0,8,2,7,5,0,0,9,0}
},
{
{0,0,0,0,0,9,0,5,0},
{0,9,0,0,0,0,0,0,0},
{0,0,0,4,5,1,0,6,0},
{0,5,0,0,0,0,9,3,0},
{2,8,0,5,0,0,7,0,4},
{0,3,0,0,0,0,0,2,5},
{0,4,6,0,0,0,5,0,2},
{7,0,5,0,0,2,6,9,3},
{3,0,8,0,6,5,0,0,0}
},
{
{0,0,0,0,5,2,0,0,0},
{0,8,0,0,0,3,0,0,0},
{6,3,0,7,0,1,0,0,9},
{0,1,0,5,2,0,0,0,6},
{2,0,0,6,3,0,1,7,5},
{0,0,0,4,1,7,0,3,0},
{0,0,0,0,0,0,7,8,0},
{0,7,0,0,0,5,0,4,0},
{8,2,6,0,0,0,0,5,0}
},
{
{0,0,5,7,0,1,9,0,0},
{0,1,4,9,0,0,3,0,2},
{9,3,0,0,0,0,7,0,1},
{0,9,3,4,1,0,8,0,7},
{0,7,0,6,0,2,5,0,0},
{0,0,2,0,0,0,0,0,6},
{3,0,9,0,0,0,0,0,5},
{1,0,0,5,0,0,0,0,0},
{0,0,0,0,0,9,0,7,0}
},
{
{0,1,0,9,3,0,0,0,0},
{0,2,0,7,0,0,3,5,0},
{7,0,3,0,0,5,0,1,0},
{6,0,0,0,0,0,0,0,3},
{0,7,1,0,9,0,4,0,2},
{0,3,0,0,7,0,0,0,5},
{1,0,0,0,5,0,0,0,0},
{0,0,0,0,0,7,2,0,8},
{2,8,0,3,0,9,5,4,0}
},
{
{0,0,0,5,0,2,0,0,0},
{0,2,0,4,0,0,0,0,0},
{0,5,1,6,0,3,0,0,0},
{0,0,0,0,5,8,3,0,0},
{2,0,7,0,6,0,5,0,4},
{0,3,6,0,0,0,8,0,0},
{9,0,0,0,0,4,0,3,8},
{7,1,0,8,2,5,4,9,0},
{0,0,0,0,0,6,0,7,0}
},
{
{4,0,0,0,5,0,0,0,8},
{0,0,0,0,0,1,0,7,0},
{1,5,0,0,9,0,4,0,0},
{0,0,0,9,7,8,6,0,0},
{5,0,0,0,0,0,0,8,7},
{0,0,0,6,4,5,3,2,1},
{0,9,0,0,0,0,2,0,0},
{0,0,1,0,0,9,0,0,5},
{0,8,0,1,2,4,0,6,0}
},
{
{0,0,6,0,2,7,8,3,0},
{0,0,0,4,0,0,0,0,0},
{2,0,5,0,8,0,7,0,0},
{7,0,0,8,5,0,0,0,6},
{0,0,0,0,0,0,0,9,7},
{1,4,0,7,0,0,5,8,0},
{0,2,0,9,0,8,0,0,5},
{0,0,0,0,0,0,9,7,0},
{0,8,7,0,4,5,0,0,2}
},
{
{9,0,0,0,0,0,0,0,0},
{8,0,5,0,0,7,0,0,9},
{0,1,0,0,8,9,0,0,0},
{0,0,0,0,1,0,0,0,4},
{0,8,0,9,0,0,3,7,0},
{0,0,0,0,0,0,5,0,6},
{0,4,7,5,9,0,8,6,2},
{0,0,0,0,0,2,1,0,5},
{0,5,8,0,6,1,9,3,0}
},
{
{8,0,5,0,0,0,0,0,9},
{0,3,6,2,8,7,0,5,0},
{0,1,4,0,0,0,0,2,8},
{0,0,0,9,0,0,5,0,0},
{0,8,0,0,0,0,1,0,0},
{0,9,0,0,0,0,2,8,0},
{0,0,7,8,3,0,9,6,0},
{0,0,0,5,7,0,0,0,0},
{0,0,8,6,9,4,0,0,3}
},
{
{0,0,3,0,4,0,0,0,0},
{0,0,5,8,0,0,9,3,0},
{9,2,0,3,6,5,0,0,0},
{0,0,9,2,0,6,1,0,0},
{0,0,7,0,1,4,0,0,0},
{0,0,0,0,0,0,0,5,8},
{0,0,4,1,0,0,5,8,2},
{0,7,1,0,2,0,0,9,0},
{0,3,0,0,5,0,0,0,1}
},
{
{0,0,0,0,1,0,0,6,0},
{0,0,0,0,7,9,2,0,1},
{0,1,0,5,4,0,0,9,7},
{0,0,0,0,5,0,3,4,6},
{4,6,0,9,0,0,7,0,2},
{0,5,3,0,0,7,9,1,0},
{0,0,0,0,0,5,0,0,0},
{0,8,6,7,0,0,1,0,0},
{7,0,9,0,0,0,0,0,0}
},
{
{0,0,0,9,0,0,0,0,0},
{0,5,0,4,6,0,1,0,0},
{0,9,8,1,5,0,4,0,0},
{0,0,7,6,2,1,0,0,4},
{0,0,5,0,9,0,2,3,0},
{0,0,0,0,0,0,0,9,0},
{0,1,3,0,0,6,9,7,0},
{0,7,9,0,1,0,6,0,5},
{0,4,0,0,0,0,0,1,0}
},
{
{0,7,0,0,0,0,4,6,0},
{0,0,2,7,4,0,0,0,9},
{0,0,0,0,0,0,5,2,0},
{2,0,0,5,0,0,7,0,0},
{8,0,0,0,0,9,0,3,1},
{3,9,0,0,0,0,0,0,0},
{0,0,9,0,0,1,0,4,5},
{0,5,6,9,8,0,3,0,0},
{1,0,0,6,5,0,0,7,8}
},
{
{9,6,0,0,2,8,7,1,0},
{0,0,0,6,0,9,3,0,8},
{0,5,2,1,0,0,0,0,6},
{0,0,0,0,0,0,5,0,3},
{5,0,0,7,9,0,4,0,1},
{0,0,0,0,1,4,0,0,0},
{3,0,6,8,0,2,0,5,0},
{0,0,0,0,4,1,0,0,0},
{0,0,0,3,0,0,0,0,9}
},
{
{0,0,0,2,5,0,4,0,0},
{0,0,7,4,6,0,9,3,0},
{0,0,0,0,0,7,1,5,2},
{0,3,2,6,0,0,0,7,0},
{0,0,0,0,0,8,0,1,3},
{0,0,8,3,0,0,0,0,0},
{0,8,4,0,0,0,6,0,0},
{9,7,0,0,2,0,0,0,0},
{0,2,0,0,8,0,7,9,4}
},
{
{0,9,0,7,0,1,2,8,3},
{1,7,3,0,0,0,0,6,0},
{0,8,0,0,0,3,0,5,0},
{0,0,0,6,0,9,7,0,0},
{7,3,9,0,0,0,0,0,0},
{0,6,0,0,1,0,9,3,5},
{0,2,0,0,0,0,0,4,0},
{0,0,0,0,8,5,3,0,0},
{0,0,0,1,0,0,8,0,2}
},
{
{2,6,0,0,0,0,9,0,7},
{0,7,0,0,0,0,0,0,0},
{0,3,5,6,9,0,0,2,0},
{0,0,3,5,4,6,0,7,9},
{0,8,0,2,0,0,0,0,0},
{4,5,0,8,0,0,0,0,0},
{0,0,0,7,0,5,0,0,4},
{0,0,7,0,8,1,3,0,2},
{0,1,0,0,0,4,0,9,0}
},
{
{0,0,0,6,0,1,0,3,9},
{0,6,4,0,0,7,0,0,1},
{9,0,1,0,0,0,0,0,0},
{0,0,0,2,0,0,5,8,3},
{0,0,0,0,0,0,1,2,0},
{1,0,0,0,0,6,0,9,0},
{0,4,6,7,9,0,3,1,2},
{0,0,3,0,0,0,0,0,8},
{0,7,9,0,3,0,6,0,0}
},
{
{0,0,1,0,0,0,0,0,0},
{0,0,0,4,5,0,0,2,0},
{5,6,0,1,0,0,0,8,7},
{0,4,0,8,6,0,2,0,3},
{0,5,8,0,0,0,0,0,9},
{0,0,0,0,9,7,0,0,0},
{0,2,0,0,7,8,0,0,0},
{9,0,3,6,0,0,5,0,2},
{4,0,6,5,3,0,0,9,0}
},
{
{3,0,0,0,8,9,0,5,6},
{9,0,0,0,5,0,0,0,0},
{0,0,0,0,2,3,0,0,0},
{5,0,6,3,0,0,0,0,0},
{0,3,0,0,0,8,0,0,1},
{0,2,0,9,0,7,8,0,5},
{8,0,0,6,0,4,0,1,0},
{2,0,0,8,0,0,0,0,7},
{0,6,1,2,7,0,0,0,8}
},
{
{1,8,9,0,7,0,0,3,5},
{5,0,0,3,0,0,0,1,0},
{0,0,3,5,0,1,8,0,9},
{9,0,0,0,0,0,3,2,1},
{3,0,0,7,0,0,6,0,0},
{0,0,0,0,0,0,0,8,7},
{0,0,0,0,0,6,0,0,0},
{2,0,1,0,0,7,5,0,0},
{0,0,6,8,5,0,0,0,2}
},
{
{8,0,0,1,2,5,4,0,0},
{0,0,0,0,8,0,5,2,0},
{0,3,5,0,7,0,0,0,9},
{0,0,7,2,0,1,0,0,0},
{0,2,0,0,0,4,9,0,8},
{0,5,0,8,9,0,0,0,0},
{0,0,3,6,0,2,0,0,4},
{0,4,0,0,0,8,0,0,0},
{5,6,0,7,4,0,0,0,0}
},
{
{0,0,0,8,5,0,1,0,6},
{0,0,0,9,0,0,2,0,0},
{8,0,2,0,0,0,0,5,9},
{4,0,9,5,2,0,0,6,3},
{0,0,0,4,1,0,9,0,0},
{0,2,0,6,0,0,0,1,5},
{0,0,4,0,0,6,0,7,0},
{5,0,0,1,0,0,0,0,0},
{3,0,0,0,8,5,0,9,0}
},
{
{5,4,0,0,1,3,0,0,9},
{8,7,9,0,0,0,0,1,0},
{0,1,0,0,0,9,0,0,6},
{0,0,0,0,5,0,0,0,0},
{0,2,1,0,9,7,3,0,5},
{0,8,0,1,3,0,7,9,4},
{0,0,0,0,2,0,0,0,0},
{0,0,2,0,8,1,0,0,7},
{0,0,0,0,6,0,0,0,2}
},
{
{0,0,2,0,5,0,0,0,9},
{7,0,3,0,0,4,2,0,8},
{0,0,5,0,8,0,0,0,7},
{4,0,1,0,0,0,0,0,0},
{6,2,0,0,0,0,0,1,4},
{0,7,9,4,0,0,0,2,0},
{2,0,0,0,0,5,0,0,3},
{5,3,0,0,9,0,4,7,0},
{0,9,0,0,0,0,0,8,2}
},
{
{0,0,0,0,8,0,1,2,0},
{0,0,0,1,0,3,0,0,0},
{2,0,0,6,0,0,0,0,3},
{0,7,8,0,0,0,0,0,0},
{0,0,4,0,0,2,0,3,9},
{5,0,2,9,1,0,7,0,0},
{0,2,0,0,0,7,0,0,0},
{7,0,9,5,6,4,3,1,2},
{0,5,0,0,3,0,0,0,8}
},
{
{0,9,3,4,0,0,0,0,8},
{5,8,0,0,0,0,4,0,0},
{0,0,0,0,0,0,0,0,3},
{3,6,0,0,0,1,0,0,0},
{1,0,7,8,3,2,0,9,0},
{2,0,0,0,0,0,0,7,0},
{0,0,0,3,0,9,0,0,2},
{0,0,6,2,8,0,1,0,0},
{8,2,5,0,0,0,9,3,7}
},
{
{4,0,8,0,0,0,0,6,0},
{0,5,9,0,3,2,0,0,0},
{0,3,7,0,0,0,8,5,0},
{8,7,0,0,1,5,0,0,6},
{0,0,0,9,2,0,1,0,0},
{0,4,0,7,6,0,0,8,5},
{0,0,3,0,0,6,0,2,0},
{0,8,0,0,0,0,0,0,7},
{0,0,0,0,0,7,0,3,9}
},
{
{5,6,0,0,1,0,4,9,0},
{0,0,3,0,0,0,0,0,0},
{1,0,0,7,0,0,0,0,0},
{2,3,0,1,0,8,0,0,4},
{0,0,9,0,3,6,0,5,0},
{4,1,0,0,7,0,0,0,0},
{0,5,0,3,2,0,9,7,0},
{0,0,7,6,5,0,3,0,2},
{0,0,0,9,0,7,0,0,0}
},
{
{0,0,3,0,0,0,8,7,2},
{0,0,0,2,0,8,5,0,3},
{0,5,0,0,3,0,0,6,0},
{0,2,8,0,0,4,0,0,0},
{0,0,0,0,0,7,0,0,4},
{0,0,0,3,0,0,2,8,0},
{0,7,4,6,0,5,0,0,8},
{0,9,0,4,8,2,7,0,0},
{0,0,5,0,0,3,0,0,6}
},
{
{0,2,0,0,0,0,0,4,0},
{0,0,7,5,4,0,2,0,3},
{6,0,0,0,0,0,0,7,9},
{0,0,0,9,3,0,1,0,0},
{1,9,0,0,0,0,3,0,0},
{0,0,0,0,5,0,0,9,8},
{0,6,0,0,8,5,0,2,1},
{8,0,0,6,2,1,0,0,0},
{0,0,3,0,9,4,0,0,5}
},
{
{7,4,9,6,0,0,2,0,1},
{6,0,2,0,0,7,0,0,0},
{0,0,0,0,2,1,7,0,0},
{5,6,0,2,0,0,0,0,0},
{0,9,0,0,0,6,0,0,2},
{2,3,0,0,0,0,6,4,5},
{1,0,0,0,0,8,0,6,0},
{4,0,0,3,5,0,0,0,0},
{0,8,0,0,6,0,0,0,7}
},
{
{0,0,0,6,9,7,0,0,0},
{0,0,0,0,5,0,0,2,1},
{0,6,0,0,0,2,7,0,4},
{6,0,0,0,0,0,8,0,0},
{0,8,7,0,0,0,2,1,0},
{3,0,0,0,0,0,5,0,0},
{0,0,9,0,6,0,0,5,0},
{0,3,0,0,8,1,0,6,0},
{0,1,6,7,2,5,9,3,0}
},
{
{0,9,0,4,0,0,0,1,0},
{2,5,0,1,9,0,0,0,0},
{0,0,1,0,0,2,0,9,3},
{6,4,5,0,0,0,0,8,0},
{0,0,0,0,5,0,3,0,0},
{3,0,2,0,8,0,0,0,0},
{0,0,0,0,0,0,1,6,0},
{1,2,0,0,0,9,5,0,8},
{0,0,6,2,1,0,0,7,9}
},
{
{0,0,1,0,0,0,0,6,7},
{6,3,0,4,1,0,0,2,0},
{7,0,0,6,3,9,5,1,0},
{0,0,8,0,0,0,0,0,0},
{0,0,0,0,0,5,0,9,0},
{0,0,0,0,0,0,0,0,8},
{8,2,0,0,0,1,9,0,3},
{0,0,4,0,6,3,7,0,0},
{9,0,3,8,0,0,0,4,1}
},
{
{3,0,0,0,2,4,0,0,5},
{2,8,0,7,0,1,0,0,0},
{0,7,0,0,0,6,0,0,0},
{0,0,0,0,7,0,0,0,4},
{4,1,0,0,0,0,2,0,9},
{0,0,0,1,0,9,6,0,7},
{0,4,0,6,0,2,0,0,0},
{0,5,2,3,0,7,0,0,0},
{9,6,3,0,0,5,8,0,0}
},
{
{0,0,6,7,0,8,0,5,0},
{9,0,8,0,0,2,0,6,0},
{0,5,2,0,6,4,0,0,0},
{0,2,3,0,0,0,4,0,0},
{0,0,0,0,0,0,5,8,3},
{0,0,5,0,0,0,1,0,6},
{0,9,0,0,0,3,6,4,5},
{0,3,0,5,0,6,0,7,0},
{0,0,4,0,0,9,0,0,0}
},
{
{0,0,0,7,0,3,0,0,2},
{7,0,0,0,0,0,0,0,8},
{2,0,0,0,0,8,0,0,9},
{0,0,0,0,5,0,8,9,7},
{0,0,0,9,0,0,0,0,0},
{9,8,0,3,0,1,5,0,0},
{0,0,6,0,7,9,0,2,5},
{5,0,2,4,0,0,9,0,0},
{1,9,0,0,0,5,0,7,6}
},
{
{1,0,2,0,0,4,7,9,0},
{0,0,0,9,8,0,0,0,0},
{0,0,8,0,2,1,0,0,5},
{0,0,0,0,4,2,8,0,3},
{0,2,0,0,0,0,0,4,0},
{0,0,4,0,0,3,2,1,0},
{0,0,3,0,0,0,5,0,0},
{0,5,7,4,0,0,3,0,9},
{8,0,0,2,0,0,6,0,4}
},
{
{0,3,0,9,0,8,0,0,4},
{5,0,0,0,1,0,0,0,0},
{0,9,0,0,0,0,0,2,0},
{0,2,3,0,0,0,0,0,0},
{0,0,0,5,8,0,1,4,0},
{0,0,5,1,0,0,7,0,3},
{7,0,0,0,3,9,0,0,0},
{3,4,0,2,5,1,8,0,0},
{9,0,0,0,6,4,0,3,5}
},
{
{0,8,0,0,5,0,0,9,0},
{0,0,0,0,0,0,1,7,4},
{0,0,0,7,3,6,0,0,0},
{0,7,0,0,6,4,5,2,0},
{8,0,6,3,0,5,4,0,0},
{0,0,4,0,0,0,0,0,9},
{0,0,0,0,1,0,0,0,3},
{3,1,0,6,0,0,8,0,2},
{5,0,9,0,2,3,0,0,0}
},
{
{9,0,0,6,4,0,1,0,0},
{6,0,0,0,1,2,7,0,9},
{3,1,2,9,0,8,4,5,0},
{0,0,0,0,0,0,0,0,0},
{7,0,0,0,8,0,2,0,1},
{2,3,0,4,0,0,0,0,0},
{0,8,0,0,6,4,0,3,0},
{0,6,3,0,5,0,0,7,0},
{0,0,7,0,0,0,0,0,0}
},
{
{0,6,0,0,0,0,9,0,0},
{0,0,8,9,0,7,0,2,1},
{0,7,9,3,0,2,0,0,0},
{0,1,0,6,0,4,0,9,0},
{7,0,0,8,9,0,0,0,0},
{0,0,0,0,7,0,1,0,0},
{9,0,0,1,2,0,0,4,6},
{0,0,0,7,0,0,0,0,3},
{3,2,1,0,0,0,0,7,9}
},
{
{6,4,1,0,0,0,9,0,3},
{5,0,0,8,9,0,0,7,6},
{9,0,7,0,0,4,1,2,0},
{0,0,9,5,0,8,0,1,0},
{0,0,0,0,0,2,0,4,0},
{0,1,4,0,0,7,0,0,0},
{0,0,8,0,0,0,0,3,1},
{0,0,0,0,0,0,0,0,7},
{0,3,2,7,0,0,0,6,0}
},
{
{8,2,0,0,5,0,4,0,7},
{0,0,0,0,0,0,5,0,0},
{0,5,4,7,0,0,0,0,0},
{0,9,0,3,0,7,0,0,5},
{6,0,5,0,0,0,1,0,0},
{0,0,2,5,0,4,3,0,0},
{0,0,7,0,9,0,8,5,2},
{2,0,0,1,0,5,0,0,3},
{0,6,0,0,0,8,0,0,1}
},
{
{0,5,8,0,0,0,1,0,6},
{1,0,7,0,0,2,3,0,0},
{3,0,0,0,1,5,0,8,7},
{0,0,3,0,0,0,0,0,1},
{0,0,0,0,0,6,0,3,0},
{0,8,0,7,3,0,0,9,4},
{7,1,0,5,6,0,0,0,0},
{0,0,5,0,4,9,0,6,0},
{0,3,0,0,7,0,0,0,0}
},
{
{0,7,4,0,0,0,0,3,0},
{3,0,6,0,4,0,7,8,2},
{0,0,0,0,7,3,0,9,0},
{0,0,2,0,6,0,0,0,0},
{0,6,0,7,0,0,2,0,0},
{7,0,0,0,0,0,5,0,9},
{4,0,7,0,0,9,0,0,6},
{0,3,9,0,2,0,0,0,0},
{0,2,8,0,1,6,9,0,0}
},
{
{4,0,0,0,2,0,9,3,0},
{0,0,0,0,0,0,0,0,5},
{0,8,2,0,3,0,0,1,0},
{0,0,0,5,0,0,6,9,0},
{5,0,3,8,9,0,0,7,0},
{0,0,0,3,7,0,0,0,0},
{0,5,0,2,0,3,1,0,0},
{0,0,1,0,0,9,0,5,8},
{0,0,0,0,5,7,3,6,9}
},
{
{0,9,0,0,5,6,0,0,0},
{5,0,4,0,2,0,0,8,9},
{0,3,1,0,0,0,4,5,0},
{0,0,0,9,7,4,0,6,0},
{0,7,9,8,3,5,2,0,0},
{0,0,0,2,0,0,0,0,7},
{0,0,0,0,9,8,0,0,0},
{0,0,0,0,0,2,9,7,8},
{0,0,0,0,0,0,0,3,2}
},
{
{1,7,4,0,0,5,8,0,2},
{0,9,0,0,0,0,5,0,0},
{0,8,0,0,9,0,3,0,6},
{0,0,1,0,0,9,0,8,3},
{0,0,2,0,0,7,4,6,9},
{9,6,0,0,0,0,0,0,0},
{0,0,0,0,7,3,0,1,0},
{4,1,0,0,2,0,0,3,0},
{0,0,0,0,5,0,0,2,0}
},
{
{4,0,1,0,0,0,0,0,9},
{0,0,0,2,0,1,8,4,5},
{6,8,0,0,0,4,0,1,3},
{7,0,8,0,0,2,4,0,0},
{0,0,0,3,9,0,0,7,2},
{3,0,0,0,0,0,0,9,0},
{8,0,9,0,0,0,0,0,0},
{0,1,0,4,0,0,0,8,0},
{0,4,6,0,8,0,0,0,1}
},
{
{0,0,0,0,2,5,7,4,0},
{5,0,0,1,0,0,0,0,0},
{0,3,6,7,0,9,0,0,0},
{0,8,0,0,0,1,0,5,4},
{6,5,0,0,9,0,3,0,0},
{0,0,1,0,0,4,0,8,0},
{0,0,0,0,1,2,5,3,0},
{2,0,3,0,0,0,0,7,9},
{0,4,0,9,0,0,0,6,0}
},
{
{1,7,0,0,6,3,4,0,0},
{0,0,0,0,0,2,1,0,0},
{2,3,0,0,0,0,6,0,5},
{0,2,9,1,7,4,3,0,0},
{3,0,0,0,0,5,0,1,4},
{5,1,0,0,0,0,0,2,0},
{0,8,0,0,0,9,5,0,1},
{0,0,0,5,0,0,0,3,0},
{0,0,0,4,0,0,2,0,0}
},
{
{2,0,8,5,4,1,0,3,6},
{1,0,0,0,7,0,0,0,0},
{5,0,3,0,9,2,7,1,4},
{0,0,0,0,0,4,0,0,0},
{0,1,0,0,0,0,3,0,0},
{0,8,2,0,0,5,1,4,0},
{0,0,4,0,0,0,0,0,0},
{0,0,0,0,0,3,4,0,0},
{7,3,0,4,6,0,5,0,0}
},
{
{0,9,0,0,0,5,0,0,0},
{0,3,8,0,0,4,0,5,9},
{1,7,5,3,9,6,4,0,0},
{6,0,0,0,0,0,0,0,3},
{0,0,2,9,6,3,0,0,0},
{0,0,0,7,0,0,0,0,6},
{0,0,0,0,3,0,0,0,2},
{0,6,7,5,0,0,9,0,1},
{8,2,0,0,0,0,0,6,0}
},
{
{7,0,0,0,0,0,3,0,2},
{0,3,2,0,0,0,6,4,5},
{0,0,0,2,0,0,0,0,0},
{6,7,0,0,2,5,0,8,9},
{5,2,1,0,0,9,0,0,0},
{0,8,0,0,0,0,0,0,0},
{0,5,0,4,0,2,0,0,6},
{0,4,0,6,0,8,0,3,0},
{2,0,6,0,0,3,0,5,0}
}
};
private void LosPuzzelOp()
{
final ProfBord bord=new ProfBord(opgave2);
try
{
bord.Dump();
}
catch (final RuntimeException e)
{
System.out.println("Het is een programmeerfout.");
}
System.out.println();
if (bord.LosOp())
{
System.out.println("Het is opgelost.");
}
else
{
System.out.println("Het is niet opgelost.");
}
System.out.println();
System.out.println("Aantal iteraties: "+bord.Geef_aIteraties());
System.out.println();
try
{
bord.Dump();
}
catch (final RuntimeException e)
{
System.out.println("Het is een programmeerfout.");
}
System.out.println();
System.out.println("Het is gedaan.");
}
private boolean Los100PuzzelsOp()
{
final long t1=System.currentTimeMillis();
for (int i=0;i<100;i++)
{
final ProfBord bord=new ProfBord(puzzels[i]);
if (!bord.LosOp())
{
return false;
}
}
final long t2=System.currentTimeMillis();
final long t3=t2-t1;
final long milliseconden=t3%1000;
final long t4=t3/1000;
final long seconden=t4%60;
final long t5=t4/60;
final long minuten=t5%60;
System.out.println(t3+" milliseconden.");
System.out.println(minuten+" minuten, "
+seconden+" seconden, "
+milliseconden+" milliseconden.");
return true;
}
public void init()
{
}
public void start()
{
if (Los100PuzzelsOp())
{
System.out.println("Het is gelukt.");
}
else
{
System.out.println("Het is mislukt.");
}
}
public void stop()
{
}
}Code: Select all
// File: BlockMove.h
// Date: 17 December 2006.
// Version: 197 microseconds on PowerMac G3/233 MHz.
//
// 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.
#pragma once
#include "void.h"
#include "z4.h"
__declspec(dllimport) extern pascal void BlockMove(pc_void srcPtr,
p_void destPtr,
z4 byteCount);Code: Select all
// File: bool.h
// Date: 17 December 2006.
// Version: 197 microseconds on PowerMac G3/233 MHz.
//
// 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.
#pragma once
typedef bool* p_bool;
typedef bool* p_bool;
typedef const p_bool cp_bool;
typedef const bool c_bool;
typedef c_bool* pc_bool;
typedef const pc_bool cpc_bool;
typedef bool& r_bool;
typedef p_bool& rp_bool;
typedef cp_bool& rcp_bool;
typedef c_bool& rc_bool;
typedef pc_bool& rpc_bool;
typedef cpc_bool& rcpc_bool;



