Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #include <pgm.h>
- #include <time.h>
- int *Values(int zrodlo_i, int zrodlo_j);
- int main(int argc, char** argv)
- {
- float tablica[100][100];
- float tablicaPrev[100][100];
- int u1;
- int u2;
- int u3;
- int u4;
- int i;
- int j;
- srand(time(NULL));
- FILE* file;
- char filename[100]={0};
- gray **image;
- int fileNumber;
- int zrodlo_i=(rand()%99)+1;
- int zrodlo_j=(rand()%99)+1;
- int zrodlo1_i=(rand()%99)+1;
- int zrodlo1_j=(rand()%99)+1;
- int zrodlo2_i=(rand()%99)+1;
- int zrodlo2_j=(rand()%99)+1;
- int zrodlo3_i=(rand()%99)+1;
- int zrodlo3_j=(rand()%99)+1;
- int zrodlo4_i=(rand()%99)+1;
- int zrodlo4_j=(rand()%99)+1;
- int zrodlo5_i=(rand()%99)+1;
- int zrodlo5_j=(rand()%99)+1;
- int hipek_i=5;
- int hipek_j=5;
- int flag=0;
- int flag2;
- int o;
- int m;
- int n;
- int hipek_i_new;
- int hipek_j_new;
- int start_hipek;
- float max;
- int counter;
- for(i=0; i < 100 ; i++)
- {
- for(j=0; j < 100; j++)
- {
- tablica[i][j]=0;
- tablicaPrev[i][j]=0;
- }
- }
- tablicaPrev[zrodlo_i][zrodlo_j]=100;
- tablicaPrev[zrodlo1_i][zrodlo1_j]=75;
- tablicaPrev[zrodlo2_i][zrodlo2_j]=75;
- tablicaPrev[zrodlo3_i][zrodlo3_j]=75;
- tablicaPrev[zrodlo4_i][zrodlo4_j]=75;
- tablicaPrev[zrodlo5_i][zrodlo5_j]=75;
- for(int k=0 ; k < 250 ; k++)
- {
- if(hipek_j > 95)
- {
- hipek_j=5;
- hipek_i+=10;
- }
- if(hipek_i > 95)
- {
- hipek_i=5;
- hipek_j=5;
- }
- for(int o=0 ; o < 10 ; o++)
- {
- if(tablica[hipek_i][hipek_j]==100)
- {
- printf("Znalazlem zrodlo!");
- break;
- }
- if(tablica[hipek_i][hipek_j]>5)
- {
- hipek_i_new=hipek_i;
- hipek_j_new=hipek_j;
- max = tablica[hipek_i_new][hipek_j_new];
- for(m=-1; m<=1; m++)
- {
- for(n=-1; n<=1; n++)
- {
- if(tablica[hipek_i_new+m][hipek_j_new+n]>max)
- {
- if(hipek_i_new+m<99 && hipek_i_new+m>1 && hipek_j_new+n < 99 && hipek_j_new+n > 1)
- {
- hipek_i_new=hipek_i_new+m;
- hipek_j_new=hipek_j_new+n;
- max = tablica[hipek_i_new][hipek_j_new];
- hipek_i=hipek_i_new;
- hipek_j=hipek_j_new;
- flag=1;
- }
- }
- }
- }
- if(tablica[hipek_i_new][hipek_j_new]==100)
- {
- printf("Znalazlem!");
- break;
- }
- if(tablica[hipek_i_new][hipek_j_new]==75)
- {
- flag=0;
- hipek_i=hipek_i_new;
- hipek_j=hipek_j_new;
- }
- }
- for(i=1; i < 99; i++)
- {
- for(j=1; j < 99 ; j++)
- {
- tablica[i][j]=0.25*(tablicaPrev[i+1][j]+tablicaPrev[i-1][j]+tablicaPrev[i][j-1]+tablicaPrev[i][j+1]);
- }
- }
- for(i=1; i < 99 ; i++)
- {
- for(j=1; j<99; j++)
- {
- tablicaPrev[i][j]=tablica[i][j];
- }
- }
- tablicaPrev[zrodlo_i][zrodlo_j]=100;
- tablicaPrev[zrodlo1_i][zrodlo1_j]=75;
- tablicaPrev[zrodlo2_i][zrodlo2_j]=75;
- tablicaPrev[zrodlo3_i][zrodlo3_j]=75;
- tablicaPrev[zrodlo4_i][zrodlo4_j]=75;
- tablicaPrev[zrodlo5_i][zrodlo5_j]=75;
- image = pgm_allocarray(100,100);
- for(int i=0;i<100;i++)
- {
- for(int j=0;j<100;j++)
- {
- image[i][j]=tablicaPrev[i][j]/100*255.0;
- }
- }
- image[hipek_i][hipek_j]=255.0;
- fileNumber++;
- sprintf(filename, "image%d.pgm",fileNumber);
- file=fopen(filename,"wb");
- pgm_writepgm(file,image,100,100,255,1);
- fclose(file);
- if(flag==0)
- {
- hipek_j+=5;
- }
- }
- int *tablica_zrodla_rand;
- tablica_zrodla_rand=Values(zrodlo_i, zrodlo_j);
- zrodlo_i=tablica_zrodla_rand[0];
- zrodlo_j=tablica_zrodla_rand[1];
- tablica_zrodla_rand=Values(zrodlo1_i, zrodlo1_j);
- zrodlo1_i=tablica_zrodla_rand[0];
- zrodlo1_j=tablica_zrodla_rand[1];
- tablica_zrodla_rand=Values(zrodlo2_i, zrodlo2_j);
- zrodlo2_i=tablica_zrodla_rand[0];
- zrodlo2_j=tablica_zrodla_rand[1];
- tablica_zrodla_rand=Values(zrodlo3_i, zrodlo3_j);
- zrodlo3_i=tablica_zrodla_rand[0];
- zrodlo3_j=tablica_zrodla_rand[1];
- tablica_zrodla_rand=Values(zrodlo4_i, zrodlo4_j);
- zrodlo4_i=tablica_zrodla_rand[0];
- zrodlo4_j=tablica_zrodla_rand[1];
- tablica_zrodla_rand=Values(zrodlo4_i, zrodlo4_j);
- zrodlo5_i=tablica_zrodla_rand[0];
- zrodlo5_j=tablica_zrodla_rand[1];
- }
- return 0;
- }
- int *Values(int zrodlo_i, int zrodlo_j)
- {
- int *tablica = malloc(2*sizeof(int));
- tablica[0]=zrodlo_i+((rand()%3)-1);
- tablica[1]=zrodlo_j+((rand()%3)-1);
- while(tablica[0]<1 || tablica[0]>98 || tablica[1]<1 || tablica[0]>98 || (tablica[0]==zrodlo_i && tablica[1]==zrodlo_j))
- {
- tablica[0]=zrodlo_i+((rand()%3)-1);
- tablica[1]=zrodlo_j+((rand()%3)-1);
- }
- return tablica;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement