diff --git a/ProjetCowsay.pdf b/ProjetCowsay.pdf new file mode 100644 index 0000000..cec6986 Binary files /dev/null and b/ProjetCowsay.pdf differ diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..f7506d3 --- /dev/null +++ b/TODO.md @@ -0,0 +1,83 @@ +# 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. + +---