Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    34

    [C] Lettura di un array bidimensionale char

    ciao a tutti,
    avrei bisogno di un paio di consigli.
    Devo scrivere un programma in C che simuli il forza 4.

    Partendo da una matrice di char in cui ci siano caselle vuote, O , X, devo leggerla e creare QUALCOSA i cui bit se sono 0 è perche la cella corrispondente è o vuota o occupata dalla pedina del giocatore che non mi interessa, altrimenti sono 1.

    Devo poi confrontare questa variabile con con una dello stesso tipo, creata prima, che rappresenti le 3 pedine in fila, e anche le 2 pedine in fila, per dare una valutazione della tabella del gioco e vedere quali mosse sono più promettenti.

    Qualcuno ha un'idea su cosa possa essere il QUALCOSA ?????

  2. #2
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Non ho molto ben capito che tipo di funzione ti serva, tuttavia mi sento di consigliarti per rendere più semplice il tuo programma di rappresentare ogni casella con una costante di enumerazione tipo così:
    codice:
    enum casella { VUOTO, O, X };
    E poi rappresentare la griglia in questo modo:
    codice:
    casella tab[20][20];
    P.S. La funzione che deve fare "qualcosa" deve essere in grado di cambiare lo stato di una casella?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    34
    alla enum non avevo pensato e potrebbe essere una cosa buona, grazie.

    per rispondere al tuo PS:
    no la funzione deve leggere la matrice, vedere che cosa c'è e, se per esempio mi serve sapere dove sono le x, creare un qualche tipo di variabile che mi rappresenti tramite degli 1 le caselle in cui ci sono le X; poi devo confrontare questa variabile con una fatta in precedenza, dello stesso tipo ovviamente, che rappresenti 3 caselle consecutive riempite con lo stesso tipo di pedina (o tutte e tre X o tutte e tre O) in modo da fare dei controlli bitwise e stabilire se inserendo una pedina nella casella attigua (a quella della matrice) posso fare "forza 4".

    Io avevo pensato a semplici variabili unsigned long long (o qualcosa di più lungo da definire) con cui poter fare i controlli in bitwise, ma la dimensione della tabella deve essere decisa in runtime quindi non è possibile ciò.
    avevo pensato anche alle stringhe, penso che potrei utilizzare le funzioni getchar e putchar per leggere la matrice e inserire l'1 se la condizione da me voluta è verificata, ma secondo me si allunga un po' il brodo e la fuzione diventa un po lenta. Un'altra cosa che avevo pensato era una lista con un campo e un puntatore al successivo, semplice semplice ma anche indipendenta dal numero di elementi che si inseriscono.

    Poi un'altra cosa: sapete spiegarmi bene che cosa sono le union?????

    P.S. Ma cosa è più veloce, shiftare una variabile di n posti o una chiamata di un puntatore a puntare una certa cella di memoria?

    Grazie ancora in anticipo

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.