Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- //Tror det er en god ide å bruke GridLayout
- class SudokuBeholder{
- private int antallLøsninger;
- /**
- * inneholder metodene:
- * settInn/insert
- * taUt/get
- * hentAntallLosninger/getSolutionCount
- * Lage en beholderklasse selv
- */
- //Løsninger skal legges inn i dette objekter av denne klassen
- public void settInn(String s){
- String[] s1 = s.split("\n");
- int boksHøyde = Integer.parseInt(s1[0].replaceAll("//s", ""));
- int boksBredde = Integer.parseInt(s1[1].replaceAll("//s", ""));
- int brettHøyde = s1.length-2;
- int bokserPerRad = brettHøyde/boksBredde;
- int bokserPerKolonne = brettHøyde/boksHøyde;
- int antallBokser = bokserPerRad*bokserPerKolonne;
- Brett brett1 = new Brett(brettHøyde,bokserPerRad, bokserPerKolonne);
- for(int i = 0; i< antallBokser; i++){
- brett1.settInnBoks(new Boks(boksHøyde,boksBredde));
- }
- int counter = 0;
- for(String s2: s1){
- counter++;
- if(counter > 2){
- //Første gang den kommer inn hit er counter 3
- //int antallbokserPerRad = s2.split(" ").length/boksBredde;
- for(String s3: s2.split(" ")){
- System.out.println(counter-2 + s3);
- int counter2 = 0;
- for(int i = 0; i<bokserPerRad; i++){
- for(int j = 0; j<bokserPerKolonne;j++){
- brett1.hentBoks(i+j);
- }
- }
- }
- }
- }
- }
- public void taUt(){}
- public int hentAntallLøsninger(){return antallLøsninger;}
- }
- class Rute{
- public Rute neste;
- private int nummer;
- //Skal ha to subklasser, en for ruter som har en forhåndsutfylling og en for ruter der hvor du skal finne en verdi
- //skal kalle metoder som skjekker om den kan ha en bestemt verdi i rutens kolonne-objekt, rad-objekt og boks-objekt.
- //Skal ikke ha noen datastruktur utover sin egen verdi
- //skal ha metode fyllUtRestenAvBrettet
- //Denne metoden skjekker alle mulige tall for å se om de passer, når den finner ett tall kaller den metoden i neste rute. Dette gjøres vanrett og begynner som regel øverst til venstre
- class Utfylt{
- }
- class Tomme{
- //Lurer på om gruppelæreren sa at disse burde være klasser, og utenfor tomme og ufylt, men jeg føler foreløpig at det logisk å ha dem her.
- public boolean skjekkKolonne(){
- return false;
- }
- public boolean skjekkRad(){
- return false;
- }
- public boolean skjekkBoks(){
- return false;
- }
- }
- public void fyttUtRestenAvBrettet(){}
- }
- class Brett{
- //Skal inneholde en todimensjonal tabell med pekere til alle rutene
- Rute[][] brett;
- int counter = 0;
- int bokserPerRad;
- int bokserPerKolonne;
- Boks[] bokser;
- Brett(int h,int r, int k){
- brett = new Rute[h][h];
- bokserPerRad = r;
- bokserPerKolonne = k;
- bokser = new Boks[r*k];
- }
- public void settInnBoks(Boks b){bokser[counter++] = b;}
- public Rute[][] hentBrett(){return brett;}
- public Boks hentBoks(int nr){return bokser[nr];}
- }
- //Skal ha et objekt av disse (tre) for hver rad, kolonne og boks på brettet.
- //De skal ha felles superklasse. Subklassene skal gjenbruke mest mulig av superklassens kode.
- class Boks{
- //
- private Rute[][] boks;
- private int hoyde;
- private int bredde;
- Boks(int r, int c){
- hoyde = r;
- bredde = c;
- boks = new Rute[r][c];
- }
- public Rute[][] hentBoks(){return boks;}
- public void settInn(int tall){
- for(int i = 0; i<hoyde; i++){
- for(int j=0;j<bredde;i++){
- if(boks[i][j] == 0){
- System.out.println(boks[i][j]);
- boks[i][j] = tall;
- }
- }
- }
- }
- }
- class Kolonne{
- //
- }
- class Rad{
- //
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement