This page is like a sequel to Notes on fumbling development using JavaFX. The idea is to make the article closer to the content.
To be honest, there was a lot of waste in designing the class, so I said that I updated the article when starting NumberPlaceSolver 2.0
.
The display has been completely eliminated.
I will not write the previous specifications here, so please read the original article.
Things that can be solved by Sudoku. At school free assignment.
Java (8) ... has been learned to some extent (inexperienced) As an IDE, instructor Onunume's intelliJ IDEA (ver.3.2) It seems that the UI has changed a little with the recent addition of Appde. The refactoring function was too strong, and it was itchy in various places when I used eclipse.
--The fx: id
specified in FXML gets angry if you do not specify @ FXML
immediately before in Controller. If you don't attach it in delimiter units, you will get angry.
--If you pass the array y to the array x like x = y
(tentative name), it will be passed by reference value (described later). x and y are names that refer to the same object.
--If you want to treat it as another new object, use the clone method and set x = y.clone ()
.
--This problem compares the reference value of an object with connecting another object containing the same string of type String with the conditional operator ==
(that is, str == new String (str)
). Reminds me that false
is returned for this. However, the String type itself seems to have some special specifications, so should we handle it with care?
--In Sudoku, in addition to rows and columns, 3x3 subRegions also prohibit duplication. I wrote a formula to follow this 3x3 group in order.
for (int i = 0; i < 9; i++) for (int j = 0; j < 9; j++) {
int idev3= i/3 , jdev3= j/3 ;
int x= idev3 * 3 + jdev3 ,
y= i % 3 * 3 + j % 3 ;
subRegion[x][y] = cell[i][j]
//Since the inverse function becomes a similar expression (I forgot the name),[i][j]When[x][y]Even if it is reversed, it serves the purpose.
// subRegion[i][j] = cell[x][y];
}
--About length
of the two-dimensional array x = new Object [i] [j]. --
x.length is ʻi
--x [0] .length
is j
. However, if ʻi == 0, it throws ʻArrayIndexOutOfBoundsException
.
In Java, pointers in C language are called "reference variables" or "reference values".
I want to make each region store the reference value so that it can be processed with only the data group of the cell for one table. In other words, I want to change the data of cells existing in the table by the operation from the region.
The following is an image diagram that does not connect
I wrote it at the beginning, and if you read the contents, you will understand it, and since you should have written it in the profile, you can understand it,
I'm a beginner of crunchy. No matter what you do, I think it will be a poor one, so please forgive me. (Comments such as criticism and improvement measures are welcome.) Even beginners of the same class should not use this as a reference. Even if you use it as a reference, let's get the opinion of the educator.
[Same location in the original article](https://qiita.com/UFOnian/items/67cd4f6f8c71e178f06b#%E5%90%84%E3%82%AF%E3%83%A9%E3%82%B9%E3%81 % AE% E8% A8% AD% E8% A8% 88% E8% AA% AC% E6% 98% 8E% E3% 81% AE% E5% 89% 8D% E6% 9B% B8% E3% 81% 8D ) To the back, preferably as a failure story or as a comparison target I don't want you to read it (I want to write it so that I can understand it without reading it (desire))
So far, the part that seems to be essential although it is the same as the original article.
Create an improved version based on the design already written.
What you want to include
--Class design review **: ** Delete methods that seem to be useless. --Temporary placement with multiple threads **: ** Increase processing speed by performing temporary placement processing with multiple threads --Prepared a static board to manage the entire data **: ** Share "denyed" information with all threads