fdai6499
2 years ago
5 changed files with 371 additions and 5 deletions
-
158src/test/java/GameFieldTest.java
-
76src/test/java/NotesTest.java
-
56sudokuExample/src/GameField.java
-
1sudokuExample/src/Main.java
-
85sudokuExample/src/Notes.java
@ -0,0 +1,158 @@ |
|||||
|
import org.junit.jupiter.api.Test; |
||||
|
|
||||
|
import static org.junit.jupiter.api.Assertions.*; |
||||
|
|
||||
|
class GameFieldTest { |
||||
|
|
||||
|
@Test |
||||
|
void setValue() { |
||||
|
|
||||
|
GameField gameField = new GameField(360); |
||||
|
|
||||
|
for (int i = 0, count = 1; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++, count += 1) { |
||||
|
|
||||
|
gameField.setValue(i, j, count%10); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int i = 0, count = 1; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++, count += 1) { |
||||
|
String text = gameField.getLabelField()[j][i].getText(); |
||||
|
if (!(Integer.valueOf(text) == count%10)) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Test |
||||
|
void getValue() { |
||||
|
|
||||
|
GameField gameField = new GameField(360); |
||||
|
|
||||
|
for (int i = 0, count = 1; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++, count += 1) { |
||||
|
|
||||
|
gameField.setValue(i, j, count%10); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int i = 0, count = 1; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++, count += 1) { |
||||
|
int value = gameField.getValue(i, j); |
||||
|
if (!(value == count%10)) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Test |
||||
|
void setHint() { |
||||
|
|
||||
|
GameField gameField = new GameField(360); |
||||
|
|
||||
|
for (int i = 0; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++) { |
||||
|
|
||||
|
for (int k = 1; k < 10; k++) { |
||||
|
gameField.setHint(i, j, k); |
||||
|
} |
||||
|
|
||||
|
Notes notes = gameField.getNoteField()[i][j]; |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int k = 0, count = 1; k < 3; k++) { |
||||
|
for (int l = 0; l < 3; l++, count += 1) { |
||||
|
boolean visible = notes.getNotes()[l][k].isVisible(); |
||||
|
if (!visible) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Test |
||||
|
void unsetHint() { |
||||
|
|
||||
|
GameField gameField = new GameField(360); |
||||
|
|
||||
|
for (int i = 0; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++) { |
||||
|
|
||||
|
for (int k = 1; k < 10; k++) { |
||||
|
gameField.setHint(i, j, k); |
||||
|
} |
||||
|
|
||||
|
for (int k = 1; k < 10; k++) { |
||||
|
gameField.unsetHint(i, j, k); |
||||
|
} |
||||
|
|
||||
|
Notes notes = gameField.getNoteField()[i][j]; |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int k = 0, count = 1; k < 3; k++) { |
||||
|
for (int l = 0; l < 3; l++, count += 1) { |
||||
|
boolean visible = notes.getNotes()[l][k].isVisible(); |
||||
|
if (visible) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Test |
||||
|
void unsetAllHintsFromField() { |
||||
|
|
||||
|
GameField gameField = new GameField(360); |
||||
|
|
||||
|
for (int i = 0; i < 9; i++) { |
||||
|
for (int j = 0; j < 9; j++) { |
||||
|
|
||||
|
for (int k = 1; k < 10; k++) { |
||||
|
gameField.setHint(i, j, k); |
||||
|
} |
||||
|
|
||||
|
gameField.unsetAllHintsFromField(i, j); |
||||
|
|
||||
|
Notes notes = gameField.getNoteField()[i][j]; |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int k = 0, count = 1; k < 3; k++) { |
||||
|
for (int l = 0; l < 3; l++, count += 1) { |
||||
|
boolean visible = notes.getNotes()[l][k].isVisible(); |
||||
|
if (visible) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,76 @@ |
|||||
|
import org.junit.jupiter.api.Test; |
||||
|
|
||||
|
import javax.swing.*; |
||||
|
|
||||
|
import static org.junit.jupiter.api.Assertions.*; |
||||
|
|
||||
|
class NotesTest { |
||||
|
|
||||
|
@Test |
||||
|
void setHint() { |
||||
|
|
||||
|
Notes notes = new Notes(50); |
||||
|
|
||||
|
for (int i = 1; i < 10; i++) { |
||||
|
notes.setHint(i); |
||||
|
} |
||||
|
|
||||
|
boolean a = true; |
||||
|
for (int i = 0, count = 1; i < 3; i++) { |
||||
|
for (int j = 0; j < 3; j++, count += 1) { |
||||
|
JLabel jLabel = notes.getNotes()[j][i]; |
||||
|
String text = jLabel.getText(); |
||||
|
if (!text.equals(String.valueOf(count))) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
} |
||||
|
|
||||
|
@Test |
||||
|
void isSet() { |
||||
|
|
||||
|
Notes notes = new Notes(50); |
||||
|
|
||||
|
for (int i = 1; i < 10; i++) { |
||||
|
notes.setHint(i); |
||||
|
} |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int i = 1; i < 10; i++) { |
||||
|
if (!notes.isSet(i)) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Test |
||||
|
void unsetHint() { |
||||
|
|
||||
|
Notes notes = new Notes(50); |
||||
|
|
||||
|
for (int i = 1; i < 10; i++) { |
||||
|
notes.setHint(i); |
||||
|
} |
||||
|
|
||||
|
boolean a = true; |
||||
|
|
||||
|
for (int i = 1; i < 10; i++) { |
||||
|
notes.unsetHint(i); |
||||
|
} |
||||
|
|
||||
|
for (int i = 1; i < 10; i++) { |
||||
|
if (notes.isSet(i)) { |
||||
|
a = false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertTrue(a); |
||||
|
} |
||||
|
} |
@ -0,0 +1,85 @@ |
|||||
|
import javax.swing.*; |
||||
|
import java.awt.*; |
||||
|
|
||||
|
public class Notes extends JPanel { |
||||
|
|
||||
|
private JLabel[][] notes; |
||||
|
|
||||
|
public JLabel[][] getNotes() { |
||||
|
return notes; |
||||
|
} |
||||
|
|
||||
|
public Notes(int size) { |
||||
|
|
||||
|
setLayout(null); |
||||
|
|
||||
|
int fontSize = 11; |
||||
|
|
||||
|
this.setBounds(0, 0, size, size); |
||||
|
|
||||
|
notes = new JLabel[3][]; |
||||
|
this.setVisible(false); |
||||
|
|
||||
|
for (int i = 0; i < 3; i++) { |
||||
|
|
||||
|
notes[i] = new JLabel[3]; |
||||
|
|
||||
|
for (int j = 0; j < 3; j++) { |
||||
|
|
||||
|
notes[i][j] = new JLabel("0", SwingConstants.CENTER); |
||||
|
notes[i][j].setBounds(2+i*fontSize, 2+j*fontSize, fontSize, fontSize); |
||||
|
notes[i][j].setFont(new Font("Times new Roman", Font.BOLD, fontSize)); |
||||
|
notes[i][j].setVisible(false); |
||||
|
this.add(notes[i][j]); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
for (int i = 0, count = 1; i < 3; i++) { |
||||
|
for (int j = 0; j < 3; j++) { |
||||
|
notes[j][i].setText(String.valueOf(count++)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* shows the value on the notes board |
||||
|
* @param l will represent the value on the sudoku |
||||
|
*/ |
||||
|
public void setHint(int l) { |
||||
|
|
||||
|
l -= 1; |
||||
|
|
||||
|
notes[l%3][l/3].setVisible(!notes[l%3][l/3].isVisible()); |
||||
|
|
||||
|
boolean a = false; |
||||
|
|
||||
|
for (int i = 0; i < 3; i++) { |
||||
|
for (int j = 0; j < 3; j++) { |
||||
|
|
||||
|
boolean visible = notes[j][i].isVisible(); |
||||
|
|
||||
|
if (visible) { |
||||
|
a = true; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
this.setVisible(a); |
||||
|
} |
||||
|
|
||||
|
public boolean isSet(int hint) { |
||||
|
hint -= 1; |
||||
|
JLabel jLabel = notes[hint % 3][hint / 3]; |
||||
|
boolean set = jLabel.isVisible(); |
||||
|
return set; |
||||
|
} |
||||
|
|
||||
|
public void unsetHint(int hint) { |
||||
|
|
||||
|
if (isSet(hint)) { |
||||
|
setHint(hint); |
||||
|
} |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue