Ir ao conteúdo
  • Cadastre-se
Diego Rosdaibida

Ping pong em c

Recommended Posts

Então tenho um trabalho para fazer um ping pong em C

apenas C não pode ser C++,achei esse code em C++ so que em C algumas funçoes nao existe como por exemplo using namespace std;

Teria como fazer algo do genero/parecido para mudar?

Se não eu tenho que declarar cada variavel e depois modificar?

fora a funcao kbhit tem outra parecida?

Se alguém puder dar um help ai agradeço.

#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;
void desenhaCampo(){
    //DESENHA BARRA DE CIMA
    int linha, coluna = 1;
    for (linha = 1; linha <= 100; linha++){
    gotoxy(linha,coluna);
    textcolor(LIGHTGREEN);
    cout << "Í";
        }
    //DESENHA BARRA DE BAIXO
    int coluna_baixo = 29;
    for (linha = 1; linha <= 100; linha++){
    gotoxy(linha,coluna_baixo);
    textcolor(LIGHTGREEN);
    cout << "Í";
        }
    }
void desenhaRebatedor1(){
    int linha_rebatedor = 4, coluna_rebatedor_cima1 = 14, coluna_rebatedor_cima2 = 13, coluna_rebatedor_meio1 = 16, coluna_rebatedor_meio2 = 15,
    coluna_rebatedor_baixo1 = 17, coluna_rebatedor_baixo2 = 18;
    //CIMA
    gotoxy(linha_rebatedor,coluna_rebatedor_cima1);
    cout << "²";
    gotoxy(linha_rebatedor,coluna_rebatedor_cima2);
    cout << "²";
    //MEIO
    gotoxy(linha_rebatedor,coluna_rebatedor_meio1);
    cout << "²";
    gotoxy(linha_rebatedor,coluna_rebatedor_meio2);
    cout << "²";
    //BAIXO
    gotoxy(linha_rebatedor,coluna_rebatedor_baixo1);
    cout << "²";
    gotoxy(linha_rebatedor,coluna_rebatedor_baixo2);
    cout << "²";

    //MOVE REBATEDOR PARA CIMA
    char tecla_cima;
    if (kbhit()){
        tecla_cima = getch();
        if (tecla_cima == 'w'){
        linha_rebatedor--;
        }
    }
}
void desenhaRebatedor2(){
    //CIMA
    gotoxy(96,14);
    cout << "²";
    gotoxy(96,13);
    cout << "²";
    //MEIO
    gotoxy(96,16);
    cout << "²";
    gotoxy(96,15);
    cout << "²";
    //BAIXO
    gotoxy(96,17);
    cout << "²";
    gotoxy(96,18);
    cout << "²";
}
void desenhaBola(){
    gotoxy(50,15);
    cout << "ß";
}
int main()
{
    clrscr();
    system("mode 100,30");
    desenhaCampo();
    desenhaRebatedor1();
    desenhaRebatedor2();
    desenhaBola();
    return 0;
}

 

Editado por dif
inserir o código com o botão CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

gotoxy não é C++, faz parte da biblioteca conio juntamente com funções getch etc.

 

Sobre cout efetivamente você pode substituir por printfs tal como você aprendeu, você precisa mudar a biblioteca iostream por stdio.h. Esse tal "using namespace std" você pode tirar ele fora quando não exista nenhum cout nem cim no programa.

 

Outra coisa a destacar é que clrscr(); faz parte de conio se não me engano, porém conio não funciona em linux, se seu profs tem um bonito pc com linux tudo vai por agua abaixo >_<. essa função você pode trocar por system("cls") que pertence a stdlib.h ou windows.h, as outras talvez tenham seus análogos em linux. São muitas funçoes fora do padrão.

 

Sobre a função kbhit ela não pertence a C++, ela pode ser usada em ambas, é uma função que pertence a windows.h. e não conheço nenhuma função parecida, certamente tem alguma, porém essa é fornecida pela API do windows, qualquer outra que faça a mesma coisa certamente fará uso dessa função internamente, isso quer dizer que é igual mudar de carro, um vai mais rápido que outro porém todos tem 4 rodas, portas, etc.

 

O problema que você tem para criação de jogos de C/C++ não incorpora nada padrão, para criar jogos você precisa controlar eventos(teclas), tempo(timing), limpar a tela, etc, sem contar que sua aplicação não usa gráficos, nada disso faz parte do padrão de C. Se quiser um jogo somente com C você teria que escrever todas essas funções você mesmo, certamente aconteceria que em algum momento dado você teria que entrar em contato com a API do sistema que é quem fornece as ferramentas necessárias para que a linguagem tenha acesso a certos recursos do sistema operativo, não problema algum nisso, o próprio C tem que fazer uso interno da API do sistema pois todos os sistemas operativos tem suas APIs, e acredite se quiser, é a única forma de entrar em contato com o sistema, na programação, você precisa lembrar isso:
Hardware <--->sistema operativo<--->API<--->C/C++ <---> você

Mas pior ainda está os javeiros kkk
Hardware<--->sistema operativo <--->API<--->C/C++ <---> java <---> você

 

você não está em contato direto com o hardware, certamente você acha que está fazendo isso
Hardware <--->C/C++<---> você

 

porém não é assim.

 

Assim que não tenha medo de entrar em contato com algumas funções que não pertença a C padrão, se não você não vai fazer nada vei, certamente seu professor sabe isso, se não exponha a pergunta para ele, diga que terá que fazer sim ou sim uso de algumas funções que não pertence a C padrão, porém sim podem ser consideradas C não padrão, (clrscr(), gotoxy(), kbhit(), getch(), etc ). Obviamente todas elas podem ser usadas em C++, mas isso não quer dizer que se você usar em C++ ela pertença a C++, se for assim printf também pertence a C++ porque podemos usar em C++, não use mais printf >_<. Viu! Essa lógica é estúpida, c++ pode usar muitas funções de C, dai que você deve ter problemas para identificar se uma função é ou não de C. Isso se resolve com o que vou lhe expor a continuação.

você está buscando código pronto, vou lhe dar uma ideia, em vez de buscar código pronto você deveria buscar saber(pesquisar) para que serve cada uma dessas funções, esse é o segredo da programação, você pode perder uma tarde em averiguar cada uma delas, não precisa decorar tudo o que ela tem dentro etc, mais bem você deveria lembrar coisas como "A que biblioteca pertence?", "Que valores retornam?", "Que valores aceita como parâmetros?", "O que faz essa função". Esses 4 pontos você precisa saber sobre todas as funções que ver em C, tanto as padrões como as não padrões, se fizer isso, certamente você será um grande programador, isso é justamente o que oferece paginas como cplusplus.com sobre funções e muitas mais coisas... o que faz, o que aceita como parâmetro, o que retorna e a que biblioteca pertence, e ainda sempre ilustra com um pequeno código de exemplo, aprenda a usar essa pagina como referencia.


você acha que é a única vez que você vai precisar dessas funções? Quanto mais tempo passar ignorando todas as funções que se apresentam no seu caminho, maior vai ser a bola de neve, até chegar a um ponto que seja frustrante. A maior biblioteca deve estar na sua cabeça, se lembrar o anterior, ainda que tenha esquecido muitos pontos, quando um problema se apresentar diante de ti, certamente você vai lembrar "hmmmm para isso lembro que tinha uma função que se chamava...". Dai você vai lá na cplusplus.com e bam! Não somos ***** Wikipedias, sempre esqueço coisas o tempo todo, e certamente todos os programadores igualmente, duvido se todo programador não tem essa pagina aberta ao menos uma vez ao dia jajaj.

Investigue, não sofras mais.kkk
Sorte.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×