Προς το περιεχόμενο

Sudoku 3x3


foutzos

Προτεινόμενες αναρτήσεις

Καλησπέρα σε όλα τα καλά παιδιά και περισσότερο αντιθέτως από μένα στους φίλους προγραμματιστές.

 

Έχω εδώ και λίγες μέρες που προσπαθώ να υλοποιήσω σε JAVA το Sudoku ενώ δουλεύω τον κώδικα σε BlueJ. Αυτό που θέλω να κάνει το πρόγραμμα είναι να φτιάχνει από μόνο του κάποιο τυχαίο παιχνίδι και να το δίνει στον χρήστη για λύση.

 

Οπότε και το βασικό Concept είναι (κατ εμέ που δεν είμαι και γνώστης) να φτιάξω για αρχή ένα random πίνακα με τις απαραίτητες συνθήκες, έναν εικόνικο πίνακα στον οποίο θα δίνονται 3 εκ των στοιχείων του 1ου πίνακα, και μόλις τελειώνει ο χρήστης και πατάει οκ να γίνεται σύγκριση των πινάκων για να δούμε αν είναι σωστή η απάντηση του χρήστη η λάθος!

 

Μέχρι τώρα δεν το χω προχωρήσει σχεδόν καθόλου μιας και έχω κολλήσει στην μέθοδο του φτιαξίματος του 1ου πίνακα. Όποιος μπορεί να με βοηθήσει ή έστω να μου πει που να κοιτάξω γτ η google δεν με βοήθησε αρκετά ας το παραθέσει παρακάτω και τον ευχαριστώ εκ των προτέρων!

 

Ο κώδικας που έχω υλοποιήσει μέχρι στιγμής είναι ο παρακάτω αλλά μόλις πατάω το κουμπί Random για να δω αν είναι οκ ο πίνακας μου βγάζει τυχαίες χαζομάρες. Άρα προφανώς έχω λάθος αφού μου κάνει return οτιδήποτε υπάρχει στη μνήμη.

 

Παραθέτω τον κώδικα λοιπόν και όποιος ξέρει ακόμα και σε pm ας βοηθήσει! Ευχαριστώ.

import java.awt.*;
import javax.swing.*;
import java.util.*;
public class MyFrame extends Frame
{
    
    private Button rndomButton;
    private Button quit;
    
    public MyFrame(String title)
    {
        super(title);
        resize(200,200);
        setResizable(false);
        setLayout(new GridLayout(2,2));
        quit=new Button("QUIT");
        rndomButton=new Button("RANDOM");
        add(rndomButton);
        add(quit);
    } // grafika
    public void message(String message)
    {
        JOptionPane.showMessageDialog(null,message);
    } //akyro pros to paron
    
    public static int[][] Array()
    {
            Random rand = new Random();
            int  n = rand.nextInt(3) + 0;
            int  y = rand.nextInt(2) + 0;
            int i=0;
            int j=0;
            int[][] board = new int[3][3];
            
            board[0][0] = 1;
            //an einai 1 to prwto stoixeio!
                   if(board[i][j]==1)
                   {
                       board[i+1][j]= y;
                       board[i][j+1]= y;
                       if(board[i+1][j]== 2)
                       {
                           board[i+2][j]=3;
                       }
                       else
                       {
                           board[i+2][j]=2;
                       }
                       if(board[i][j+1]==2)
                       {
                           board[i][j+1]=3;
                       }
                       else
                       {
                           board[i][j+2]=2;
                       }
                       if(board[i+1][j]==2&&board[i][j+1]==2)
                        {
                           board[1][1]=3;
                           board[1][2]=1;
                           board[2][1]=1;
                           board[2][2]=2;
                        }
                       if(board[i+1][j]==2&&board[i][j+1]==3)
                        {
                           board[1][1]=1;
                           board[1][2]=3;
                           board[2][1]=2;
                           board[2][2]=1;
                       }
                       if(board[i+1][j]==3&&board[i][j+1]==2)
                        {
                           board[1][1]=1;
                           board[1][2]=2;
                           board[2][1]=3;
                           board[2][2]=1;
                       }
                    }
        return board;
    
    
} // return tuxaio pinaka me 1o stoixeio to 1.
    public boolean action(Event evt,Object arg)
    {
        if(evt.target.equals(rndomButton))
         message("Array: "+Array());
        else
        if(evt.target.equals(quit))
         System.exit(0);
        return true;
    }
} //events.

Σημείωση πως έχω το board[0][0] = 1; και όχι ως n τυχαίο μιας και υποτίθεται έχω φτιάξει τις περιπτώσεις του 1ου στοιχείου να είναι 1. Αλλιώς θα το είχα n και πιο κάτω άλλες 2 if.

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

3χ3 και 4χ4 θέλω να φτιάξω για αρχή. Πίνακα από textboxes εννοείς κατευθείαν να βγαίνει ο πίνακας στην οθόνη του χρήστη χωρίς εικονικό;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...