Ir ao conteúdo

Posts recomendados

Postado

Boas a todos. galera é o seguinte, to precisando entregar um programa em C que simule o movimento de duas particulas em um ambiente fechado e sem interferencias externas. é mais ou menos como aqueles descansos de tela de alguns aparelhos DVD que ficam se movientando e quando se chocam na tela continuam o movimento de acordo com o angulo da colisão. o problema é q minnha professora pediu duas particulas e essas duas particulas podem se chocar e descrever o mesmo movimento de um choque com a tela.

ate agora achei pouco material falando sobre o assunto, ouvir falar sobre uma função. a gotoxy(x,y). Alguem tem alguma ideia como funciona ou tem alguma dica para eu implementar o programa?

grato desde já;

  • Curtir 1
Postado

Aê emanocrouch, a função "gotoxy(x,y)" move o cursor para a linha y e coluna x,aqui um exemplo (como aqui não tenho nehum header com esta função quando preciso usa-la, improviso...):


#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
void gotoxy(int x, int y){
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
}
int main(void){
gotoxy(3,7);
printf("l:7 c:3");
gotoxy(9,15);
printf("l:15 c:9");
gotoxy(20,3);
printf("l:3 c:20");
system("pause >nul");
return 0;
}

Espero ter ajudado...

E quanto ao teu programa, poste o que você já fez...

Falou.

  • Curtir 1
Postado
  W_Neto disse:
Aê emanocrouch, a função "gotoxy(x,y)" move o cursor para a linha y e coluna x,aqui um exemplo (como aqui não tenho nehum header com esta função quando preciso usa-la, improviso...):


#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
void gotoxy(int x, int y){
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
}
int main(void){
gotoxy(3,7);
printf("l:7 c:3");
gotoxy(9,15);
printf("l:15 c:9");
gotoxy(20,3);
printf("l:3 c:20");
system("pause >nul");
return 0;
}

Espero ter ajudado...

E quanto ao teu programa, poste o que você já fez...

Falou.

O problema é q eu ainda não encontrei como implementar.

ta muito complicado ;

Como eu faço pra fazer o cursor se movimentar?

valeu ai pela dica.vou tentar aqui e postar os resultados

  • Curtir 1
Postado

Mano sobre a particula, já que é C te aconselho a usar etruturas (struct's), e usar um pouco de lógica... veja um exemplo que cria uma particula:


#include<stdio.h>
#include<conio.h>
#include<windows.h>
typedef struct{int x,y;} c_Coord;//guarda coordenadas
typedef struct{c_Coord pos,mov;} _particula;//a estrutura das particulas
void gotoxy(int x, int y){
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
}
void update_particula(_particula *particula){
gotoxy(particula->pos.x,particula->pos.y);
putchar(' ');
if(particula->pos.x==80)particula->mov.x=-particula->mov.x;
if(particula->pos.y==25)particula->mov.y=-particula->mov.y;
if(particula->pos.x==1)particula->mov.x=-particula->mov.x;
if(particula->pos.y==1)particula->mov.y=-particula->mov.y;
particula->pos.x+=particula->mov.x;
particula->pos.y+=particula->mov.y;
gotoxy(particula->pos.x,particula->pos.y);
putchar('o');
}
int main(void){
_particula particula = {{10,10},{1,1}};
while(!_kbhit()){
_sleep(100);
update_particula(&particula);
}
return 0;
}

Falou.

  • Curtir 1
Postado

Eu adaptei um aqui que eu tinha feito para simular um jogo de ping-pong, emitindo sons ao "bater" nas bordas. Tem só uma "partícula", mas dá pra adaptar para duas.

#include <stdio.h>
#include <windows.h>


void gotoxy(int x, int y)
{
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
} /* definição de gotoxy(x,y) */

main(void)
{
int x=1,y=1,i;
int dx=-1,dy=-1;
system("cls");
do {
gotoxy(x,y);
putch(02);
for(i=0;i<1000000;i++); /* define a velocidade: n° maior, velocidade menor */
gotoxy(x,y);
putch(32);
if(x==1 || x==95) dx=-dx;
if (y==1 || y==34) dy=-dy;
x+=dx;
y+=dy;
}while (!kbhit()); /* encerra o programa ao pressionar qualquer tecla */
}

Acho que dá pra ajudar...

Postado

Falou galera pela ajuda, vocês quebraram um galhão, graças a Deus consegui alguem q soubesse alguma coisa sobre essa função. O pior é q o programa precisa dela e o professor nunca se quer citou na sala.

valeu a todos pela ajuda

  • Curtir 1
  • 9 anos depois...
Postado

Olá pessoal! Preciso da ajuda de vcs com relação a 
#include <conio.h>
gotoxy ( )

😥

 

Sou novata na área de programação e peço que ao responderem sejam o mais cautelosos possíveis.

 

preciso usar essa biblioteca e função para criar uma Mini_Planilha_Eletrônica_em_C, com a fórmula ou função "Multiplicação". E ela deverá suprir as necessidades de uma planilha eletrônica ao usar essa função!  Eu pensei em usar Matriz ou vetores, mas também não sei como fazer isso! Por favor me ajudem!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • Curtir 1
Postado

@Faby_Game    uma boa planilha eletrônica é o excel ,  mas se você quer criar outro parecido , escreva em português mesmo como é o funcionamento dessa planilha , para ter ideia de como passar para o programa . e com vetores ou matrizes fica bem melhor pois diminui a quantidade de linhas de código ,  e se usar struct é melhor ainda ., poste o código que você já tenha feito para vermos como está e em que podemos ajudar   .

Postado

Olá!

 

Se usa Windows o caminho oficial para endereçar o cursor na console é como está nesse trecho de programa:

HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);

COORD coord;

coord.X = X;

coord.Y = Y;

SetConsoleCursorPosition(H, coord);

 

E a função é essa aí. Se quer pode declarar uma com esse nome tradicional gotoxy() e incluir dentro esses comandos. Note que uma vez que tenha o Handle H para a saída padrão não precisa ficar chamando GetStdHandle() de novo toda hora.

 

Mais uma coisa: isso endereça o cursor em termos de linha e coluna e não em pixels como seria esperado para um programa de colisão de partículas.

 

Em relação à colisão, apenas considere o ângulo em que as duas partículas se movimentam e aplique uma rotação no caso da colisão. E resolva o que vai fazer quando elas colidem com a borda da tela. Pode mudar um pouco a velocidade delas ou a cor pra dar um efeito. Experimente usar coordenadas polares ao invés de (x,y) e vai ser que facilita bem a sua vida

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!