Boa tarde meus caros!! Venho aqui com uma ideia para ajudar todos os que estão a procura de ideias para praticar oque sabe sobre programação e assim adquirir novos conhecimentos!!!
Queria que esse tópico fosse utilizado para que todos possam deixar ideias e desafios ( de todo tipo de linguagem e nível ) sobre programação!!!
Como funcionaria ?
Deixem uma tag antes da ideia e explique o problema que deve ser resolvido e/ou oque deve ser feito!
EX:
[ Iniciante ]
Fazer um algoritmo que:
Leia números de matrículas de alunos e armazene-os em um vetor até o vetor ser preenchido por 10 matrículas. Esses números são distintos, ou seja, o vetor não armazenará valores repetidos.
Assim podemos todos nos ajudar a evoluir na pratica!! Ideias que possam contribuir para o amadurecimento são bem vindas!! Bons estudos a todos!!
Mediano*
Fazer um aplicativo TODO list. O aplicativo é exatamente isso uma lista de afazeres, cada item tem um checkbox que ao ser clicado “risca” a tarefa, o app precisa ter um meio de adicionar itens dinamicamente e salvar automaticamente a lista
Faça um jogo de adivinhação de números. Você pode separar em dificuldades e limitar o range de números que podem ser sorteados. ex fácil (0-20), médio (0-50), difícil (0-100). Você também pode usar esses níveis para limitar o número de jogadas e prevenir que o jogador insira palpites repetidos.
Eu já fiz esse programa em C e Python é bem legal para aprender.
Não sei como organizaria em levels, mas ideias boas são:
Um emulador de CHIP-8, a especificação é simples, existem vários tutoriais sobre, a implementação é bem tranquila, e é um jeito legal de começar a entender emuladores, depois você pode tentar emular o GameBoy ou NES.
Um raytracer, apesar da nVidia ter transformado isso numa buzzword é um técnica bem antiga e bem simples pra gerar imagens realistas, também tem vários tutoriais e sobre, e em 2 horinhas vc já consegue renderizar umas esferas.
Um servidor, conecte numa porta livre, escute conexões, interprete os requests e envie as páginas HTML em resposta, bônus se vc conseguir fazer isso em multithread.
Um cliente FTP, tudo que vc precisa é ler o protocolo e saber usar sockets na sua linguagem.
Um cliente BitTorrent, dar parse em bencode, fazer conexão HTTP com servidor, pedir a lista de peers, baixar os slices do arquivo se conectando a eles, leia a especificação e aprenda HTTP, se você estiver motivado o bastante, faça uma GUI tbm.
Um interpretador de Lisp, provavelmente a linguagem mais simples de ser dar parse já que literalmente tudo é uma lista, existem vários tutoriais sobre tbm.
Fácil, mas requer leitura específica sobre a platafoma e é um pouco grande mesmo não sendo difícil.
Já fiz uma vez e prometi que se pudesse escolher uma área para nunca mais mexer seria essa. A parte do raytracing é fácil mas não lembro se implementei mesmo ou se veio na libGL/GLU/GLUT.
Fácil até precisar enviar e tratar HTTP headers e seu conteúdo. Sem isso faço com um pé nas costas, inclusive a parte multithreaded
Idem acima: meu conhecimento vai muito bem até Berkeley Sockets e, além disso, teria que pesquisar.
Esse é difícil. Precisaria pesquisar bastante.
A parte de movimentar é barbada em 2D mas cadê paciência pra desenhar cenário, etc…?
Melhor ainda: um Irc Client (opcionalmente, o Server também)
###Não se aplica (meu OS é em inglês, meus livros também, estou habituado)# ## esqueça… confundi com implementar em inglês; Só agora estou lendo a lista
OBS: Para todas idéias acima respondi como se fosse usar C, C++. ASM, e no máximo libs como a GL/GLUT pro raytracing e pro joguinho roguelike.
OBS2: Dio, seria difícil colocar underline e strikethrough no editor?
Por mais que seja fácil demais, é minha linha preferida de abordagem. Implementar algoritmos ao invés de softwares maiores, parcialmente ou não, como nas outras sugestões.