示例#1
0
void zmienGeneracje(int **plansza, int rozmiarPlanszy, int nrGen) {

        int **poprzedniaGen;
        int i = 0;
        int j = 0;
	int k;

        poprzedniaGen = (int**)malloc(sizeof(int*)*(rozmiarPlanszy + 2));    /* alokujemy pamiec dla poprzedniej planszy */

        for (i = 0; i<rozmiarPlanszy + 2; i++)
        	poprzedniaGen[i] = (int*)malloc(sizeof(int)*(rozmiarPlanszy + 2));

        for (i = 0; i<rozmiarPlanszy + 2; i++) {
                for (j = 0; j<rozmiarPlanszy + 2; j++)
                        poprzedniaGen[i][j] = plansza[i][j];
        }

        for (i = 1; i<rozmiarPlanszy; i++) {
                for (j = 1; j<rozmiarPlanszy; j++) {

                        int ileZywych = 0;
                        int akcja = 0;

                        ileZywych = sprawdzSasiadow(i, j, poprzedniaGen);

                        akcja = zasady(ileZywych, poprzedniaGen[i][j]);

                        plansza[i][j] = zmienStan(akcja, poprzedniaGen[i][j]);
                }
        }

        zapiszKonfiguracje(plansza, nrGen, rozmiarPlanszy);

        wypisywanie(plansza, rozmiarPlanszy);

        generujObraz(plansza, rozmiarPlanszy, nrGen);

        /*printf("nowa\n");

        wypisywanie(poprzedniaGen, rozmiarPlanszy);*/

	for(k=0 ; k < rozmiarPlanszy+2 ; k++)
		free(poprzedniaGen[k]);

	free(poprzedniaGen); 	

	
}
示例#2
0
文件: glowny.c 项目: nkopa/GSuma
int main(){
  int czl; //jaki ruch wykonal czlowiek
  int kom; //jaki ruch wykonal komputer
  int suma; //jaka jest aktualnie suma
  int licznik; //ktora kolejka jest teraz
  int nau[3][LIMIT/2]; //tabela nakuki calkowitej; komp wykona najw tylko polowe wszystkich ruchow
  int pomnau[3][LIMIT/2]; //tabela wykonanych ruchow w pojedynczej grze
  char ruch='z'; //informacja o tym kto wykonal ostatni ruch

  czyscTab(nau);

  do{
    czyscTab(pomnau);
    suma=0;
    czl=0;
    kom=0;
    licznik=0;

    zasady();
    wyswietl(czl,kom,suma);

    while(czyKoniec(suma)){
      czl=ruchCzl(suma); //czyLegal(suma,czl)
      ruch='c';
      suma+=czl;

      if(czyKoniec(suma)){
	kom=ruchKom(licznik,pomnau,nau,suma); //czyLegal(suma,kom),naukaCzesc(),sortuj()
        ruch='k';
	suma+=kom;
      }

      wyswietl(czl,kom,suma);
      licznik++;
    }//koniec wewnetrznej petli

    ktoWygr(ruch,pomnau,nau);//naukaCalosc(pomnau,nau,znak)

  }while(czyJeszcze());

  printf("Dzieki za gre. Do zobaczenia nastepnym razem ;)\n");
  return 0;
}