Files
cowsay/TODO.md
2026-04-15 14:59:42 +02:00

84 lines
2.7 KiB
Markdown

# 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.
---