Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di sky_451
    Registrato dal
    Apr 2003
    Messaggi
    194

    [C] controllo valori uguali in una matrice

    Salve,

    avrei bisogno di un aiuto. Sto cercando di scrivere un programma che mi controlli se un determinato valore di una matrice sia uguale ad altri 3 posizionati: o in colonna, o in diagonale, o in orizzontale. In pratica è il gioco del forza 4 .
    Che logica posso utilizzare per implementare la mia funzione?

    Grazie.
    "There is no dark side of the moon really. Matter of fact it’s all dark."

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Io ho realizzato il gioco del Forza4 in Java ed ho utilizzato la seguente "strategia":

    1) Non hai bisogno di controllare i 4 verticali verso l'alto (dato che le pedine arrivano dall'alto può solo verificarsi un 4 verticale verso il basso rispetto all'ultima pedina inserita)

    2) hai 4 possibilità per ciascuna delle altre forme di 4 (la X indica la pedina appena posizionata, le O le pedine dello stesso colore già presenti):
    codice:
    Casi orizzontali:
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    | X | O | O | O | | O | X | O | O | | O | O | X | O | | O | O | O | X |
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    
    Casi diagonale principale:
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    | X |   |   |   | | O |   |   |   | | O |   |   |   | | O |   |   |   |
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    |   | O |   |   | |   | X |   |   | |   | O |   |   | |   | O |   |   |
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    |   |   | O |   | |   |   | O |   | |   |   | X |   | |   |   | O |   |
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    |   |   |   | O | |   |   |   | O | |   |   |   | O | |   |   |   | X |
    |---|---|---|---| |---|---|---|---| |---|---|---|---| |---|---|---|---|
    
    I casi per la diagonale secondaria sono simmetrici.
    Devi semplicemente prendere in considerazione ciascuno di questi casi, uno per uno.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di sky_451
    Registrato dal
    Apr 2003
    Messaggi
    194
    Grazie, in effetti è quello che avevo in mente anch'io. Avevo bisogno di conferme

    "There is no dark side of the moon really. Matter of fact it’s all dark."

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 © 2024 vBulletin Solutions, Inc. All rights reserved.