Files
cowsay/TODO.md
2026-04-26 19:41:31 +02:00

84 lines
2.7 KiB
Markdown

# 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`**
- [ ] 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.
- [ ] **Add Features**
- [x] 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).
- [x] **`wildcow`**
- [~] Test and explain `update()` and `gotoxy()`.
- [x] Create an animated cow using `update()`, `gotoxy()`, and `sleep()`.
- [ ] **`reading_cow`**
- [x] 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.
---