Files
cowsay/TODO.md
2026-04-26 21:36:09 +02:00

2.7 KiB

Cowsay Project - TODO List

1. Project Overview

  • Understand the timeline: starts on the first day of INF203, ends on the last week (Sunday midnight).
  • Plan to stay ahead, especially for the Bash section before C begins.

2. Preliminaries

  • Read the cowsay manual with man cowsay.
  • List all cowsay options/arguments in a table or list in your report.
  • Provide examples of executions for each option.

3. Bash Scripts

  • cow_kindergarten
    • Cow says numbers 1 to 10, 1-second pause between each, sticks out tongue at the end.
  • cow_primaryschool
    • Cow says numbers 1 to n (argument).
  • cow_highschool
    • Cow says squares (1, 4, 9, ..., n^2) (argument).
  • cow_college
    • Cow says Fibonacci sequence up to n.
  • cow_university
    • Cow says prime numbers up to n.
  • smart_cow
    • Cow says a simple arithmetic expression (e.g., "3+11"), eyes show the result.
  • crazy_cow
    • Create a "crazy arithmetic cow" script with something unusual or complex.

4. C Programming

  • newcow.c
    • Create affiche_vache function: displays a cow without a speech bubble.
    • Compile and run.
  • Add Features
    • Support -e/ --eyes option to change cow's eyes.
    • Implement other options from cowsay manpage.
  • New Feature
    • Implement a new feature (e.g., --tail L to adjust tail length, or display a herd).
  • wildcow
    • [~] Test and explain update() and gotoxy().
    • Create an animated cow using update(), gotoxy(), and sleep().
  • reading_cow
    • Cow "reads" a file character by character, displaying each in its mouth before "swallowing".

5. Automata (Cow-Tamagotchi)

  • Design
    • Draw an automaton for cow's health states: liferocks, lifesucks, byebyelife.
    • Assume fixed fitness, digestion, and stock.
  • tamagoshi_cow.c
    • Reuse affiche_vache to display cow's health state.
    • Initialize stock and fitness to 5.
    • Create stock_update() and fitness_update() functions.
    • Main loop:
      • Display cow's state.
      • Display stock.
      • Prompt for lunchfood.
      • Update stock and fitness.
      • Increment duree_de_vie.
    • End game at byebyelife, display score.

6. Report

  • Format: plain text, Markdown, Org, or LaTeX.
  • Include:
    • Source code.
    • Execution outputs for relevant test cases.
    • Comments in code and report: justify choices, ideas, challenges.
    • Highlight original and advanced implementations.