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