Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct TpPont
- {
- TpPont *ant, *prox, *cima, *baixo;
- char elem;
- };
- struct TpDescritor
- {
- TpPont *ini, *fim;
- int qtd;
- };
- void CriaDescritor (TpDescritor &d)
- {
- d.ini = NULL;
- d.fim = NULL;
- d.qtd = 0;
- }
- TpPont *CriarCaixa (char elem)
- {
- TpPont *p = new TpPont;
- p->ant = NULL;
- p->prox = NULL;
- p->cima = NULL;
- p->baixo = NULL;
- p->elem = elem;
- return p;
- }
- void Criar (TpDescritor &d, int nivel)
- {
- TpPont *caixa = new TpPont;
- TpPont *ant = new TpPont;
- char elem;
- int j = 1, comeco = 1;
- srand(time(NULL));
- CriaDescritor (d);
- elem = (rand()%22) + 97;
- caixa = CriarCaixa (elem);
- if(d.ini == NULL)//Não tem nada na matriz ainda
- d.ini = caixa;
- TpPont *p = d.ini;
- for(int i=1; i<=MAX*nivel; i++) //Fazendo a primeira linha
- {
- elem = (rand()%22) + 97;
- caixa = CriarCaixa (elem);
- p->prox = caixa;
- caixa->ant = p;
- p = p->prox;
- }
- while (j <= MAX*nivel)
- {
- p = d.ini;
- ant = p;
- while (p->baixo != NULL) //Procurando linha nula
- {
- ant = p;
- p = p->baixo;
- }
- elem = (rand()%22) + 97; //primeira letra da linha vazia
- caixa = CriarCaixa (elem);
- p->baixo = caixa;
- caixa->cima = p;
- ant = p;
- p = caixa;
- comeco = 0;
- for (int i=1; i<=MAX*nivel; i++)//completando o resto da linha
- {
- ant = ant->prox;
- elem = (rand()%22) + 97;
- caixa = CriarCaixa (elem);
- p->prox = caixa;
- caixa->ant = p;
- caixa->cima = ant;
- ant->baixo = caixa;
- p = p->prox;
- }
- j++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement