-
Posts
1.752 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que vangodp postou
-
@PenseC você copiou o código da internet?
-
fiz esse jogo uma vez. Lembro que precisei de duas matrizes, uma para posicionar as células e outra para atualizar, pois se você atualizar a célula na mesma matriz o resultado é ruim. Se quiserem ver está o tal programa deixo aqui embaixo. Esta feito em c++ e SFML. Não precisa de nada, é só abrir o "jogo da vida.cbp" e compilar. https://drive.google.com/drive/folders/1Tn80d7Xj819zD9xKb3pe2Q9k1-JvmC0F?usp=sharing o código é algo velho, se poderia melhorar muita coisas mas me contento com ver funcionando. XD mas como falei se pode ver a lógica nesse pedaço: for(int i = 0; i < ALTO; i++) { for(int j = 0; j < ANCHO; j++) { colindantes = 0; ((i - 1) < 0 || (j - 1) < 0) ? 0 : (MUERTA == m[i - 1][j - 1]) ? 0 : colindantes++; //arriba-izquierda ((i - 1) < 0) ? 0 : (MUERTA == m[i - 1][j ]) ? 0 : colindantes++; //arriba ((i - 1) < 0 || (j + 1) >= ANCHO) ? 0 : (MUERTA == m[i - 1][j + 1]) ? 0 : colindantes++; //arriba-derecha ((j - 1) < 0) ? 0 : (MUERTA == m[i ][j - 1]) ? 0 : colindantes++; //izquierda ((j + 1) >= ANCHO) ? 0 : (MUERTA == m[i ][j + 1]) ? 0 : colindantes++; //derecha ((i + 1) >= ALTO || (j - 1) < 0) ? 0 : (MUERTA == m[i + 1][j - 1]) ? 0 : colindantes++; //abajo-izquierda ((i + 1) >= ALTO) ? 0 : (MUERTA == m[i + 1][j ]) ? 0 : colindantes++; //abajo ((i + 1) >= ALTO || (j + 1) >= ANCHO) ? 0 : (MUERTA == m[i + 1][j + 1]) ? 0 : colindantes++; //abajo-derecha if(VIVA == m[i][j]) { if(colindantes < 2) { n[i][j] = MUERTA; } if(colindantes == 2 || colindantes == 3) { n[i][j] = VIVA; } if(colindantes > 3) { n[i][j] = MUERTA; } } if(MUERTA == m[i][j]) { if(colindantes == 3) { n[i][j] = VIVA; } } } } Como podem ver tenho 2 matrizes chamadas m e n. Primeiro passo casinha(célula) por casinha da matriz m, averiguando todas as posições "colindantes"(células adjacentes... é meio español o algoritmo hahah) e contando quantas células existem ao lado, e guardo o resultado na matriz n conforme as regras do criador do jogo(pode buscar jogo da vida na wikipedia). Logo mostro n na tela, depois faço uma copia de n em m e repito o processo. Uma melhoria seria evitar essa copia. Como? intercalando, mostrando uma vez n e outra m por exemplo, seria menos custoso para o programa. Bom... tenho que ir. Espero que sirva. não tenho ele feito em C e pior para console, mas a lógica é essa ai mais ou menos, é só mudar ele para console. Quero melhorar ele um dia quando tiver mais tempo. Depois passo e explico melhor se querem.
-
C sistema de cadastro - gostaria que apontassem erros ou possíveis melhorias
vangodp respondeu ao tópico de Elias Caldas em C/C#/C++
Toda a ajuda é sempre bem vinda por aquele que a necessita. As pessoas que entram aqui fazendo perguntas muitas vezes ignoram o bem que faz ter alguém aí sempre para ajudar sem animo de lucros. Por isso gosto desse fórum, n pelo dono e sim pela comunidade. Um forte abraço a todos e n liguem se sou um pouco vida loca hahaha. -
C Como fazer o codeblocks aceitar um numero com virgula
vangodp respondeu ao tópico de thiago.celestino em C/C#/C++
float f = 5.6 int n = f XD -
C++ Como eu consigo inserir elementos em um ARRAY de STRUCT C++
vangodp respondeu ao tópico de William Cruuz em C/C#/C++
poderia postar o tal arquivo? N precisa ser inteiro, com 2 ou 3 linhas seria suficiente. -
C sistema de cadastro - gostaria que apontassem erros ou possíveis melhorias
vangodp respondeu ao tópico de Elias Caldas em C/C#/C++
fico só imaginando o que você ia montar com tudo o que você falou shuesuhesuhe. você tem algum canal... sei lá, no youtube por exemplo? Algum blog? -
C sistema de cadastro - gostaria que apontassem erros ou possíveis melhorias
vangodp respondeu ao tópico de Elias Caldas em C/C#/C++
falei que era doido esse arf =D -
C sistema de cadastro - gostaria que apontassem erros ou possíveis melhorias
vangodp respondeu ao tópico de Elias Caldas em C/C#/C++
Acho que não deveria jamais usar fflush junto com stdin. Tem outras formas de esvaziar o buffer ou evitar que entre "lixo" no buffer, se pesquisar aqui mesmo no fórum você pode ver umas quantas. O fflush junto com stdio pode ter efeitos imprevisíveis no programa e fazer ele falhar, quanto antes você entender isso antes você se cura deste vicio. Vaticino que vai vir arf por aqui também pra falar sobre o "lixo" Espero que ele com sua paciência lhe faça uma boa guia sobre isso. Para você ter uma ideia do que to falando poderia dar uma lida aqui: Outra leitura poderia ser: https://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ -
C++ Diferença entre implementações de construtores
vangodp respondeu ao tópico de AdrianoSiqueira em C/C#/C++
você acha que eu vou ficar aqui escrevendo 20 posts com você? Que lhe diga o dono do tema se ele achar que resolveu ou não a questão. É a ele que você tem que escrever não a mim. -
Em vez de usar system para borrar toda a janela procure borrar só o que for alterado. cmd é um pé nos fundos para fazer jogos. você pode usar gotoxy para pular de um lugar a outro e alterar só o que for preciso, assim você ganhará em velocidade.
-
C++ Diferença entre implementações de construtores
vangodp respondeu ao tópico de AdrianoSiqueira em C/C#/C++
Em um suposto caso simples pode até ser. Mas você pecou ao n dizer que sim tem algumas diferenças não é por estética como disse antes. Se o construtor da classe base tiver parâmetros é nesta lista que tem que dar os valores. -
você poderia ler ele como 1.50000 passar ele para string e mostrar o valor formatado
-
C++ Diferença entre implementações de construtores
vangodp respondeu ao tópico de AdrianoSiqueira em C/C#/C++
A diferença é algo mias que simples ser "compacta e legível". Imagine o caso de você herdar de uma classe e precisar que os membros herdados tenham um valor antes mesmo que os proprios membros da sua classe... Para isso existe lista de inicialização. O outro é uma simples atribuição. E não só isso... Imagine o caso que você tenha uma constante como membro da sua classe... você acha que será capaz dar um valor inicial fazendo uma atribuição dentro do construtor? Somente se pode fazer isso na lista de inicialização. Se poderia dizer que são 2 coisas diferentes... construir e inicializar. Antes da chave de abertura do construtor é construção e depois da chave é atribuição. Imagine um caso no qual você tem um vehiculo e dentro tem o numero de rodas que seria uma constante... algo como isso: class vehiculo{ unsigned const int nRodas; }; você acha que poderia dar um valor assim? class vehiculo{ vehiculo(unsigned const int n) { this->nRodas = n; } unsigned const int nRodas; }; A unica forma de fazer isso é dando o valor na hora de "construir" a variável. Digo construir, mas é na hora de que a variável "ganha a memória", porque todos sabemos que dita variável constante n poderá tomar valor posteriormente. Si usamos listas de inicialização você sim poderá dar valor a dita variável: class vehiculo{ vehiculo(unsigned const int n): nRodas{n} {} unsigned const int nRodas; }; Então se poderia dizer que nomeConstrutor(atributos ou não) construção { atribuição } Depois da chave de abertura como podemos ver, se trata de atribuição. É como se a variável ja existisse e estivéssemos tentando dar um valor, coisa que com constantes n é possivel. Então meu caro @AdrianoSiqueira não é simples "estética", é algo mais complicado, porém n tanto. Se alguma vez se der o caso de que você por exemplo herdar de outra classe e precisar de que dita classe tenha que tomar certos valores antes de que os próprios membros, lista de inicialização é a melhor forma, porque uma vez que você passar da chave de abertura tudo já vai estar na memória e dai talvez seu programa seja capaz de n se comportar como você deseja. -
openal talvez
-
C++ ERROR Expected primary-expression before return
vangodp respondeu ao tópico de MachadoMatt em C/C#/C++
@MariScr quando aparecer o "before algo" ou o que é ser traduzido a "antes de algo", pode ser mesma linha ou na linha anterior o tal erro, ja que para o compilador n ha linha anterior, ele considera que tudo esta na mesma linha, e por isso devemos por ; para separar as sentenças. O treixo: char palavra [30],letra[1],secreta[30]; int tam,i,chances,acertos; bool acerto; chances=6; tam=0; i=0; acerto=false; acertos=0; cout << "Fala para seu amigo tampar os olhos e digite a palavra secreta: "; cin >> palavra; system("cls") ,return 0; } para o compilador tem o mesmo efeito que: char palavra [30],letra[1],secreta[30]; int tam,i,chances,acertos; bool acerto; chances=6; tam=0; i=0;acerto=false; acertos=0; cout << "Fala para seu amigo tampar os olhos e digite a palavra secreta: "; cin >> palavra; system("cls"); return 0;} Por isso o compilador fala "before"... por que si tudo tivesse na mesma linha, estaria before(antes do return neste caso) -
O que é isso?
-
Os criadores do dev c++ original ja não continuam o projeto a muito tempo. No seu lugar há um substituto chamado dev c++ orwell, que é mantido por esse tal senhor chamado Orwell. diga de onde baixou o seu dev c++ para ver si esse é o problema. Si não busque no google "dev c++ orwell" e talvez com essa versão seja possivel. A pagina é essa si lhe interessa: http://orwelldevcpp.blogspot.com/ porém como pode observar essa versão ja é também algo meio que antiga(2015). Lhe sugiro que use algo mais atualizado como codeblocks ou visual studio entre outros.
-
C Problema envolvendo arquivos e trigonometria!!
vangodp respondeu ao tópico de PauloRicardoo em C/C#/C++
Cuando foi que ang tomou valor? -
Se quer facilidades vai para C#. Se quer aprender no hard e saber o por que das coisas... então vai pro C++. Em outras palavras C# é C++ com rodinhas pra você n4ao se machucar quando cair. >_< Mas não pense que c# vai lhe facilitar tanto assim a vida. Prepare-se para noites e noites de leitura e e ensaios... essa é a vida de todo programador/estudante.
-
coloque a seguinte linha no inicio do main: int main(){ srand ( time ( NULL ) ); ... Precisa fazer a inclusão da biblioteca time.h para usar a função time.
-
talvez se pegar o código e passar ele para um arquivo .c e ir tentando compilar ele acho que você seria capaz de conseguir.
-
A consulta é sobre c++. adicionado 19 minutos depois Si se trata de c++, e saltando todas essas funções que para mim são desconhecidas... Para usar string(me refiro a classe string de c++) junto com printf/scanf você deve fazer algo como isso: #include <iostream> using namespace std; int main (int argc, char* argv[]) { string s(100, '\0'); scanf("%s", s.c_str()); printf("%s", s.c_str()); } Se deve usar o construtor da classe string para dar um tamanho predefinodo, e como em C, n pode extrapolar esse tamanho. Talvez seja melhor usar o conjunto de recursos que lhe proporciona c++ como getline, cin, cout, etc, para manipular essa string.
-
C++ Estou Tentando traduzir um jogo
vangodp respondeu ao tópico de Carlos Vinicius Coelho em C/C#/C++
você sabe programar em C? -
C++ Estou Tentando traduzir um jogo
vangodp respondeu ao tópico de Carlos Vinicius Coelho em C/C#/C++
Não lhe entendo... você quer traduzir o que? -
Então você me esta dizendo que 0 em outras linguagens não é falso? Que é então? não há coisas como 0==0 em outras linguagens?
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais