# Cowsay Project - TODO List ## 1. Project Overview - [x] Understand the timeline: starts on the first day of INF203, ends on the last week (Sunday midnight). - [x] Plan to stay ahead, especially for the Bash section before C begins. --- ## 2. Preliminaries - [x] 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 - [x] **`cow_kindergarten`** - [x] Cow says numbers 1 to 10, 1-second pause between each, sticks out tongue at the end. - [x] **`cow_primaryschool`** - [x] Cow says numbers 1 to `n` (argument). - [x] **`cow_highschool`** - [x] Cow says squares (1, 4, 9, ..., `n^2`) (argument). - [x] **`cow_college`** - [x] Cow says Fibonacci sequence up to `n`. - [x] **`cow_university`** - [x] Cow says prime numbers up to `n`. - [x] **`smart_cow`** - [x] Cow says a simple arithmetic expression (e.g., "3+11"), eyes show the result. - [x] **`crazy_cow`** - [x] Create a "crazy arithmetic cow" script with something unusual or complex. --- ## 4. C Programming - [x] **`newcow.c`** - [x] Create `affiche_vache` function: displays a cow without a speech bubble. - [x] Compile and run. - [x] **Add Features** - [x] Support `-e`/ `--eyes` option to change cow's eyes. - [x] Implement other options from `cowsay` manpage. - [x] **New Feature** - [x] Implement a new feature (e.g., `--tail L` to adjust tail length, or display a herd). - [x] **`wildcow`** - [-] Test and explain `update()` and `gotoxy()`. - [x] Create an animated cow using `update()`, `gotoxy()`, and `sleep()`. - [x] **`reading_cow`** - [x] Cow "reads" a file character by character, displaying each in its mouth before "swallowing". --- ## 5. Automata (Cow-Tamagotchi) - [x] **Design** - [x] Draw an automaton for cow's health states: `liferocks`, `lifesucks`, `byebyelife`. - [x] Assume fixed `fitness`, `digestion`, and `stock`. - [x] **`tamagoshi_cow.c`** - [x] Reuse `affiche_vache` to display cow's health state. - [x] Initialize `stock` and `fitness` to 5. - [x] Create `stock_update()` and `fitness_update()` functions. - [x] Main loop: - [x] Display cow's state. - [x] Display `stock`. - [x] Prompt for `lunchfood`. - [x] Update `stock` and `fitness`. - [x] Increment `duree_de_vie`. - [x] End game at `byebyelife`, display score. --- ## 6. Report - [x] Format: plain text, Markdown, Org, or LaTeX. - [x] Include: - [x] Source code. - [x] Execution outputs for relevant test cases. - [x] Comments in code and report: justify choices, ideas, challenges. - [x] Highlight original and advanced implementations. ---