Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30

Discussione: Generazione schema 4x4

  1. #1

    Generazione schema 4x4

    Sto lavorando, come principiante puro (ho installato VBEX questa mattina), a un programma che generi una serie di schemi stile sudoku di dimensioni variabili (ma per adesso cerco di fare il 4x4).

    In pratica, devo creare uno schema di 4x4 caselle, contenenti tutti i numeri da 1 a 4, in modo che in ogni riga e colonna ci sia ciascun numero una sola volta.

    Potete suggerirmi come fare, tenendo presente che capisco di VB molto poco (e quel che ricordo lo prendo da ASP classico)?

    Grazie!
    ---
    EnKay

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    VBEX ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ops, speravo si usasse. Visual Basic Express
    ---
    EnKay

  4. #4
    1. dimensioni la matrice 4x4
    2. generi un numero random da 1 a 4
    3. ti scorri la riga corrente (4 colonne) e se il numero non c'è già passi a 5
    4. ti scorri la colonna corrente (4 righe) e se il numero non c'è lo inserisci
    5. ripeti 3 e 4 per le 4 colonne
    6. ripeti 3, 4 e 5 per le 4 righe


  5. #5
    Il software non mi da errori, quindi spero di averne fatti meno possibile.

    Mi dite se il mio codice può andare bene, intanto, per avere i numeri casuali nelle caselle?

    codice:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim Schema(4, 4) As Byte
    
            Dim i As Byte
            Dim j As Byte
            Dim r As Integer
            i = 0
            For i = 0 To 3
                j = 0
                For j = 0 To 3
                    Randomize()
                    r = CInt(Int((4 * Rnd()) + 1))
                    Schema(i, j) = r
                    j = j + 1
                Next
                i = i + 1
            Next
    
        End Sub
    Come faccio a effettuare il controllo, che eviti due numeri uguali in una riga e in una colonna?

    Come faccio a visualizzare la griglia 4x4 nel form?
    ---
    EnKay

  6. #6
    per il controllo, molto semplicemente rileggi l'array Schema()

  7. #7
    Con il seguente codice

    codice:
    Private Sub cmdCrea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCrea.Click
            Dim Schema(4, 4) As Byte
    
            Dim i As Integer
            Dim j As Integer
            Dim r As Integer
    
            i = 0
    
            Randomize()
            For i = 0 To 3
    
                For j = 0 To 3
    
                    r = CInt(Int((4 * Rnd()) + 1))
                    Schema(i, j) = r
                    j = j + 1
                Next
                i = i + 1
                j = 0
            Next
            Label1.Text = Schema(0, 0)
            Label2.Text = Schema(0, 1)
            Label3.Text = Schema(0, 2)
            Label4.Text = Schema(0, 3)
            Label5.Text = Schema(1, 0)
            Label6.Text = Schema(1, 1)
            Label7.Text = Schema(1, 2)
            Label8.Text = Schema(1, 3)
    
    
    
    
        End Sub
    Mi viene mostrato un numero casuale in posizione 0,0 un numero casuale in posizione 0,2 e degli zeri in tutte le altre posizioni. Qualcuno sa dirmi perché?
    ---
    EnKay

  8. #8
    Ignorate il post di prima, mettevo un i = i+1 e un j= j+1 che facevano saltare righe e colonne.

    Ora, sto provando a mettere un codice che faccia il controllo, però al momento non funziona.

    [code]
    Dim r As Integer
    Dim i As Integer
    Dim j As Integer = 0
    Dim n As Integer
    Dim m As Integer

    For i = 0 To 3
    For j = 0 To 3
    For n = 0 To 3
    r = CInt(Int((4 * Rnd()) + 1))
    If schema(i, n) <> r Then
    For m = 0 To 3
    If schema(m, j) <> r Then
    schema(i, j) = r
    End If
    Next
    End If
    Next

    Next
    Next
    [code]

    Non capisco perché mi inserisca i numeri anche se sono uguali. Suggerimenti?
    ---
    EnKay

  9. #9
    Odio uppare, ma che ce posso fa...

    Quello che mi serve sapere è come far sì che, se il numero generato casualmente è già presente nello schema, se ne generi un altro e si ripeta il controllo.
    ---
    EnKay

  10. #10
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    invece dell'if metti un while e all'interno continui a generare numeri casuali

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.