- 5,077
- 4,389
- CPU
- Intel core i7 11700KF 8 core/ 16 thread 4.6Ghz all core
- Dissipatore
- Arctic Liquid freezer II 240mm Argb
- Scheda Madre
- Asus TUF Gaming z590 Plus wifi
- HDD
- NVMe M.2 Gen4 Crucial P5 Plus 1TB + NVMe M.2 Gen3 Sabrent 256GB / +SSD Crucial bx500 256GB
- RAM
- Kingston Fury Beast 32Gb (2X16GB) 3200Mhz CL16
- GPU
- Asus TUF Rtx 3080 12GB Gaming OC 900mv/1865mhz
- Audio
- HyperX Cloud II + Logitech Z313
- Monitor
- Xiaomi Mi 34° WQHD 144hz + LG UltraGear 32GN650 32° QHD, 165hz
- PSU
- Corsair RM850x
- Case
- Cooler Master TD500 Mesh Argb
- OS
- Windows 11
Salve a tutti. Sono disperato sto lavorando a questo progetto da circa 5 mesi ed in pratica lo avrei anche finito tutto ma mi blocca un passaggio, il movimento.
Ci tengo a precisare che non sono uno di quelli che vuole che gli si facciano i programmi ecc voglio solo consigli utili e imparare.
LA traccia non vi serve in quanto non voglio che mi facciate il programma, sappiate solo che il mio problema e' muovere il "o" dentro il campo. Le ho provate tutte aiutatemi. Il programma e' il seguente. Come potete vedere il programma e' perfettamente funzionante tranne per il fatto che "o" il player rimane nella stessa posizione di prima.
Come potete vedere il programma e' perfettamente funzionante tranne per il fatto che "o" il player rimane nella stessa posizione di prima. AIUTO !
Ci tengo a precisare che non sono uno di quelli che vuole che gli si facciano i programmi ecc voglio solo consigli utili e imparare.
LA traccia non vi serve in quanto non voglio che mi facciate il programma, sappiate solo che il mio problema e' muovere il "o" dentro il campo. Le ho provate tutte aiutatemi. Il programma e' il seguente. Come potete vedere il programma e' perfettamente funzionante tranne per il fatto che "o" il player rimane nella stessa posizione di prima.
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void genera_campo(char campo[10][10],int pos_x,int pos_y);
void visualizza_campo(char campo[10][10]);
void movimento_player(char campo[10][10],int pos_x,int pos_y,int direzione);
int main()
{
char campo[10][10];
int move;
int pos_x;
int pos_y;
int direzione;
srand(time(NULL));
genera_campo(campo,pos_x,pos_y);
visualizza_campo(campo);
movimento_player(campo,pos_x,pos_y,direzione);
visualizza_campo(campo);
return 0;
}
void genera_campo(char campo[10][10],int pos_x, int pos_y)
{
int i,j,k=0;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
campo[i][j]='*';
}
}
while(k<1)
{
i=rand()%10; // coordinate riga del player
j=rand()%10; // coordinate colonna del player
pos_x=i;
pos_y=j;
if(campo[i][j]=='*')
{
campo[i][j]='o';
k++;
}
}
}
void visualizza_campo(char campo[10][10])
{
int i,j;
for(i=0;i<10;i++) // stampo il campo
{
for(j=0;j<10;j++)
{
printf("%c ",campo[i][j]);
}
printf("\n");
}
}
void movimento_player(char campo[10][10],int pos_x,int pos_y,int direzione)
{
/
printf("\nIn che direzione vorresti muoverti: ?\n");
printf("\npremi 1 per andare su, 2 per andare giu', 3 per andare a destra e 4 per andare a sinistra: \n");
scanf("%d",&direzione);
if(direzione<1 || direzione>4)
{
printf("\nErrore digita un numero compreso tra 1 e 4\n");
return;
}
switch (direzione)
{
case 1:
pos_x--;
break;
case 2:
pos_x++;
break;
case 3:
pos_y++;
break;
case 4:
pos_y--;
break;
}
}
Come potete vedere il programma e' perfettamente funzionante tranne per il fatto che "o" il player rimane nella stessa posizione di prima. AIUTO !
Ultima modifica: