Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- main(){
- int N, i, j, campo[1000][1000], y, cont=0, z;
- double x, p;
- srand48(time(0));
- printf("Il programma simula il gioco del campo minato, ovvero, posto un malcapitato al centro di una scacchiera NxN, conteremo i passi da lui effettuati prima di esplodere o prima di salvarsi.\n");
- printf("Per fare questo ho bisogno che tu immetta il numero N di caselle compreso tra 0 a 1000.\n N = ");
- scanf("%d", &N);
- while(N>1000){
- printf("Il valore di N non è accettabile! Reimmettilo!\n N = ");
- scanf("%d", &N);
- }
- printf("Ora inserisci una probabilità p positiva e minore di 1, con cui effettuerò il riempimento del campo con le mine.\n p = ");
- scanf("%lf", &p);
- while(p>1){
- printf("Il valore di p non è accettabile! Reimmettilo!\n p = ");
- scanf("%lf", &p);
- }
- for(i=0; i<N; i++){
- for(j=0; j<N; j++){
- x=(double)lrand48()/(RAND_MAX+1.);
- if(x<p){
- campo[i][j]=1;
- }
- else{
- campo[i][j]=0;
- }
- }
- }
- if(N%2==0){
- campo[(N/2)][(N/2)]=0;
- y=N/2;
- z=N/2;
- }
- else{
- campo[((N--)/2)][((N--)/2)]=0;
- y=(N/2);
- z=(N/2);
- }
- while(y<N && z<N && y>=0 && z>=0 && campo[z][y]==0){
- x=lrand48()%4;
- if(x==0){
- printf("← ");
- campo[z--][y];
- }
- if(x==1){
- printf("↑ ");
- campo[z][y++];
- }
- if(x==2){
- printf("→ ");
- campo[z++][y];
- }
- if(x==3){
- printf("↓ ");
- campo[z][y--];
- }
- cont++;
- }
- printf("\n");
- if(y>=N || z>=N || y<0 || z<0){
- printf("Il soldato si è salvato con %d mosse!\n", cont);
- }
- else{
- printf("KABOOM!\n Il soldato è sopravvissuto per %d turni...\n", cont);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment