Ir para conteúdo
Fórum Script Brasil

Mnemonic

Membros
  • Total de itens

    170
  • Registro em

  • Última visita

Tudo que Mnemonic postou

  1. Mnemonic

    Strings

    char string[100]; gets(string); Nessa parte digamos que o usuário digitou "testando"; então: string[0] vai ser igual a 't' string[1] vai ser igual a 'e' string[2] vai ser igual a 's' string[3] vai ser igual a 't' etc... int i; i = 0; string vai ser igual a 't' i = 1; string vai ser igual a 'e' i = 2; string vai ser igual a 's' etc...
  2. Se você fez exatamente assim, deveria funcionar. Veja se não é o caso dos nomes estarem diferentes (maiúsculos) ou dos arquivos estarem com permissão pra serem acessados. Se você usa apenas "import tank" funciona normal? Em tankgame você está usando as funções de tank diretamente ou tá usando "tank." na frente delas?
  3. Deixe a parte gráfica pro final. O importante primeiro é representar os tipos de dados. Primeiro você precisa representar um vértice do poligono. Como eles estão no plano cartesiano, todos eles terão uma coordenada X e Y, além de estarem ligados sempre a outros dois vértices. typedef struct tVertice { float X; float Y; struct tVertice *p; //proximo struct tVertice *a; //anterior } vertice; Um poligono vai ser um conjunto de vértices, então você precisa perguntar ao usuário o número de vértices do poligono dele e a partir daí você cria uma função que vai setando as coordenadas X e Y e ligando os ponteiros entre os vértices que for criando, de modo que o *a de um seja igual ao *p de outro. E no final você liga o *p do último com o *a do primeiro. Depois disso vai ficar mais fácil pra usar as funções da graphics.h, porque basta percorrer a lista e desenhar as coordenadas que você pegou.
  4. Você pode usar os codigos de escape do terminal mesmo... mas sinceramente eu acho que fica muito bagunçado. Aqui tem exemplos: http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
  5. Mnemonic

    gcc no debian

    Pra c++ usa o g++ em vez do gcc
  6. Mnemonic

    Ajuda com arquivos

    Você tem que dizer qual é a sua dúvida, senão fica parecendo que você quer que alguém resolva pra você.
  7. Mnemonic

    Problemas com Compilador

    O Dev foi abandonado há muito tempo. Um bom substituto é o codeblocks.
  8. Eu tava pronto pra te passar vários sites aqui, mas fui notando que a maioria deles não tinha pascal. Pascal é uma ótima linguagem pra aprender na faculdade, mas na internet você vai tirar mais proveito escolhendo C, porque a maioria dos códigos pascal que você encontra são na verdade código delphi, que acho que não ajuda muito pra aprender logica. O que sobrou foi esse: http://www.sourcecodeonline.com/code/pascal.html
  9. Mnemonic

    Ajuda matrizes

    Vou dizer como eu faria, daí você vê se dá uma luz ou não. Eu criaria um vetor de tamanho 24 (6x4) com os pares de figuras do jogo. Você pode representar eles como números mesmo. Por exemplo, números de 1 até 24, e os pares seriam: 1-2, 2-4, 3-6, 4-8, etc (ou seja, um número e o dobro dele formariam um par... mas qualquer outra regra serve). Depois no código eu faria uma matriz 6x4, e nela eu iria inserir esses números do vetor, usando algum tipo de randomização (você pode também criar algo pra desordenar o vetor antes de inserir). 01 02 03 04 05 06 07 08 09 10 11 12 ... Em seguida, criaria uma segunda matriz, do mesmo tamanho e também guardando valores numéricos. Essa matriz serviria apenas pra guardar a "máscara" do "quente/morno/frio". Digamos que quente seja 2, morno seja 1, frio seja 0. Essa matriz seria inicializada com 0. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... Na matriz principal o usuário escolhe "14". Seu programa procura nessa matriz a posição de 07 (o par de 14). Digamos que a posição seja [2][3]. Então na segunda matriz, qualquer coordenada que a linha X seja maior que 2, ou menor que 2, e a coluna Y seja maior que 3 ou menor que 3, você soma mais 1. 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 ... Depois disso, mais uma passagem: Qualquer coordenada onde o X seja menor que 2-1 ou maior que 2+1 e o Y seja menor que 3-1 ou maior que 3+1, você soma mais um. 2 1 1 1 2 1 0 1 2 1 1 1 2 2 2 2 ... Depois é só pensar em algum jeito de exibir tudo na tela em forma de jogo.
  10. for (x1 = 0.6; x1 <= 1.0; x1 += 0.1) for (x2 = 0.7; x2 <= 1.0; x2 += 0.1) for (x3 = 0.5; x3 <= 1.0; x3 += 0.1) for (x4 = 0.6; x4 <= 1.0; x4 += 0.1) printf("%f %f %f %f\n", x1, x2, x3, x4); Queria pensar num jeito mais elegante, mas só consegui isso.
  11. Você pode representar as quadras usando uma matriz: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o X representa o seu ponto de partida [5][17] numa matriz 10x27. Digamos que todas as posições estejam preenchidas com 0, menos a posição 5x17, que é 1. Se a entrada for NLLSOO você testa cada caractere da entrada e: N: matriz[x-1][y] (uma linha pra cima) S: matriz[x+1][y] (uma linha pra baixo) L: matriz[x][y+1] (uma coluna pra direita) O: matriz[x][y-1] (uma coluna pra esquerda) Enquanto caminha pela matriz, você vai fazendo os testes pra ver o valor das linhas está entre 0-9 e as colunas entre 0-26 (os limites da cidade). Assim como testa se no final voltou pro ponto de origem.
  12. typedef Struct sNomes { char nome[50]; } NOMES; NOMES nomes[10][10]; //....... nomes[4][2].nome = "blablabla"; Esse é apenas um dos jeitos de fazer. Não é o melhor, mas acho que o código fica bem legível assim. Desculpe a falta de criatividade pros nomes.
  13. Mnemonic

    relações entre classes

    Não seria com o uso de herança de classes?
  14. char umCharQualquer; char umaString[40]; int x, n=0; scanf("%c", &umCharQualquer); //aqui você lê o char scanf("%s", umaString); //aqui você lê a string for (x=0; x < strlen(umaString); x++) if (umaString[x] == umCharQualquer) n++; printf("%c apareceu %d vezes, umCharQualquer, n);
  15. Mnemonic

    Ponteiros e strings

    Scanf funciona apenas pra palavras, pra frases inteiras usa o gets ou o fgets
  16. Mnemonic

    iniciando em python

    O site oficial do python é bem completo quanto a isso. Além de baixar o executável, você tem lá um tutorial e um livro gratis.
  17. Usando o fgets, você pode limitar o tamanho do buffer a ser lido. Mas usando o gets normal não. Ou seja, se a sua string tem um tamanho [5] e o usuário digitar dezenas de caracteres, esses caracteres após a posição 5 vão ser escritos em posições não reservadas da memória... na melhor das hipóteses vai apenas escrever lixo na memória, mas na pior das hipóteses pode ser usado pra criar alguma brecha de segurança no seu programa (sobrescrever alguma memória adjacente importante) ou travar o programa. Em alguns compiladores, se você usa o gets você recebe um warning.
  18. Eu consigo pensar aqui em 5 FOR's aninhados. Funciona, mas não sei se é a solução mais prática.
  19. Tá faltando um "break;" nos cases. case 1: m = 31; case 2: m = 30; break; case 3: m = 31; break; Nesse exemplo de cima, se o case for 1, ele vai executar o "m=31" e logo em seguida vai executar o "m=30", depois vai sair do switch por causa do "break". Se o case for 2, ele apenas executa o "m=30" e sai do swtich.
  20. Tem dois problemas aí... um deles é o seguinte: Quando você usa apenas o nome de um array, sem o indice, isso equivale ao ponteiro/endereço pro próprio array. A função scanf pede como segundo parametro o endereço pra variável onde ele vai guardar o valor lido, por isso você usa o simbolo de endereço (&) geralmente, mas no caso dos array não precisa, por isso que eu disse. Então em vez de scanf("%s", &dados.nome); Você usa: scanf("%s", dados.nome); pois dados.nome já é um endereço. O segundo problema é que a função scanf lê apenas palavras e não frases. Então sempre que tiver um espaço em branco ou um enter, ele vai parar de ler. Tem duas soluções... a simples e perigosa: gets(dados.nome); E a complicada e segura: fgets(dados.nome, 50, stdin); (50 é o tamanho maximo que você quer ler) (stdin é o buffer do teclado)
  21. Tente isso: m = int(a) + int(B) + int(c)
  22. int pp=1,tam,x; //pp, tam e x são do tipo int. pp começa com valor 1 printf("\nAs letras na posicao impar são: ",x); //imprime aquela frase e o valor de x. Mas x tá sem valor nenhum aqui. while(pp<=tam-1) // testa de pp menor ou igual a (tam - 1) printf(" %c ",APELIDO[pp]); //imprime o caractere da posição pp do vetor apelido.
  23. a[2] ---> Esse vetor tem DUAS posições: a[0] e a[1] A posição a[2] não existe. a[3] ---> 3 posições: a[0], a[1] e a[2]... a posição a[3] não existe também. Você tá declarando uma matriz [2][2], ou seja, 2x2. Se quiser uma 3x3, precisa declarar a[3][3].
×
×
  • Criar Novo...