Ir para conteúdo
Fórum Script Brasil

Inufelipe

Membros
  • Total de itens

    186
  • Registro em

  • Última visita

Tudo que Inufelipe postou

  1. Ola galera do Script Brasil Forum. Eu estava "inocentemente" escrevendo um joguinho de um plantador de maças... ...quando derepente aparece um "stack smashing detected", esse erro é novo ainda para mim, o que ele faz ? E como resolvelo ? Se quiserem dar uma olhada no codigo: Apples.cpp #include <iostream> #include <stdio.h> #include <time.h> class Planter{ private: int apple,money,area,quality,appletree; public: void take(){ if(money > (area+appletree)-1){ srand(time(NULL)); apple = appletree*(rand()%10+1); money -= area+appletree; srand(time(NULL)); quality = rand()%3+1; printf("Voce colheu %d macas.",apple); } else{ printf("Voce não tem dinheiro suficiente."); } getchar(); getchar(); printf("\n\n"); } void sell(){ int price; bool isgood; bool ok; ok = 0; srand(time(NULL)); printf("Por quanto voce vendera a unidade da maca (1-3) ?\n\n"); scanf("%d",&price); switch(price){ case 1: ok = 1; break; case 2: if(quality == 2){ isgood = rand()%2; if(isgood == 1){ ok = 1; } } break; case 3: if(quality == 3){ isgood = rand()%2; if(isgood == 1){ ok = 1; } } break; } if(ok == 1){ money += apple*price; printf("Voce ganhou %d reais.",apple*price); apple = 0; } else{ printf("Esta muito caro, suas macas apodreceram."); apple = 0; } getchar(); getchar(); printf("\n\n"); } void test(){ apple--; switch(quality){ case 1: printf("Esta boa"); break; case 2: printf("Esta otima"); break; case 3: printf("Esta deliciosa"); break; } getchar(); getchar(); printf("\n\n"); } void plant(){ bool ok; ok = 0; if(area > appletree){ if(apple > 0){ if(money > 1){ ok = 1; } } } if(ok == 1){ apple--; money-=2; appletree++; printf("Voce tem mais uma macieira\n\n"); } else{ printf("Para plantar mais uma macieira voce precisa de 1 m2 de espaco sobrando, 2 reais e uma maca, voce não tem isso.\n\n"); } getchar(); getchar(); printf("\n\n"); } void buy(){ if(money > 4){ money -= 5; area += 1; printf("Voce comprou mais um metro quadrado."); } else{ printf("Voce não tem dinheiro."); } getchar(); getchar(); printf("\n\n"); } int s2i(char *data){ int result = 0; int temp; while(*data <= '9' && *data >= '0'){ switch (*data){ case '0': temp = 0; data++; break; case '1': temp = 1; data++; break; case '2': temp = 2; data++; break; case '3': temp = 3; data++; break; case '4': temp = 4; data++; break; case '5': temp = 5; data++; break; case '6': temp = 6; data++; break; case '7': temp = 7; data++; break; case '8': temp = 8; data++; break; case '9': temp = 9; data++; break; } result = (result*10)+temp; } return result; } void load(){ FILE *f; char content[256]; int i; char tmp[20]; int j; if(f = fopen("data.txt","r")){ fscanf(f,"%s",&content); i = 0; while(content[i] != ''){ if(content[i] == 'A'){ j = 1; while(1){ if(content[(i+j)] != 'A' && content[(i+j)] != 'M' && content[(i+j)] != 'R' && content[(i+j)] != 'que' && content[(i+j)] != 'T'){ tmp[(j-1)] = content[(i+j)]; j++; } else{ tmp[(j-1)] = ''; break; } } apple = s2i(tmp); i+= j; } if(content[i] == 'M'){ j = 1; while(1){ if(content[(i+j)] != 'A' && content[(i+j)] != 'M' && content[(i+j)] != 'R' && content[(i+j)] != 'que' && content[(i+j)] != 'T'){ tmp[(j-1)] = content[(i+j)]; j++; } else{ tmp[(j-1)] = ''; break; } } money = s2i(tmp); i+= j; } if(content[i] == 'R'){ j = 1; while(1){ if(content[(i+j)] != 'A' && content[(i+j)] != 'M' && content[(i+j)] != 'R' && content[(i+j)] != 'que' && content[(i+j)] != 'T'){ tmp[(j-1)] = content[(i+j)]; j++; } else{ tmp[(j-1)] = ''; break; } } area = s2i(tmp); i+= j; } if(content[i] == 'que'){ j = 1; while(1){ if(content[(i+j)] != 'A' && content[(i+j)] != 'M' && content[(i+j)] != 'R' && content[(i+j)] != 'que' && content[(i+j)] != 'T'){ tmp[(j-1)] = content[(i+j)]; j++; } else{ tmp[(j-1)] = ''; break; } } quality = s2i(tmp); i+= j; } if(content[i] == 'T'){ j = 1; while(1){ if(content[(i+j)] != 'A' && content[(i+j)] != 'M' && content[(i+j)] != 'R' && content[(i+j)] != 'que' && content[(i+j)] != 'T'){ tmp[(j-1)] = content[(i+j)]; j++; } else{ tmp[(j-1)] = ''; break; } } appletree = s2i(tmp); break; } } } free(f); } Planter(){ int menu; apple = 3; money = 10; area = 3; quality = 0; appletree = 0; printf("\n\t1.Novo Jogo"); printf("\n\t2.Carregar Jogo\n\n>"); scanf("%d",&menu); switch(menu){ case 2: load(); } printf("ok\n"); while(1){ printf("Voce tem %d macas, %d macieiras, %d reais e %d M2 de area.\n\n",apple,appletree,money,area); printf("Opcoes:\n\t1.Colher\n\t2.Vender\n\t3.Provar uma maca\n\t4.Plantar\n\t5.Comprar M2\n\n> "); scanf("%d",&menu); printf("\n\n"); switch(menu){ case 1: take(); break; case 2: sell(); break; case 3: test(); break; case 4: plant(); break; case 5: buy(); break; } } } }; int main(){ Planter planter; }; O erro ocore quando você carega o arquivo usando a função load(), para caregar tem que usar um arquivo chamado data.txt: data.txt A10M10R10Q3T10 falous
  2. Inufelipe

    Mande Seu Projeto

    E quem não tem Microsoft Ofice Word ? Como os usuarios de Linux e outros sistemas que não tem asseso, estarão desclasificados ? falous
  3. Felizmente espero que o WM seja bem melhor que meu português. Malz ai pelos erros de português... Se alguém ai quizer corrigir ( editando ou postando a correção ). Ficarei grato. Ai tem mais uma vaga... Uma pessoa que saiba bem o português. Falous
  4. Ola galera do Script Brasil forum. Eu gostaria de saber quem esta entereçado em ajudar a fazer um Gerenciador de Janelas ( window maneger ) para Linux. Eu sei que existem muitos WM, porem tem uns que são uma quase copia do windows, outros são bem simples. O que mais diferente é o GNOME, e é muito bom, porem é muito parecido... O objetivo desse WM, é um ambiente diferente, poderoso e GNU, por isso eu estou convidando quem quizer me ajudar. Mande um email( inufelipe@yahoo.com.br ) ou poste abaixo. Quem quizer ajudar, de preferencia, tenha conhecimento em: -- C/C++ -- OpenGL -- Xlib -- Desing Grafico -- Animações e seus logaritimos Ou qualquer outra area, linguaem ou biblioteca, mas o importante é querer ajudar a fazer o WM. falous.
  5. Eu consegui instalar, porem para compilar um arquivo (escrito por mim) como eu faço ? OBS: estou usando ubuntu agora (7.04) falous
  6. #include <stdio.h> #include <stdlib.h> #include <string.h> class File{ private: FILE *file; int can; char nomef[256]; public: File(char nome[]){ int x; x = strlen(nome); strcpy(nome,nomef); } }; int main(){ File file("tst.txt"); } Porem mesmo assim(sem usar ponteiros) acontece o erro!!!
  7. Deu o mesmo erro!!! Eu uso o Ubuntu Fest(7.04) eu atualizei ele pelo o atualizador do Ubuntu que é uma estrela laranja dai ele atualizou o kernel (eu acho) e dai la no gerenciador de boot apareceu mais um Ubuntu só que agora com o final 16, mais o normal era com final 15.... O 16 da problema ao rodar dai eu tenho que escolher o 15.... Talvez isso seja o problema.... Caso for isso algum moderador pode mover meu tópico. Falous
  8. E se eu quiser alterar uma linha e depois compilar eu uso esse mesmo processo ? E por que eu não posso usar o G++ ? falous
  9. Falha de segmentação (core dumped) Isso foi o que apareceu na hora de Executar.... falous
  10. Ola galera do script brasil forum. Eu estou escrevendo uma header para manipulação de arquivos... #include <stdio.h> #include <stdlib.h> #include <string.h> class File{ private: FILE *file; int can; char *nomef; public: File(const char *nome){ int x; x = strlen(*nome); nomef = (char *)malloc(x * sizeof(char)); strcpy(*nome,*nomef); } }; int main(){ File file("tst.txt"); } Ao compilar ele alega: file.h: In constructor ‘File::File(const char*)’: file.h:13: error: invalid conversion from ‘const char’ to ‘const char*’ file.h:13: error: initializing argument 1 of ‘size_t strlen(const char*)’ file.h:15: error: invalid conversion from ‘const char’ to ‘char*’ file.h:15: error: initializing argument 1 of ‘char* strcpy(char*, const char*)’ file.h:15: error: invalid conversion from ‘char’ to ‘const char*’ file.h:15: error: initializing argument 2 of ‘char* strcpy(char*, const char*)’ Os tivpos são diferentes? Estou escrevendo errado o codigo? se alguém poder me ajudar... falous
  11. Ola galera do Script Brasil forum. Eu estou estudando os Windows Manegers( no meu caso o BlackBox), porem ao eu chegar na pasta SRC/ percebi que havia mais de um arquivo.Este é o primeiro codigo-fonte que eu abro e estudo. Gostaria de saber duas coisas: 1. Por que tantos arquivos, em ves de um arquivo estenço ? 2. Como eu faço para compilar tudo ? falous
  12. Beleza cara, eu baixei o BlackBox, porem tem uns 20 arquivos por qual começo ? ou você acha que eu vejo o Xorg primeiro? falous
  13. Ola galera do Script Brasil forum. Eu instalei o Ubuntu Festy, porem para mim programar em PHP com o MYSQL presiso instalar o LAMP(Linux + Apache + MySQL + PHP). Se alguém tiver um tutorial ai, ou saber um repositorio APT-GET, falous.
  14. Obrigado pelas dicas, mais eu não irrei precisar de uma biblioteca de gráficos ??? Um window maneger é um gerenciador de janelas, como o KDE, GNOME, IceWM, blackbox,fluxbox para o Linux e outros para o ******* tambem tem mais não sei o nome, para *** ** * tem o Aqua GUI. falous
  15. Ola galera do Script Brasil Forum. Eu estou aprendendo a programar, e agora eu estou querendo programar gráficos em C/C++. Eu usei o GTK, porem apenas consegui fazer forumularios... Eu ouvi falar do OpenGL, eu gostaria de saber como instalar para poder progamar... OBS: eu possuo Protetores de tela com OpenGL, porem os scripts que eu testei não funcionaram, eu tenho que botar alguma opção a mais, como no GTK (g++ teste.cpp -o teste `pkg-congig --cflags --libs gtk+-2.0`)? falou
  16. Ola galera do script brasil forum. Eu sei que deve ser uma tarefa muito dificil, porem eu gostaria de saber oque eu preciso saber para fazer um windowmaneger no linux? seria: uma linguagem de progamação: C++ uma biblioteca grafica: GTK+GDT falous
  17. Inufelipe

    gráficos

    Ola galera, Eu estou aprendendo o GTK, porem eu apenas consegui fazer formularios(já tou bastante feliz). Porem eu gostaria de algo mas animado como as animaçoes que eu fazia em JavaScript e CSS no webbrowser. Devo usar outra biblioteca? Ou tem como fazer no GTK+. Um dia eu vou fazer um WM(window maneager), para fazer eu posso usar o GTK+, como no gnome ? E se eu quiser fazer efeitos Beryl-like, da pra fazer no GTK+, falous.
  18. como organizar variaveis por Pai e Filho(xml like)? falous
  19. Cara valeu mesmo!!!!! a postagem de Felipe poderoso, dis que eu posso usar string function(){}; porem aqui, no compilador G++, isto não é posivel apesar de eu ter achado mais massa o MALOC e o FREE, só gostaria de saber se meu compilador esta com problema. falous
  20. Cara você é muito bom... Mais eu só não entendi uma coisa... Em vez de usar o Return, eu uso uma varivel global ou ponteiro ? e, se eu usar o new em vez do malloc ? e qual a diferença entre free() e delete? falou
  21. Isso eu uso dentro da função GET ? oque é : malloc??? (char *)??? sizeof()?? * 256 ??? falous
  22. Olá galera do Script Brasil Forum. Eu estou criando uma mini-bliblioteca, para facilitar a vida na hora de mecher com arquivos. #include <stdio.h> #include <iostream> #include <string.h> #include <cstring> class Dater{ private: FILE *f; char nome[256]; public: Dater(char nomet[]){ if(fopen(nomet,"r") == NULL){ f = fopen(nomet,"w"); fclose(f); } strcpy(nome,nomet); } char* get(){ char cnt[256]; if(fopen(nome,"r")){ f = fopen(nome,"r"); fscanf(f,"%s",&cnt); fclose(f); return cnt; } } void put(char* val){ if(fopen(nome,"w")){ f = fopen(nome,"w"); fprintf(f,"%s",val); fclose(f); } } void add(char* val){ if(fopen(nome,"w")){ f = fopen(nome,"w"); fprintf(f,"%s",strcat(val,get())); fclose(f); } } }; int main(){ Dater date("teste.txt"); printf("%s",date.get()); } na hora da compilação(uso o g++): $ g++ src/dater.cpp -o dater src/dater.cpp: In member function 'char* Dater::get()': src/dater.cpp:19: warning: address of local variable 'cnt' returned e na hora de compilar: É VASIO!!! se alguém poder me ajudar... falous.
  23. Inufelipe

    Retornar String

    se for isto, aqui não funcionou nenhum. falow.
  24. Inufelipe

    Retornar String

    Tipo: char * get(){ return "abc"; } ????
×
×
  • Criar Novo...