sudoku/0000755000076500007650000000000010761042777011111 5ustar mattmattsudoku/Board.class0000644000076500007650000000422310761042776013167 0ustar mattmatt1n C% DEF G H IJ K L M N O P QRS C T UV WX Y Z [\] G^SIZEI ConstantValue board[[LCell;(Ljava/lang/String;)VCodeLineNumberTable Exceptions_get (II)LCell;set(IIIZ)VsetGuess(III)V setGuessS(IILjava/lang/String;)VgetGuess(II)I getGuessS(II)Ljava/lang/String;toString()Ljava/lang/String;toStringWithGuessesreset()VlockAllGuessesmain([Ljava/lang/String;)V` SourceFile Board.java &< $%java/util/Scanner java/io/File &' &a bcCell &1 &d .e 0f 2' 4c 69java/lang/StringBuilder gh gi 89 jk l< m<Boarda.datjava/lang/Objectjava/io/IOExceptionjava/lang/Exception(Ljava/io/File;)VnextInt()I(II)V(IZ)V(I)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;isLocked()Z clearGuess lockGuess! !"#$% &'(z**  YY+M,W> O6 ?,6*2 Y S*2 Y S)6   %-7=BZmsy*+,-(! *22)$./(+*22 ) *+01() *22 ) / 023() *22-) 4 545($ *22):67($ *22)@89(TL= J> (Y+*22LػY+L+)"EF HJ2H8LLFRN:9(WL= M> +Y+*22LջY+L+)"ST VX5V;ZOTU\;<(f6< 0= "*22*22ބб)bdfh)d/b5l=<(f6< 0= "*22*22ބб)prtv)r/p5z>?(' YL) ~ *@ABsudoku/Cell.class0000644000076500007650000000604310761042776013021 0ustar mattmatt1 1^ 0_ 0`a ^ 0b 0c 0d e fg fhi jk lm n 0o 0pq ^ rs t u fv 0w fx 0y fz 0{ | f} ~ f  xIynumsLjava/util/List; Signature%Ljava/util/List;lockedZguess(II)VCodeLineNumberTable(III)VisLocked()Z setLocked(Z)Vget()IsetGuess(I)V setGuessS(Ljava/lang/String;)VgetGuess getGuessS()Ljava/lang/String; clearGuess()Vset(IZ)V lockGuessgetNums()Ljava/util/List;'()Ljava/util/List;sizeremovegetXgetYtoString(Z)Ljava/lang/String; SourceFile Cell.java <O 23 43java/util/ArrayList 56 9: ;3  Ejava/lang/Integer F? EF KFjava/lang/StringBuilder  ZM O WH PQ VF AB <H W {  B  } locked = , nums.size() = nums =  (x,y) = (,)Celljava/lang/ObjectvalueOf(I)Ljava/lang/Integer;java/util/Listadd(Ljava/lang/Object;)Z(I)Ljava/lang/Object;intValuejava/lang/StringequalsparseInt(Ljava/lang/String;)Iappend(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;clear(ILjava/lang/Object;)V-(Ljava/lang/Object;)Ljava/lang/StringBuilder;iterator()Ljava/util/Iterator;java/util/IteratorhasNextnext()Ljava/lang/Object;(Z)Ljava/lang/StringBuilder;!01234356789:;3<=>J****Y****> * W?2    #(-5CI<@>A****Y***** W*?.    #(-; @!AB>*?%CD>"*? *+EF>)*  ?/GH>"*? 45IJ>>+ * *+?: ;=>KF>+* **?CLM>?#*<Y? JKNO>"*? PQPQ>g7"** W*** ?WY Z[#`(a6cRO>& **? g hST>*?l7UVF>" *?qWH>:** Y W?xyzXF>*?~YF>*?ZM>A)*"Y* !?Z[>"M*#N-$*-% :Y,!&MӻY,'MY(*)*+**,,*-*.*/?!=Q\]sudoku/CellRenderer.class0000644000076500007650000000243110761042776014505 0ustar mattmatt1_ ) * + , -. /0 1 2 /34 56 7 89: ; < = >? >@ >ABCDLOCKEDLjava/awt/Color;UNKNOWNGUESSboardLBoard; (LBoard;)VCodeLineNumberTablegetTableCellRendererComponent@(Ljavax/swing/JTable;Ljava/lang/Object;ZZII)Ljava/awt/Component;()V SourceFileCellRenderer.java &  EF GHI JKL MN  OP QR?S TU   java/awt/Font Monospaced V WX YZ[ \ ] ^ CellRendererjavax/swing/JLabel#javax/swing/table/TableCellRenderer setOpaque(Z)VsetHorizontalAlignment(I)VBoardget (II)LCell;CellisLocked()Z setBackground(Ljava/awt/Color;)V getGuessS()Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Z(Ljava/lang/String;II)VsetFont(Ljava/awt/Font;)VsetText(Ljava/lang/String;)Vjava/awt/ColorGRAYREDGREEN! !E***+**"  #$!X*: *!  *  * *Y0* *"& ( *,0,266=9M;V=%&!3  " '(sudoku/Gui$1.class0000644000076500007650000000060710761042776013013 0ustar mattmatt1  ()VCodeLineNumberTablerun SourceFileGui.javaEnclosingMethod   Gui$1 InnerClassesjava/lang/Objectjava/lang/RunnableGuimain([Ljava/lang/String;)V access$100 *       sudoku/Gui$MyTableModel.class0000644000076500007650000000141210761042776015164 0ustar mattmatt11       !$this$0LGui;(LGui;)VCodeLineNumberTablegetColumnCount()I getRowCount getValueAt(II)Ljava/lang/Object;isCellEditable(II)Z SourceFileGui.java %& '() *+ ,-. /0Gui$MyTableModel MyTableModel InnerClasses$javax/swing/table/AbstractTableModel()VGui access$000(LGui;)LBoard;Board getGuessS(II)Ljava/lang/String;get (II)LCell;CellisLocked()Z    " *+*P  S  W % *^ 0*h# "sudoku/Gui.class0000644000076500007650000001066310761042776012671 0ustar mattmatt1 +} +~  X + + + + +  +   +      + + & & & + + & + & & & 3  6 8 6 < < 8  I I L L L  I MyTableModel InnerClasses START_FILELjava/lang/String; ConstantValueDEBUGZboardLBoard; mainTableLjavax/swing/JTable; mainParentLjavax/swing/JFrame; dataModel&Ljavax/swing/table/AbstractTableModel;(Ljavax/swing/JFrame;)VCodeLineNumberTable loadNewFile(Ljava/lang/String;)Vreset()VcreateAndShowGUImain([Ljava/lang/String;)V createMenuBar7(Ljava/awt/event/ActionListener;)Ljavax/swing/JMenuBar;actionPerformed(Ljava/awt/event/ActionEvent;)V access$000(LGui;)LBoard; access$100 SourceFileGui.java qp abjava/awt/BorderLayout ip i _` ef start.sud mnBoard in pGui$MyTableModel i ghjavax/swing/JTable i cdjava/awt/Dimension i java/lang/ObjectNumComboEditor i  CellRenderer i opjava/io/IOException p  p pjavax/swing/JFrameSudoku Gui ij tu p Gui$1 javax/swing/JMenuBarjavax/swing/JMenuFile javax/swing/JMenuItemOpen ResetVerify Solution Show SolutionExitHelpAbout  Solver javax/swing/JFileChooser     By Matt Chu (matt.chu@gmail.com)About Sudoku v.01   Correct! Congratulations!Incorrect! Keep trying!Your solution is:javax/swing/JPaneljava/awt/event/ActionListener(Ljava/awt/LayoutManager;)V removeAll(LGui;)V!(Ljavax/swing/table/TableModel;)V(II)VsetSize(Ljava/awt/Dimension;)Vadd*(Ljava/awt/Component;)Ljava/awt/Component; setRowHeight(I)V(Ljavax/swing/JTable;LBoard;)VsetDefaultEditor7(Ljava/lang/Class;Ljavax/swing/table/TableCellEditor;)V (LBoard;)VsetDefaultRenderer9(Ljava/lang/Class;Ljavax/swing/table/TableCellRenderer;)VprintStackTracejava/lang/Systemexit$javax/swing/table/AbstractTableModelfireTableStructureChangedvalidatesetDefaultCloseOperation setResizable(Z)V setOpaquesetContentPane(Ljava/awt/Container;)V setJMenuBar(Ljavax/swing/JMenuBar;)Vpack setVisiblejavax/swing/SwingUtilities invokeLater(Ljava/lang/Runnable;)V((Ljavax/swing/JMenu;)Ljavax/swing/JMenu;addActionListener"(Ljava/awt/event/ActionListener;)V0(Ljavax/swing/JMenuItem;)Ljavax/swing/JMenuItem;java/awt/event/ActionEventgetActionCommand()Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)ZsolveshowOpenDialog(Ljava/awt/Component;)IgetSelectedFile()Ljava/io/File; java/io/FilegetAbsolutePathjavax/swing/JOptionPaneshowMessageDialog<(Ljava/awt/Component;Ljava/lang/Object;Ljava/lang/String;I)Vcheck (LBoard;)Z!+XY\]^_`abcdefgh ijkD*Y**+* l "$%mnk* Y+ * * Y**Y**Y,,**W*<*Y***Y** M,!" l>+ -/0+1?3H5Q7j;?EACDFopk7*#*$*%lKLMN qpku9&Y'(K*)**+Y*,L+-*+.*+/0*1*2l* s tvyz"{'}/38 rsk' 3Y45l  tuk6Y7L8Y9:M+,;WN-*?,-@WN-*?,-@WN-*?,-@WN-*?,-@WN-*?,-@W8YE:M+,;WN-*?,-@W+lb"'-7<BLQWaflv{vwkP+GMD,H "A,H *C,H)*#IY*JN-K*$*%=,H,LYMN-*N6-O:*P PF,H*QRS8B,H/IY*JN-*T6*UVWSlj%.5AFMQT]eotzxyk*lzpkl{|[ +Z3sudoku/NumComboEditor.class0000644000076500007650000000365110761042776015032 0ustar mattmatt1n 5 67 8 9 :; 5 <= 5 >? @ AB C D EF GH EI JF KL MN OPQRSEDITLjava/lang/String; ConstantValuecomboBoxLjavax/swing/JComboBox; currentValueparentLjavax/swing/JTable;boardLBoard;(Ljavax/swing/JTable;LBoard;)VCodeLineNumberTableactionPerformed(Ljava/awt/event/ActionEvent;)VgetCellEditorValue()Ljava/lang/Object;getTableCellEditorComponent?(Ljavax/swing/JTable;Ljava/lang/Object;ZII)Ljava/awt/Component; SourceFileNumComboEditor.java )T "#? $ %& '(javax/swing/JComboBox UVjava/lang/StringBuilder WX WY Z[edit \] ^_` abc de fgh i0java/lang/Stringj kl mTNumComboEditorjavax/swing/AbstractCellEditor!javax/swing/table/TableCellEditorjava/awt/event/ActionListener()VaddItem(Ljava/lang/Object;)Vappend(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;setActionCommand(Ljava/lang/String;)VaddActionListener"(Ljava/awt/event/ActionListener;)Vjavax/swing/JTablegetSelectionModel"()Ljavax/swing/ListSelectionModel;javax/swing/ListSelectionModelgetLeadSelectionIndex()IgetColumnModel&()Ljavax/swing/table/TableColumnModel;"javax/swing/table/TableColumnModelgetSelectedItemBoard setGuessS(IILjava/lang/String;)VfireEditingStopped! !"#$ %&'()*+q******Y* > #* Y    ****+*,,> $-5OU!^"f$k%p&-.+k?*=*>*****,. /1-3:5>6/0+*,:12+) *,*, CD34sudoku/Solver.class0000644000076500007650000000600010761042777013406 0ustar mattmatt1 +EF E %G %H %I J K LM LN OP OQR S LTU E %V T LW WX Y Z %[ \ ] ^ _ %` abc d ef ghi %jk gl %m gnounknownsLjava/util/List; SignatureLjava/util/List;boardLBoard;countI (LBoard;)VCodeLineNumberTablesolve(Z)V*(Ljava/util/List;ILjava/util/LinkedList;)ZG(Ljava/util/List;ILjava/util/LinkedList;)Zcheck (LBoard;)Z isImpossiblemain([Ljava/lang/String;)V Exceptionsp SourceFile Solver.java 4qjava/util/ArrayList ,- 01 23 rs tuv wx yz{ |u }~Cell  java/util/LinkedList 8: rjava/lang/Integer <= >= qBoard../data/hard-001.sud 4  Solver 45 89 java/lang/Objectjava/lang/Exception()Vget (II)LCell;isLocked()Zjava/util/Listadd(Ljava/lang/Object;)Ziterator()Ljava/util/Iterator;java/util/IteratorhasNextnext()Ljava/lang/Object;getNums()Ljava/util/List;size()I(I)Ljava/lang/Object;intValueset(IZ)VgetGuessvalueOf(I)Ljava/lang/Integer;addLast(Ljava/lang/Object;)VsetGuess(I)V clearGuess(Ljava/lang/String;)Vjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintprintln!%+,-./0123456W**Y***+= 3> %+*+ Wۄͱ72    &.:JPV!896|** M, ",  N*Y-h*YM**,W>,%* ,ٱ7* ()"+7.</D0O3Y5u3{78:6+I**2+ :   :-*Y`+  : N :+ ***+`-6+ 7:> AD3FBHDLNMPRzTUWXZ].;<=6B= 0>6 +`>-= 0>6 +`>-= U> G66`*6`+`6-7j !'/5=?IV\djrz}>=6: M> U6 ,T6 0+6,d3,dTτ> U6 ,T6 0+6,d3,dTτ> z6 j6 ,T6`D6`1+6,d3,dT̄7! ",8ALSY_g| &,28 ?@6k3LM Y!"L#+$%Y+&M#'(,)#+*7& &+2ABCDsudoku/start.sud0000644000076500007650000000024410761042777012763 0ustar mattmatt3 0 6 0 0 0 0 0 1 0 0 0 0 6 5 1 0 0 0 1 0 7 0 0 0 6 0 2 6 2 0 3 0 5 0 9 4 0 0 3 0 0 0 2 0 0 4 8 0 9 0 7 0 3 6 9 0 6 0 0 0 4 0 8 0 0 0 7 9 4 0 0 0 0 5 0 0 0 0 0 7 0