Progetto programmazione 1: tiro al bersaglio
Appunti a cura di Giacomo Gargiulo
Università degli Studi di Napoli Parthenope
Per tutte le info o osservazioni: giacomo.gargiulo.made4Core@gmail.com
Funzione gioco
#include "header.h"
Dati di input e output
I dati di input comprendono:
- Il vettore a[7][5] che rappresenta il bersaglio.
- La variabile struttura Tiratore[] relativa alla struct TIRATORE.
- Il vettore Vet che rappresenta le vittorie di una partita di 50 turni.
- nx che è il numero di righe del bersaglio.
- my che è il numero di colonne del bersaglio.
I dati di output includono:
- La visualizzazione del bersaglio con i relativi punteggi posizionali.
- La posizione in righe-colonne di dove è stato colpito il bersaglio da ogni singolo giocatore.
- Il punteggio posizione fatto da ogni giocatore.
- Il punteggio massimo fatto alla fine di ogni turno.
- Il numero del turno corrente.
- Il numero del giocatore/i che hanno vinto.
Caratteristiche del gioco
Questa procedura consente di svolgere tutte le parti principali che riguardano il gioco:
- Vedere il bersaglio facendo uso di un ciclo annidato for.
- Generare 5 posizioni casuali sulle caselle con la funzione rand.
- Assegnare il punteggio posizionale ai giocatori.
- Determinare quale è stato il punteggio massimo all'interno di ogni turno.
- Stabilire la vittoria del giocatore/i utilizzando principalmente un ciclo for che considera la variabile Giocatore come indice.
- Utilizzare cicli che consentono il corretto funzionamento del programma.
Implementazione della funzione
La funzione gioco accetta i seguenti parametri:
void gioco(char a[][5], struct TIRATORE Tiratore[], int Vet[], int nx, int my) {
int turno; // Variabile turno utilizzata in un ciclo for da cui si uscirà se il turno è maggiore di 50
int i, j; // Contatori rispettivamente relativi al numero di righe e colonne del bersaglio
int Pos_max = 0; // Variabile inizializzata a zero per assegnare il valore del punteggio posizione ai giocatori
int Punteggio_max = 0;
int Giocatore = 0; // Indice per la variabile Giocatore
for (turno = 0; turno < 50 && Punteggio_max < 100; turno++) {
printf("\n!!!PICCOLA ANNOTAZIONE!!!= Quando il punteggio posizione vale o1 o 2, \nil punteggio assegnato al giocatore è sempre 1.\nPer il resto il punteggio posizionale coincide con il punteggio assegnato.");
printf("\n\n");
// Ciclo for per visualizzare il bersaglio di 7 righe x 5 colonne
for (i = 0; i < 7; i++) {
for (j = 0; j < 5; j++) {
printf("[_%c_]", a[i][j]);
}
printf("\n");
}
// Stabilisco il valore "posizionale" dei punteggi dei turni
// (N.B. Le righe vanno lette dal numero 0 al numero 6 e le colonne dal numero 0 al numero 4)
for (Giocatore = 0; Giocatore < 5; Giocatore++) {
Tiratore[Giocatore].Punteggio_Posizione = 0; // Inizializziamo a zero la variabile Punteggio_posizione interna alla struct
nx = rand() % 7; // Posizioni casuali da 0 a 6 sulle righe
my = rand() % 5; // Posizioni casuali da 0 a 4 sulle colonne
Tiratore[Giocatore].Punteggio_Posizione = a[nx][my] - 48; // Sottraiamo il valore del char a 48 per ottenere l'equivalente intero poiché in C i caratteri sono trattati mediante il codice ASCII
// 48 è il codice ASCII dello zero
printf("\nIl %d-simo giocatore ha un punteggio di posizione calcolato...\n", Giocatore);
}
}
}
-
Il cannone a tiro rapido
-
Allenamento calcio sul tiro in porta
-
Piano di lezione di Calcio - Tiro - Giochi Sportivi
-
6 Enzimi come bersaglio di farmaci