84 lines
2.7 KiB
Markdown
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
|
|
|
|
- [ ] **`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.
|
|
|
|
---
|