[Sudoku]Problem z algorymtmem

0

Cześć,mam kolejny problem z sudoku.
Próbuję napisać algorytm który przekaże wszystkie wykorzystanie już cyfry w poziomie,pionie,i kwadracie.

Pole.java

package Gry.Sudoku;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Pole extends JButton
{
	public int[] niemozliwe = new int[]{0,0,0,0,0,0,0,0,0};
	public int locked = 0;
	public int pozycjaI;
	public int pozycjaJ;
	public int value = 0;
	public int kwadrat;
	public Pole()
	{
		setPreferredSize(new Dimension(50,50));
		
	}
	public void setValue(int v)
	{
		value = v;
		if (v == 0)
		setText("");
		else
		for(int i = 0;i <  niemozliwe.length;i++)
		{
			if (niemozliwe[i] != v);
			{	setText(Integer.toString(v));
				return;
			}
		}
		
		
	}
	void setLocked(int l)
	{
		locked = l;
		
	}
	
}

Funkcje i zmienne nazywam po swojemu,i dlatego wszystko wytłumaczę.
niemozliwe - przechowuje wykorzystane cyfry(jak już wspominałem);
locked - 1 zablokowane,0 odblokowane;ale to NIE MA tutaj znaczenia ;-)
pozycjaI,pozycjaJ - "I" i "J" żeby sobie ułatwić pracę - najpierw pętla z "I",potem pętla z "J".
value - no wiadomo wartość pola(nie pobieramy z "getText()"),0 puste
kwadrat - określa w którym kwadracie znajduje się pole(0 - pierwszy kwadrat)
setValue(int v) - ustawia wartość(nie róbcie po prostu "value = 7",ale "int temp = value" już można ;-) ) , tu coś pokręciłem chciałbym żeby jeśli podana liczba(v) jest w niemożliwych to wtedy się ustawia v+1,chyba że znowu liczba jest w niemożliwych.

Plansza.java

package Gry.Sudoku;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Plansza extends JPanel implements MouseListener
{
	public Color kolorPlanszy = Color.ORANGE;
	public Color kolorKwadratu = Color.GREEN;
	JPanel[] plansze = new JPanel[9];
	public int[][] stan = new int[9][9];
	public Plansza()
	{
		setLayout(new GridLayout(3,3,10,10));
		setBackground(kolorPlanszy);
		for(int i = 0;i < 9;i++)
		{
			plansze[i] = new JPanel();
			plansze[i].setLayout(new GridLayout(3,3,5,5));
			plansze[i].setBackground(kolorKwadratu);
			for(int j = 0;j < 9;j++)
			{
				Pole p = new Pole();
				p.pozycjaI = i;
				p.pozycjaJ = j;
				p.kwadrat = i;
				p.addMouseListener(this);
				plansze[i].add(p);
			}
			add(plansze[i]);
		}
	}
	public void actionPerformed(ActionEvent e)
	{
	}
	public void mousePressed(MouseEvent e)
	{
		
		Pole p = (Pole)e.getSource();
		if (p.value == 9)
		p.setValue(0);
		else
		p.setValue(p.value + 1);
		stan[p.pozycjaI][p.pozycjaJ] = p.value;
		p.niemozliwe = getNieMozliwe(p);
	}
	public void mouseReleased(MouseEvent e) {}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	public void mouseClicked(MouseEvent e) {}
	int[] getNieMozliwe(Pole p)
	{
		int[] niemozliwe = p.niemozliwe;
 		int[] temp = new int[9];
		for(int j = 0;j < 9;j++)
		{
			temp[j] = stan[p.pozycjaI][j];
		}
		for(int j = 0;j < 9;j++)
		{
			if (temp[j] != 0)
			niemozliwe[j] = temp[j];
		}
		return niemozliwe;
		
	}
	
}

actionPerformed - potem wyrzucę(zostało bo na początku był ActionListener)
getMozliwe - tu właśnie proszę o pomoc mi z algorytmem... zwraca liczby w pionie,poziomie,i kwadracie(z wyjątkiem zera),coś zacząłem,ale lepiej to skasować.
Jak uznacie że są jakieś inne błędy to piszcie ;-)

Pomóżcie z algorytmem

0

Czemu nikt nikt nie odpowiada?

0

a jakie jest pytanie??

0

Chciałem żebyście pomogli z algorymtmem.

0

Pomożecie?

0

Witam
Jestem nowy ale gdzieś miałem działający SUDOKU, chcesz cały kod czy tylko sprawdzenie tego algorytmu co w nim nie działa ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1