Gå til innhold

Hvordan best løse "Bestemt rute" i sudokuprog


Anbefalte innlegg

Hei!

 

Holder på med en obligatorisk oppgave ved uio. Skal lage en sudokuløser med gui.

 

Når hele brettet er ferdigløst, vises det ikke før man trykker på et menyvalg for å vise hele brettet. Man kan også trykke på vis bestemt rute, da hentes tallet inn fra løsningen, og vises i den ruten brukeren oppgir.

 

Problemet er hvordan brukeren skal si fra hvilken rute som skal få opp tallet.

 

En kompis av meg hadde samme oppgave i fjor. Han gjorde det sånn at brukeren skriver x i alle rutene der han vil få opp verdi. Personlig synes jeg dette ble en litt dårlig løsning på problemet. Men jeg sliter litt med å finne på noe bedre. Trenger altså noen tips :)

 

Hver rute er en JTextField: JTextField txtRute[][];.

 

sudokugui.jpg

Endret av oya
Lenke til kommentar
Videoannonse
Annonse
Hva med å bruke f.eks space? Eller ha en egen knapp til dette?

8358195[/snapback]

Har en knapp i menyen. Det som er problemet er hvordan brukeren skal velge hvilken rute det skal gjelde når denne knappen trykkes.

Lenke til kommentar
Det som er problemet er hvordan brukeren skal velge hvilken rute det skal gjelde når denne knappen trykkes.

8358553[/snapback]

 

Dette burde gi deg noen hints, ved bruk av MouseListener som blir tilegnet hver JTextField.

 

@SuppressWarnings("serial")
public class ActionTest extends JFrame {

public ActionTest() {
 super("Suduko");
 
 JTextField t;
 for(int i = 0; i < 3; i++) {
 	t = new JTextField();
 	
 	t.addMouseListener(new SudukoInput(i));
 	
 	this.getContentPane().add(t, (i == 0 ? BorderLayout.NORTH : (i == 1 ? BorderLayout.CENTER : BorderLayout.SOUTH)));
 }
 
 this.setSize(100, 90);
 this.setVisible(true);
 
 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

class SudukoInput implements MouseListener {
 private int sudukoRute;
 
 public SudukoInput(int sudukoRute) { this.sudukoRute = sudukoRute; }
 
 public void mouseClicked(MouseEvent arg0) {
 	System.out.println("Suduko rute " + sudukoRute + " ble klikket på.");
 }
 public void mouseEntered(MouseEvent arg0) {}
 public void mouseExited(MouseEvent arg0) {}
 public void mousePressed(MouseEvent arg0) {}
 public void mouseReleased(MouseEvent arg0) {}
}

public static void main(String[]args) {
 new ActionTest();
}
}

 

PS: i mouseClicked metoden kan du evt. sjekke for høyreklikk for eksempel (MouseEvent). Altså, hvis brukeren ønsker å vite svar i en rute, så høyreklikker man i den ruta.

Endret av krigun
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...