Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-11-2003, 11:04   #1
Aldalex
Member
 
Iscritto dal: Jun 2000
Messaggi: 60
Programma Forza 4 in C! Aiuto!

Qualcuno puo aiutarmi ad implementare in C il programma Forza 4 ? Dovrei consegnarlo per domenica....vale come esercizio...vi prego, help me.

Riporto qui sotto le indicazioni per il programma:

Il gioco "Forza 4"
Il gioco "Forza 4" si gioca in due giocatori (Giallo e Rosso) ciascuno dei quali ha un numero N di pedine del proprio colore.
Si gioca a turno, inserendo dall'alto una pedina del proprio colore in una griglia verticale di 7 colonne e 6 righe.
Il giocatore di turno inserisce una delle proprie pedine in una delle 7 colonne cercando di ottenere per primo un allineamento di 4 pedine del proprio colore in orizzontale, verticale o in diagonale.
Quando una pedina viene inserita in una colonna, si va ad appoggiare sulla base della griglia o sulle pedine già inserite.
Non è possibile inserire più di 6 pedine per colonna.
Se la griglia viene completamente riempita senza che si presenti un allineamento di 4 o più pedine dello stesso colore, la partita è patta.
Il numero di pedine N di ciascun giocatore è sufficiente a riempire tutta la griglia (sono 21 per giocatore).

Obiettivo dell'esercizio
Si sviluppi un programma C che implementa il gioco Forza4.

Input del programma
Il programma inizia col giocatore 1 e per ogni turno riceve in input una cifra tra 0 e 6 compresi: il giocatore corrente vuole inserire la sua pedina nella corrispondente colonna.

Output del programma
Il programma stampa per ogni mossa lo stato della griglia ESATTAMENTE secondo il seguente esempio:
| | | | | | | |
| | |1| | | | |
| | |1| | | | |
| | |1|2| | | |
| | |1|1|2| | |
| |2|2|2|1|2| |
---------------
0 1 2 3 4 5 6

in cui:
caselle non occupate => spazio
caselle occupate dal giocatore 1 => carattere 1
caselle occupate dal giocatore 2 => carattere 2
stampate anche le barre verticali, la riga orizzontale di 'meno' e i numeri che indicano le colonne
subito dopo la presentazione della griglia viene:
presentato il prompt: Giocatore N: (senza accapo e con N uguale a 1 o 2)
letto l'input ed eseguiti i controlli:
ogni input diverso dai numeri tra 0 e 6 è errato e fa stampare ESATTAMENTE la stringa "Input errato" seguita da accapo (vedi esempio sotto) e si richiede di nuovo l'input.
Se la colonna è già piena si stampa ESATTAMENTE la stringa "Mossa non valida" seguita da accapo e si richiede di nuovo l'input.
Non appena viene scoperta la presenza di 4 (o più) pedine allineate (in orizzontale, verticale o diagonale) dello stesso colore si stampa:
la situazione (finale) della griglia.
la stringa "Ha vinto il giocatore N" seguita da accapo (con N= 1 o 2 a seconda del caso)
e si esce.
Se la partita termina in patta si stampa:
la situazione (finale) della griglia.
la stringa "Partita patta" seguita da accapo
e si esce.

Esempio di partita
Ecco un esempio di partita. In rosso si evidenzia l'input del programma, battuto dai giocatori sulla tastiera.


| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
---------------
0 1 2 3 4 5 6
Giocatore 1: 3
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |1| | | |
---------------
0 1 2 3 4 5 6
Giocatore 2: 3
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | | |1| | | |
---------------
0 1 2 3 4 5 6
Giocatore 1: 4
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | | |1|1| | |
---------------
0 1 2 3 4 5 6
Giocatore 2: 2
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | |2|1|1| | |
---------------
0 1 2 3 4 5 6
Giocatore 1: 8
Input errato
Giocatore 1: 5
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | |2|1|1|1| |
---------------
0 1 2 3 4 5 6
Giocatore 2: 6
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Giocatore 1: 4
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |2|1| | |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Giocatore 2: 4
| | | | | | | |
| | | | | | | |

| | | | | | | |
| | | | |2| | |
| | | |2|1| | |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Giocatore 1: 3
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | |1|2| | |
| | | |2|1| | |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Giocatore 2: 3
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | | |1|2| | |
| | | |2|1| | |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Giocatore 1: 2
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | | |1|2| | |
| | |1|2|1| | |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Giocatore 2: 5
| | | | | | | |
| | | | | | | |
| | | |2| | | |
| | | |1|2| | |
| | |1|2|1|2| |
| | |2|1|1|1|2|
---------------
0 1 2 3 4 5 6
Ha vinto il giocatore 2

Suggerimenti
Usate (ovviamente) una matrice.
Nella lezione del 30 (o 31) Ottobre si parlerà del gioco del Tris, che non è troppo diverso da Forza 4.

Spero che qualche buon'anima mi aiuti, grazie.
Aldalex è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 11:19   #2
Icedguardian
Member
 
Iscritto dal: May 2003
Messaggi: 283
Non ho capito il problema? Crei una matrice di interi (per es.), la inizializzi a 0, visualizzi la schifezza. Quando uno inserisce la pedina nella matrice in quella riga nella prima posizione "0" inserisci 1 o 2 a secondo del giocatore. Crei una funzione a cui passi la matrice e la posizione della pedina inserita, la funz controlla se la pedina inserita "completa" una serie di 4 pedine. Si -> ha vinto, no -> controllo quante pedine sono rimaste al giocatore a cui tocca, se > 0 allora gioca altrimenti patta.

Va beh io lo buttata giù in 4 secondi magari ci sono un po' di controlli in + da fare
__________________
/***
* Nulla è impossibile per chi non deve farlo
***/
Icedguardian è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 11:22   #3
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Una cosa tipo

Codice:
char table[10][10];
int i;
for(i=0;i<10;i++)
   printf("%c|-\n", table[0][i]);
int j;
for(j=0;i<10;j++)
   printf("%c-|\n", table[i][i]);
Prova a vedere se ti puo essere utile
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 14:05   #4
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
ekkone una versione + utile al tuo scopo.
Codice:
#include <stdio.h>
#include <stdlib.h>

void inserisci(int * table[3][3], int x, int y, int val);

int main()
{
  int table[3][3] = {0};
  int i;
  int j;
  int y;
  for(i=0;i<3;i++)
    printf("\t%d", table[0][i]);
  printf("\n");  
  for(j=0;j<3;j++)
    printf("\t%d", table[1][j]); 
  printf("\n");   
  for(y=0;y<3;y++)
    printf("\t%d", table[2][y]);
  printf("\n");
  inserisci(&table, 1, 1, 1); 
  inserisci(&table, 1, 3, 2); 
  int sc;
  scanf("%d", &sc);      
  return 0;
}

void inserisci(int * table[3][3],int x, int y, int val)
{
    *table[x][y] = val;
}
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2003, 17:19   #5
Aldalex
Member
 
Iscritto dal: Jun 2000
Messaggi: 60
Forza 4

ho provato a far girare su DEVC++ il programma ideato da Luc@s

Va quasi bene, e infatto gia lo ringrazio davvero, grazie Luc@s!!

Pero ci sn dei ritocchi da fare, perche mi da 3 errori nella compilazione, e quando lo faccio giare parte la shell del terminale ma ad un certo punto dopo aver disegnato la matrice si blocca, la matrice cmq deve essere di 7 colonne e 6 righe:

Gli errori che mi da sn i seguenti:

[Warning] In function `main'

[Warning] passing arg 1 of `inserisci' from incompatible pointer type ( alla riga 21 )

[Warning] passing arg 1 of `inserisci' from incompatible pointer type ( alla riga 22 )

Sapresti dirmi perche me li da Luc@s?

Grazie di nuovo ,

Alessandro
Aldalex è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2003, 08:59   #6
Icedguardian
Member
 
Iscritto dal: May 2003
Messaggi: 283
Secondo me quel prog. non fa nulla
Cmq il problema credo sia nel puntatore, elimita l'asterisco in ogni punto
della funzione (anche dal prototipo) e quando la richiami dal main non ci mettere & davanti al nome della matrice.

Ciao
__________________
/***
* Nulla è impossibile per chi non deve farlo
***/
Icedguardian è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2003, 18:28   #7
Aldalex
Member
 
Iscritto dal: Jun 2000
Messaggi: 60
gioco forza 4

il programma mi da come output ina matrice 3*3 inizializzata a zero, e invece doverbbe darmi una matrice con 7 colonne e 6 righe... poi quando metto un numero mi si chiude subito la finestra del terminale, qualcuno sa come risolvere il problema ??

Ecco il programma

#include <stdio.h>
#include <stdlib.h>

void inserisci(int table[3][3], int x, int y, int val);

int main()
{
int table[3][3] = {0};
int i;
int j;
int y;
for(i=0;i<3;i++)
printf("\t%d", table[0][i]);
printf("\n");
for(j=0;j<3;j++)
printf("\t%d", table[1][j]);
printf("\n");
for(y=0;y<3;y++)
printf("\t%d", table[2][y]);
printf("\n");
inserisci(table, 1, 1, 1);
inserisci(table, 1, 3, 2);
int sc;
scanf("%d", &sc);
return 0;
}

void inserisci(int table[3][3],int x, int y, int val)
{
table[x][y] = val;
}
Aldalex è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 02:28   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
int table[3][3] = {0};
Come fai a fare una matrice 6x7 se qui la dichiari 3x3 ?
Inoltre {0} non inizializza una matrice a zero...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 02:30   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Re: gioco forza 4

Quote:
Originariamente inviato da Aldalex
poi quando metto un numero mi si chiude subito la finestra del terminale, qualcuno sa come risolvere il problema ??
Perchè il tuo programma fa proprio questo...fa diverse stampe, una scanf e poi esce...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 10:28   #10
Icedguardian
Member
 
Iscritto dal: May 2003
Messaggi: 283
Re: Re: gioco forza 4

Quote:
Originariamente inviato da cionci
Perchè il tuo programma fa proprio questo...fa diverse stampe, una scanf e poi esce...
Secondo me lui voleva che il programmino lo facciamo noi
Non si è preso neanche la briga di leggere quelo che gli abbiamo scritto.

Non ho capito però cosa ci fa in programmazione uno che fa di tutto tranne programmare
__________________
/***
* Nulla è impossibile per chi non deve farlo
***/
Icedguardian è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 14:04   #11
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Re: Re: Re: gioco forza 4

Quote:
Originariamente inviato da Icedguardian
Secondo me lui voleva che il programmino lo facciamo noi
Non si è preso neanche la briga di leggere quelo che gli abbiamo scritto.

Non ho capito però cosa ci fa in programmazione uno che fa di tutto tranne programmare
in effetti ha copiato il mio listato che nn era proprio ia massimi livelli della decenza
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2003, 22:18   #12
Manson666
Bannato
 
Iscritto dal: Oct 2000
Messaggi: 552
:-)

Fai informatica alla Sapienza?
Manson666 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2003, 12:17   #13
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Re: :-)

Quote:
Originariamente inviato da Manson666
Fai informatica alla Sapienza?
io?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Il presidente di Sony ha venduto il 56,5...
Nuova vulnerabilità per il kernel...
Fallout Stagione 2: 10 le nomination agl...
IQM porterà il quantum computer L...
2 MB di memoria RAM sono sufficienti per...
Incendio a Bovisa: cosa succede quando u...
AMD lancia 11 nuovi processori tra Ryzen...
IBM tra IA, sovranità digitale e ...
Blocco dei social sotto i 14 anni. A chi...
Nothing Ear (3a): la recensione delle cu...
DENZA BAO 5, il primo SUV del marchio BY...
Addio cavi in auto: Ottocast a IFA con C...
HONOR "Summer Essentials": l'e...
IBM fa la cura dimagrante ai mainframe z...
DENZA Z, la supercar con 3 motori elettr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v