public void PlaceraSiffra_KontrollTabortKandidaterIRutaMedPlaceradSiffra() { //Setup int rad = 2; int kolumn = 2; int siffra = 5; SudokuPussel pussel = SkapaEttPusselOchPlaceraEnSiffra(rad, kolumn, siffra); bool korrekt = true; var kandidater = from k in pussel.AllaKandidater join s in pussel.SpelPlan on k.SudokuRutId equals s.Id where s.Rad == rad && s.Kolumn == kolumn select new { möjlig = k.Möjlig, }; //Utför foreach (var kandidat in kandidater) { if (kandidat.möjlig) { korrekt = false; } } // Kontroll Assert.AreEqual(true, korrekt); }
private SudokuPussel SkapaEttPusselOchPlaceraEnSiffra(int rad, int kolumn, int siffra) { SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); pussel.PlaceraSiffra(rad, kolumn, siffra); return(pussel); }
public void PlaceraSiffra_KontrollSiffraPlacerasRätt() { //Setup int rad = 2; int kolumn = 2; int siffra = 5; SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); bool korrekt = false; //Utför pussel.PlaceraSiffra(rad, kolumn, siffra); foreach (SudokuRuta ruta in pussel.SpelPlan) { if (ruta.Rad == rad && ruta.Kolumn == kolumn && ruta.Siffra == siffra) { korrekt = true; } if ((ruta.Rad != rad || ruta.Kolumn != kolumn) && ruta.Siffra != 0) { korrekt = false; break; } } //Kontroll Assert.AreEqual(true, korrekt); }
public void PlaceraSiffra_KontrollAvKandidaterIRutorSomIntePåverkasAvPlaceradSiffra() { //Setup int rad = 3; int kolumn = 1; int box = 3; int siffra = 7; SudokuPussel pussel = SkapaEttPusselOchPlaceraEnSiffra(rad, kolumn, siffra); bool korrekt = true; var kandidater = from k in pussel.AllaKandidater join s in pussel.SpelPlan on k.SudokuRutId equals s.Id where s.Rad != rad && s.Kolumn != kolumn && s.Box != box select new { möjlig = k.Möjlig }; //Utför foreach (var kandidat in kandidater) { if (!kandidat.möjlig) { korrekt = false; } } //Kontroll Assert.AreEqual(true, korrekt); }
private SudokuPussel SkapaEttPusselMedSingel_I_Box() { SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); pussel.PlaceraSiffra(0, 0, 1); pussel.PlaceraSiffra(7, 1, 1); pussel.PlaceraSiffra(5, 2, 4); pussel.PlaceraSiffra(3, 2, 5); return(pussel); }
private SudokuPussel SkapaEttPusselMedSingel_I_Kolumn() { SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); pussel.PlaceraSiffra(1, 4, 7); pussel.PlaceraSiffra(8, 3, 7); pussel.PlaceraSiffra(5, 5, 4); pussel.PlaceraSiffra(3, 5, 5); return(pussel); }
private SudokuPussel SkapaEttPusselMedSingel_I_Rad() { SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); pussel.PlaceraSiffra(0, 0, 3); pussel.PlaceraSiffra(1, 3, 3); pussel.PlaceraSiffra(2, 7, 4); pussel.PlaceraSiffra(2, 8, 5); return(pussel); }
public void Start_MedFelaktigtSudoku() { //Setup SudokuPussel pussel = SkapaEttFelaktigtSudoku(); bool resultat; //Utför resultat = pussel.Start(); //kontroll Assert.AreEqual(false, resultat); }
public void Start_MedKorrektSudoku() { //Setup SudokuPussel pussel = SkapaEttKorrektSudoku(); bool resultat; //Utför resultat = pussel.Start(); //kontroll Assert.AreEqual(true, resultat); }
public void Det_Finns_Ingen_Singel_I_Rad_Return_Tom_Lista() { //SetUp SudokuPussel pussel = new SudokuPussel(new Storlek(3, 3)); List <SudokuSökResultat> resultat = new List <SudokuSökResultat>(); //Utför SudokuLösare.FinnsDetSingelIRad(pussel, resultat); //Kontroll Assert.AreEqual(0, resultat.Count()); }
private SudokuPussel SkapaEttPusselMedSingelKandidat() { SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); pussel.PlaceraSiffra(0, 0, 1); pussel.PlaceraSiffra(0, 1, 2); pussel.PlaceraSiffra(0, 2, 3); pussel.PlaceraSiffra(0, 4, 5); pussel.PlaceraSiffra(0, 5, 6); pussel.PlaceraSiffra(0, 6, 7); pussel.PlaceraSiffra(0, 7, 8); pussel.PlaceraSiffra(1, 8, 9); return(pussel); }
public void PlaceraSiffra_PlaceraSiffraTomBox() { //Setup int rad = 2; int kolumn = 2; int siffra = 5; SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); bool returvärde; //Utför returvärde = pussel.PlaceraSiffra(rad, kolumn, siffra); //Kontroll Assert.AreEqual(true, returvärde); }
public void Det_Finns_Ingen_Singel_I_Rad() { //Setup SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); bool svar; //Utför pussel.PlaceraSiffra(0, 0, 3); pussel.PlaceraSiffra(1, 3, 3); pussel.PlaceraSiffra(2, 7, 4); svar = SudokuLösare.FinnsDetSingelIRad(pussel); //Kontroll Assert.AreEqual(false, svar); }
public static bool FinnsDetSingelKandidater(SudokuPussel pussel, List <SudokuSökResultat> resultat) { var sudokurutor = (from sudokuruta in pussel.SpelPlan join kandidat in pussel.MöjligaKandidater on sudokuruta.Id equals kandidat.SudokuRutId group kandidat by new { sudokuruta.Rad, sudokuruta.Kolumn } into ruta select ruta).Where(x => x.Count() == 1); foreach (var ruta in sudokurutor) { foreach (var info in ruta) { resultat.Add(new SudokuSökResultat { Rad = ruta.Key.Rad, Kolumn = ruta.Key.Kolumn, Siffra = info.Siffra, Teknik = SudokuTekniker.SingelKandidater }); } } return(sudokurutor.Count() > 0); }
public void PlaceraSiffra_KontrollTabortKandidaterIRutorSomPåverkasavPlaceradSiffra() { //Setup int rad = 3; int kolumn = 1; int box = 3; int siffra = 7; SudokuPussel pussel = SkapaEttPusselOchPlaceraEnSiffra(rad, kolumn, siffra); bool korrekt = true; var kandidater = from k in pussel.AllaKandidater join s in pussel.SpelPlan on k.SudokuRutId equals s.Id where s.Rad == rad || s.Kolumn == kolumn || s.Box == box select new { rad = s.Rad, kolumn = s.Kolumn, möjlig = k.Möjlig, siffra = k.Siffra }; //Utför foreach (var kandidat in kandidater) { if (kandidat.rad == rad && kandidat.kolumn == kolumn) { continue; } if (kandidat.siffra == siffra) { if (kandidat.möjlig) { korrekt = false; } } else { if (!kandidat.möjlig) { korrekt = false; } } } Assert.AreEqual(true, korrekt); }
public void BeräknaBox_KontrolleraSvar() { // Setup int rad = 5; int kolumn = 5; int förväntadBox = 4; SudokuPussel pussel = new SudokuPussel(new Sudoku.Struct.Storlek(3, 3)); List <SudokuRuta> spelPlan = pussel.SpelPlan; int box = -1; //utför foreach (SudokuRuta ruta in spelPlan) { if (ruta.Rad == rad && ruta.Kolumn == kolumn) { box = ruta.Box; } } Assert.AreEqual(förväntadBox, box, "Något går fel i beräkningen av boxar"); }
private SudokuPussel SkapaEttFelaktigtSudoku() { SudokuPussel sudoku = new SudokuPussel(new Storlek(3, 3)); List <SudokuSökResultat> iFylladrutor = new List <SudokuSökResultat>(); iFylladrutor.Add(new SudokuSökResultat() { Rad = 0, Kolumn = 4, Siffra = 8 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 1, Kolumn = 3, Siffra = 1 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 1, Kolumn = 8, Siffra = 9 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 2, Kolumn = 1, Siffra = 1 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 2, Kolumn = 8, Siffra = 3 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 3, Kolumn = 1, Siffra = 6 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 3, Kolumn = 3, Siffra = 2 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 3, Kolumn = 5, Siffra = 2 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 4, Kolumn = 0, Siffra = 3 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 4, Kolumn = 2, Siffra = 9 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 4, Kolumn = 4, Siffra = 5 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 4, Kolumn = 7, Siffra = 6 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 4, Kolumn = 8, Siffra = 7 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 5, Kolumn = 1, Siffra = 5 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 5, Kolumn = 6, Siffra = 2 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 5, Kolumn = 8, Siffra = 4 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 6, Kolumn = 1, Siffra = 3 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 6, Kolumn = 2, Siffra = 6 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 6, Kolumn = 5, Siffra = 5 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 6, Kolumn = 7, Siffra = 9 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 6, Kolumn = 8, Siffra = 8 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 7, Kolumn = 1, Siffra = 9 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 7, Kolumn = 4, Siffra = 3 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 7, Kolumn = 8, Siffra = 5 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 8, Kolumn = 0, Siffra = 7 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 8, Kolumn = 4, Siffra = 9 }); iFylladrutor.Add(new SudokuSökResultat() { Rad = 8, Kolumn = 7, Siffra = 1 }); sudoku.PlaceraSiffra(iFylladrutor); return(sudoku); }
public static bool FinnsDetSingelKandidater(SudokuPussel pussel) { List <SudokuSökResultat> sökresultat = new List <SudokuSökResultat>(); return(FinnsDetSingelKandidater(pussel, sökresultat)); }