Advertisement
BrokkoliMan

inf asdfljk

Apr 18th, 2014
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.55 KB | None | 0 0
  1. import java.io.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6. //Tror det er en god ide å bruke GridLayout
  7. class SudokuBeholder{
  8.     private int antallLøsninger;
  9.     /**
  10.      * inneholder metodene:
  11.      *  settInn/insert
  12.      *  taUt/get
  13.      *  hentAntallLosninger/getSolutionCount
  14.      *  Lage en beholderklasse selv
  15.      */
  16.     //Løsninger skal legges inn i dette objekter av denne klassen
  17.     public void settInn(String s){
  18.         String[] s1 = s.split("\n");
  19.         int boksHøyde = Integer.parseInt(s1[0].replaceAll("//s", ""));
  20.         int boksBredde = Integer.parseInt(s1[1].replaceAll("//s", ""));
  21.         int brettHøyde = s1.length-2;
  22.        
  23.         int bokserPerRad = brettHøyde/boksBredde;
  24.         int bokserPerKolonne = brettHøyde/boksHøyde;
  25.         int antallBokser = bokserPerRad*bokserPerKolonne;
  26.        
  27.        
  28.         Brett brett1 = new Brett(brettHøyde,bokserPerRad, bokserPerKolonne);
  29.         for(int i = 0; i< antallBokser; i++){
  30.             brett1.settInnBoks(new Boks(boksHøyde,boksBredde));
  31.         }
  32.        
  33.         int counter = 0;
  34.         for(String s2: s1){
  35.             counter++;
  36.             if(counter > 2){
  37.                 //Første gang den kommer inn hit er counter 3
  38.                 //int antallbokserPerRad = s2.split(" ").length/boksBredde;
  39.                 for(String s3: s2.split(" ")){
  40.                     System.out.println(counter-2 + s3);
  41.                     int counter2 = 0;
  42.                     for(int i = 0; i<bokserPerRad; i++){
  43.                         for(int j = 0; j<bokserPerKolonne;j++){
  44.                             brett1.hentBoks(i+j);
  45.                         }
  46.                     }
  47.                 }
  48.             }
  49.         }
  50.        
  51.        
  52.     }
  53.     public void taUt(){}
  54.     public int hentAntallLøsninger(){return antallLøsninger;}
  55. }
  56.  
  57. class Rute{
  58.     public Rute neste;
  59.     private int nummer;
  60.     //Skal ha to subklasser, en for ruter som har en forhåndsutfylling og en for ruter der hvor du skal finne en verdi
  61.     //skal kalle metoder som skjekker om den kan ha en bestemt verdi i rutens kolonne-objekt, rad-objekt og boks-objekt.
  62.     //Skal ikke ha noen datastruktur utover sin egen verdi
  63.     //skal ha metode fyllUtRestenAvBrettet
  64.     //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
  65.     class Utfylt{
  66.    
  67.     }
  68.     class Tomme{
  69.         //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.
  70.         public boolean skjekkKolonne(){
  71.             return false;
  72.         }
  73.         public boolean skjekkRad(){
  74.             return false;
  75.         }
  76.         public boolean skjekkBoks(){
  77.             return false;
  78.         }
  79.     }
  80.     public void fyttUtRestenAvBrettet(){}
  81. }
  82. class Brett{
  83.     //Skal inneholde en todimensjonal tabell med pekere til alle rutene
  84.     Rute[][] brett;
  85.     int counter = 0;
  86.     int bokserPerRad;
  87.     int bokserPerKolonne;
  88.     Boks[] bokser;
  89.     Brett(int h,int r, int k){
  90.         brett = new Rute[h][h];
  91.         bokserPerRad = r;
  92.         bokserPerKolonne = k;
  93.         bokser = new Boks[r*k];
  94.     }
  95.     public void settInnBoks(Boks b){bokser[counter++] = b;}
  96.    
  97.     public Rute[][] hentBrett(){return brett;}
  98.     public Boks hentBoks(int nr){return bokser[nr];}
  99. }
  100.  
  101. //Skal ha et objekt av disse (tre) for hver rad, kolonne og boks på brettet.
  102. //De skal ha felles superklasse. Subklassene skal gjenbruke mest mulig av superklassens kode.
  103. class Boks{
  104.     //
  105.     private Rute[][] boks;
  106.     private int hoyde;
  107.     private int bredde;
  108.     Boks(int r, int c){
  109.         hoyde = r;
  110.         bredde = c;
  111.         boks = new Rute[r][c];
  112.     }
  113.     public Rute[][] hentBoks(){return boks;}
  114.     public void settInn(int tall){
  115.         for(int i = 0; i<hoyde; i++){
  116.             for(int j=0;j<bredde;i++){
  117.                 if(boks[i][j] == 0){
  118.                     System.out.println(boks[i][j]);
  119.                     boks[i][j] = tall;
  120.                 }
  121.             }
  122.         }
  123.     }
  124. }
  125. class Kolonne{
  126.     //
  127. }
  128. class Rad{
  129.     //
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement