Ir para conteúdo
Fórum Script Brasil

Heitor Colangelo

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Heitor Colangelo

Heitor Colangelo's Achievements

0

Reputação

  1. então, eu deletei os obj, mas o resultado foi o mesmo Eu não acho que seja ponteiro, pois tem vezes que compila e executa certinho, tem vezes que compila, executa mas trava, e na maioria das vezes compila e não executa, mas msmo assim eu vou dar uma revisada no codigo, valeu pela ajuda!! abracos
  2. Ae pessoal, tudo bem?!? Estou com um problema muito estranho no meu programa, vou tentar ser o mais claro possivel Estou fazendo um jogo de paciencia em alegro, então para cada pilha do jogo eu declaro uma pilha diferente(p1,p2,p3...,p7), quando eu uso as funcoes de distribuir cartas somente com a p1 funciona certinho, mas quando declaro a p2, o programa compila certinho, mas não executa, não da erro nenhum, ele simplesmente não executa... o tipo de p1,p2,p3...,p7 é um ponteiro que aponta para a estrutura No quando eu declaro p1->base=NULL; p1->topo=NULL; da tudo certo, mas a partir do momento q eu declaro p1->base=NULL; p1->topo=NULL; p2->base=NULL; p2->topo=NULL; o programa já não executa.... alguém faz ideia do que possa ser?!? estou usando o Dev. segue o codigo ********** paciencia.h *********** #include <allegro.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <iostream> typedef struct no No; struct no{ BITMAP *carta; int x,y; char info[4]; bool estado; struct no *prox; }; typedef struct pilha Pilha; struct pilha{ No *topo; No *base; }; typedef struct baralho Vet; struct baralho{ char info[4]; }; void iniciaBaralho(Vet *vet1); void embaralha(Vet *vet2, Vet *vet1); void init(); void deinit(); void insereNo(Pilha *pil, int x, int y, char info[], bool estado); void desenhaPilha(Pilha *pil); void darCartas(Pilha *pil1, Pilha *pil2, Pilha *pil3, Pilha *pil4, Pilha *pil5, Pilha *pil6, Pilha *pil7, Pilha *monte1, Pilha *monte2 ,Vet vet2[]); ************ paciencia.cpp ********* #include "paciencia.h" void iniciaBaralho(Vet *vet1){ strcpy(vet1[0].info,"Ac"); strcpy(vet1[1].info,"2c"); strcpy(vet1[2].info,"3c"); strcpy(vet1[3].info,"4c"); strcpy(vet1[4].info,"5c"); strcpy(vet1[5].info,"6c"); strcpy(vet1[6].info,"7c"); strcpy(vet1[7].info,"8c"); strcpy(vet1[8].info,"9c"); strcpy(vet1[9].info,"10c"); strcpy(vet1[10].info,"Qc"); strcpy(vet1[11].info,"Jc"); strcpy(vet1[12].info,"Kc"); strcpy(vet1[13].info,"Ae"); strcpy(vet1[14].info,"2e"); strcpy(vet1[15].info,"3e"); strcpy(vet1[16].info,"4e"); strcpy(vet1[17].info,"5e"); strcpy(vet1[18].info,"6e"); strcpy(vet1[19].info,"7e"); strcpy(vet1[20].info,"8e"); strcpy(vet1[21].info,"9e"); strcpy(vet1[22].info,"10e"); strcpy(vet1[23].info,"Qe"); strcpy(vet1[24].info,"Je"); strcpy(vet1[25].info,"Ke"); strcpy(vet1[26].info,"Ap"); strcpy(vet1[27].info,"2p"); strcpy(vet1[28].info,"3p"); strcpy(vet1[29].info,"4p"); strcpy(vet1[30].info,"5p"); strcpy(vet1[31].info,"6p"); strcpy(vet1[32].info,"7p"); strcpy(vet1[33].info,"8p"); strcpy(vet1[34].info,"9p"); strcpy(vet1[35].info,"10p"); strcpy(vet1[36].info,"Qp"); strcpy(vet1[37].info,"Jp"); strcpy(vet1[38].info,"Kp"); strcpy(vet1[39].info,"Ao"); strcpy(vet1[40].info,"2o"); strcpy(vet1[41].info,"3o"); strcpy(vet1[42].info,"4o"); strcpy(vet1[43].info,"5o"); strcpy(vet1[44].info,"6o"); strcpy(vet1[45].info,"7o"); strcpy(vet1[46].info,"8o"); strcpy(vet1[47].info,"9o"); strcpy(vet1[48].info,"10o"); strcpy(vet1[49].info,"Qo"); strcpy(vet1[50].info,"Jo"); strcpy(vet1[51].info,"Ko"); } void desenhaPilha(Pilha *pil) { No *aux; aux = pil->base; while(aux->prox!=NULL) { if(aux->estado == true){ draw_sprite(screen,aux->carta,aux->x,aux->y); aux = aux->prox; _sleep(50); }else{ draw_sprite(screen,load_bitmap("C:\\Users\\user\\Desktop\\ED\\Allegro\\cartas\\deck.bmp",NULL),aux->x,aux->y); aux = aux->prox; _sleep(50); } } draw_sprite(screen,aux->carta,aux->x,aux->y); } void insereNo(Pilha *pil, int x, int y, char info[4], bool estado) { No *novo=(No*)malloc(sizeof(No)); char caminho[54]; strncpy(novo->info,info,4); novo->x = x; novo->y = y; novo->estado = estado; strncpy(caminho,"C:\\Users\\user\\Desktop\\ED\\Allegro\\cartas\\",47); strncat(caminho,novo->info,strlen(novo->info) ); strncat(caminho,".bmp",4); novo->carta = load_bitmap(caminho,NULL); if(pil->base == NULL) { pil->base = novo; pil->topo = novo; novo->prox = NULL; }else{ pil->topo->prox = novo; pil->topo = novo; novo->prox = NULL; } } void embaralha(Vet *vet2, Vet *vet1) { int k = 52; int random; int j = 0; srand(time(NULL)); while(k>0) { random = rand()%52; if( strcmp(vet1[random].info,"") != 0 ) { strcpy(vet2[j].info,vet1[random].info); strcpy(vet1[random].info,""); k--; j++; } } } void darCartas(Pilha *pil1, Pilha *pil2, Pilha *pil3, Pilha *pil4, Pilha *pil5, Pilha *pil6, Pilha *pil7, Pilha *monte1, Pilha *monte2, Vet vet2[]) { int i=0; char info[4]; /* //Monte 1 while(i<23) { insereNo(monte1,36+(2*i),33+(2*i),vet2[i].info,false); i++; } */ //Pilha 1 insereNo(pil1,50,200,vet2[i].info,true); i++; //Pilha 2 insereNo(pil2,150,200,vet2[i].info,false); i++; insereNo(pil2,150,203,vet2[i].info,true); i++; /* //Pilha 3 insereNo(pil3,250,200,vet2[i].info,false); i++; insereNo(pil3,250,203,vet2[i].info,false); i++; insereNo(pil3,250,206,vet2[i].info,true); i++; /* //Pilha 4 insereNo(pil4,350,200,vet2[i].info,false); i++; insereNo(pil4,350,203,vet2[i].info,false); i++; insereNo(pil4,350,206,vet2[i].info,false); i++; insereNo(pil4,350,209,vet2[i].info,true); i++; //Pilha 5 insereNo(pil5,450,200,vet2[i].info,false); i++; insereNo(pil5,450,203,vet2[i].info,false); i++; insereNo(pil5,450,206,vet2[i].info,false); i++; insereNo(pil5,450,209,vet2[i].info,false); i++; insereNo(pil5,450,212,vet2[i].info,true); i++; //Pilha 6 insereNo(pil6,550,200,vet2[i].info,false); i++; insereNo(pil6,550,203,vet2[i].info,false); i++; insereNo(pil6,550,206,vet2[i].info,false); i++; insereNo(pil6,550,209,vet2[i].info,false); i++; insereNo(pil6,550,212,vet2[i].info,false); i++; insereNo(pil6,550,215,vet2[i].info,true); i++; //Pilha 7 insereNo(pil7,650,200,vet2[i].info,false); i++; insereNo(pil7,650,203,vet2[i].info,false); i++; insereNo(pil7,650,206,vet2[i].info,false); i++; insereNo(pil7,650,209,vet2[i].info,false); i++; insereNo(pil7,650,212,vet2[i].info,false); i++; insereNo(pil7,650,215,vet2[i].info,false); i++; insereNo(pil7,650,218,vet2[i].info,true); i++; */ } void init() { int depth, res; allegro_init(); depth = desktop_color_depth(); if (depth == 0) depth = 32; set_color_depth(depth); res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0); if (res != 0) { allegro_message(allegro_error); exit(-1); } if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) < 0) { allegro_message(allegro_error); exit(-1); } install_timer(); install_keyboard(); install_mouse(); /* add other initializations here */ } void deinit() { clear_keybuf(); /* add other deinitializations here */ } ************** main.cpp ************ #include "paciencia.h" int main(void) { Vet vet1[52],vet2[52]; Pilha *p1,*p2,*p3,*p4,*p5,*p6,*p7; Pilha *monte1, *monte2;//,*s1,*s2,*s3,*s4; p1->topo=NULL; p1->base=NULL; p2->topo=NULL; p2->base=NULL; /* monte1->topo=NULL; monte1->base=NULL; p3->topo=NULL; p3->base=NULL; p4->topo=NULL; p4->base=NULL; p5->topo=NULL; p5->base=NULL; p6->topo=NULL; p6->base=NULL; p7->topo=NULL; p7->base=NULL; monte2->topo=NULL; monte2->base=NULL; */ init(); char caminho[54]; BITMAP *mesa = load_bitmap("C:\\Users\\user\\Desktop\\ED\\Allegro\\cartas\\mesa.bmp",NULL); draw_sprite(screen, mesa, 0, 0); iniciaBaralho(vet1); embaralha(vet2,vet1); darCartas(p1,p2,p3,p4,p5,p6,p7,monte1,monte2,vet2); //desenhaPilha(monte1); desenhaPilha(p1); desenhaPilha(p2); //desenhaPilha(p3); //desenhaPilha(p4); //desenhaPilha(p5); //desenhaPilha(p6); //desenhaPilha(p7); readkey(); deinit(); return 0; } END_OF_MAIN()
×
×
  • Criar Novo...