Ideias de programas: Iniciante, Intermediario e Experiente

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!! :smiley:

1 Curtida

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

1 Curtida

Iniciante

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.

1 Curtida

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.
  • Um roguelike no terminal
  • Um bot de IRC/Discord
  • Qualquer coisa dessa lista (em inglês)
1 Curtida

o.o caramba vou pesquisar sobre mas tudo aqui tá MEGA avançado (pelo menos para mim) HAHAHAHAHA

1 Curtida
  • 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?

1 Curtida

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.

2 Curtidas

É só colocar entre dois pares de ~:

~~teste~~ renderiza assim: teste

1 Curtida