From 51a8f346e9751234c7ec87e376997b1d59ff55cd Mon Sep 17 00:00:00 2001 From: swasti Date: Thu, 16 Oct 2025 22:43:08 +0530 Subject: [PATCH 1/3] todo list program added --- Src/To-Do-List/todo.cpp | 139 ++++++++++++++++++++++++++++++++++++++++ Src/To-Do-List/todo.exe | Bin 0 -> 86259 bytes 2 files changed, 139 insertions(+) create mode 100644 Src/To-Do-List/todo.cpp create mode 100644 Src/To-Do-List/todo.exe diff --git a/Src/To-Do-List/todo.cpp b/Src/To-Do-List/todo.cpp new file mode 100644 index 0000000..6c27b8f --- /dev/null +++ b/Src/To-Do-List/todo.cpp @@ -0,0 +1,139 @@ +#include +#include +#include +using namespace std; + +// Class representing a single Task +class Task { +private: + string title; + bool isCompleted; + +public: + // Constructor + Task(string t) { + title = t; + isCompleted = false; + } + + // Mark task as completed + void markCompleted() { + isCompleted = true; + } + + // Get task title + string getTitle() const { + return title; + } + + // Check completion status + bool getStatus() const { + return isCompleted; + } +}; + +// Class representing the To-Do List +class ToDoList { +private: + vector tasks; + +public: + // Add a new task + void addTask(const string& title) { + tasks.push_back(Task(title)); + cout << "Task added successfully!\n"; + } + + // Display all tasks + void showTasks() const { + if (tasks.empty()) { + cout << "No tasks available!\n"; + return; + } + + cout << "\n------ To-Do List ------\n"; + for (size_t i = 0; i < tasks.size(); ++i) { + cout << i + 1 << ". " << tasks[i].getTitle() + << " [" << (tasks[i].getStatus() ? "Done" : "Pending") << "]\n"; + } + cout << "------------------------\n"; + } + + // Mark a task as completed + void markTaskCompleted(int index) { + if (index < 1 || index > (int)tasks.size()) { + cout << "Invalid task number!\n"; + return; + } + tasks[index - 1].markCompleted(); + cout << "Task marked as completed!\n"; + } + + // Delete a task + void deleteTask(int index) { + if (index < 1 || index > (int)tasks.size()) { + cout << "Invalid task number!\n"; + return; + } + tasks.erase(tasks.begin() + index - 1); + cout << "Task deleted successfully!\n"; + } +}; + +// Main program +int main() { + ToDoList todo; + int choice; + string title; + int index; + + cout << "\n===== TO-DO LIST APPLICATION =====\n"; + cout << "Manage your daily tasks efficiently.\n"; + + do { + cout << "\nMenu:\n"; + cout << "1. Add Task\n"; + cout << "2. View Tasks\n"; + cout << "3. Mark Task as Completed\n"; + cout << "4. Delete Task\n"; + cout << "5. Exit\n"; + cout << "Enter your choice: "; + cin >> choice; + cin.ignore(); // To handle newline + + switch (choice) { + case 1: + cout << "Enter task title: "; + getline(cin, title); + todo.addTask(title); + break; + + case 2: + todo.showTasks(); + break; + + case 3: + cout << "Enter task number to mark completed: "; + cin >> index; + todo.markTaskCompleted(index); + break; + + case 4: + cout << "Enter task number to delete: "; + cin >> index; + todo.deleteTask(index); + break; + + case 5: + cout << "Exiting program. Goodbye!\n"; + break; + + default: + cout << "Invalid choice. Try again!\n"; + } + } while (choice != 5); + + return 0; +} + + diff --git a/Src/To-Do-List/todo.exe b/Src/To-Do-List/todo.exe new file mode 100644 index 0000000000000000000000000000000000000000..f9b0ab16300aad2ec0c66550919ac20447a54208 GIT binary patch literal 86259 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 literal 0 HcmV?d00001 From cea0574ceaf03f69ed0f63929ff41349ffbb578e Mon Sep 17 00:00:00 2001 From: swasti Date: Wed, 22 Oct 2025 14:45:23 +0530 Subject: [PATCH 2/3] fix: input validation and empty task title check in To-Do List --- Src/To-Do-List/todo.cpp | 80 +++++++++++++++++++++------------------- Src/To-Do-List/todo.exe | Bin 86259 -> 88334 bytes 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/Src/To-Do-List/todo.cpp b/Src/To-Do-List/todo.cpp index 6c27b8f..e39ad8a 100644 --- a/Src/To-Do-List/todo.cpp +++ b/Src/To-Do-List/todo.cpp @@ -1,93 +1,105 @@ #include #include + + #include +#include using namespace std; -// Class representing a single Task + class Task { private: string title; - bool isCompleted; + bool isCompleted; public: - // Constructor - Task(string t) { - title = t; - isCompleted = false; - } - // Mark task as completed + Task(string t) : title(t), isCompleted(false) {} + void markCompleted() { isCompleted = true; } - // Get task title string getTitle() const { return title; } - // Check completion status - bool getStatus() const { + bool getStatus() const { return isCompleted; } }; -// Class representing the To-Do List -class ToDoList { + class ToDoList { private: vector tasks; public: - // Add a new task + void addTask(const string& title) { + if (title.empty()) { + cout << "❌ Task title cannot be empty!\n"; + return; + } tasks.push_back(Task(title)); - cout << "Task added successfully!\n"; + cout << " ✅ Task added successfully!\n"; } - // Display all tasks void showTasks() const { if (tasks.empty()) { - cout << "No tasks available!\n"; + cout << "📭 No tasks available!\n"; return; } cout << "\n------ To-Do List ------\n"; for (size_t i = 0; i < tasks.size(); ++i) { cout << i + 1 << ". " << tasks[i].getTitle() - << " [" << (tasks[i].getStatus() ? "Done" : "Pending") << "]\n"; + << " [" << (tasks[i].getStatus() ? "✅ Done" : "🕓 Pending") << "]\n"; } cout << "------------------------\n"; } - // Mark a task as completed void markTaskCompleted(int index) { if (index < 1 || index > (int)tasks.size()) { - cout << "Invalid task number!\n"; + cout << "⚠️ Invalid task number!\n"; return; } tasks[index - 1].markCompleted(); - cout << "Task marked as completed!\n"; + cout << "✅ Task marked as completed!\n"; } - // Delete a task void deleteTask(int index) { if (index < 1 || index > (int)tasks.size()) { - cout << "Invalid task number!\n"; + cout << "⚠️ Invalid task number!\n"; return; } tasks.erase(tasks.begin() + index - 1); - cout << "Task deleted successfully!\n"; + cout << "🗑️ Task deleted successfully!\n"; } }; -// Main program +int getValidInt(const string& prompt) { + int value; + while (true) { + cout << prompt; + cin >> value; + if (cin.fail()) { + cout << "❌ Invalid input! Please enter a number.\n"; + cin.clear(); + cin.ignore(numeric_limits::max(), '\n'); + } else { + cin.ignore(numeric_limits::max(), '\n'); + return value; + } + } +} + int main() { ToDoList todo; int choice; string title; int index; - cout << "\n===== TO-DO LIST APPLICATION =====\n"; + cout << "\n===== 📝 TO-DO LIST APPLICATION =====\n"; cout << "Manage your daily tasks efficiently.\n"; do { @@ -97,9 +109,7 @@ int main() { cout << "3. Mark Task as Completed\n"; cout << "4. Delete Task\n"; cout << "5. Exit\n"; - cout << "Enter your choice: "; - cin >> choice; - cin.ignore(); // To handle newline + choice = getValidInt("Enter your choice: "); switch (choice) { case 1: @@ -113,27 +123,23 @@ int main() { break; case 3: - cout << "Enter task number to mark completed: "; - cin >> index; + index = getValidInt("Enter task number to mark completed: "); todo.markTaskCompleted(index); break; case 4: - cout << "Enter task number to delete: "; - cin >> index; + index = getValidInt("Enter task number to delete: "); todo.deleteTask(index); break; case 5: - cout << "Exiting program. Goodbye!\n"; + cout << "👋 Exiting program. Goodbye!\n"; break; default: - cout << "Invalid choice. Try again!\n"; + cout << "⚠️ Invalid choice. Try again!\n"; } } while (choice != 5); return 0; } - - diff --git a/Src/To-Do-List/todo.exe b/Src/To-Do-List/todo.exe index f9b0ab16300aad2ec0c66550919ac20447a54208..d803ea4b0bab634f607e43fe207442448e75faa8 100644 GIT binary patch delta 19893 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%0DZO4sbEFKu3{Zg-ba)TJ_a{;c_?= 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 ConYhu From 5677d9814d92794f13ba54a2823866433e91b52e Mon Sep 17 00:00:00 2001 From: swasti Date: Wed, 22 Oct 2025 15:25:14 +0530 Subject: [PATCH 3/3] added program of console based snake game --- Src/Snake_Game/SnakeGame.cpp | 158 +++++++++++++++++++++++++++++++++++ Src/Snake_Game/SnakeGame.exe | Bin 0 -> 99265 bytes 2 files changed, 158 insertions(+) create mode 100644 Src/Snake_Game/SnakeGame.cpp create mode 100644 Src/Snake_Game/SnakeGame.exe diff --git a/Src/Snake_Game/SnakeGame.cpp b/Src/Snake_Game/SnakeGame.cpp new file mode 100644 index 0000000..de015ed --- /dev/null +++ b/Src/Snake_Game/SnakeGame.cpp @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include +#include + +using namespace std; + +/* +Snake Game in C++ (Console Version) + +How to Play: +- W → Up, A → Left, S → Down, D → Right +- Eat the food (*) to grow and increase your score +Snake head = @, body = o, food = * +- Avoid walls and your own body +- After Game Over, press Y to play again +*/ + +class Snake { +private: + vector> body; + char direction; +public: + Snake(int startX, int startY) { + body.push_back({startX, startY}); + direction = 'D'; + } + pair getHead() { return body.front(); } + vector> getBody() { return body; } + char getDirection() { return direction; } + void setDirection(char dir) { direction = dir; } + void move(bool grow=false) { + pair head = body.front(); + switch(direction) { + case 'W': head.first--; break; + case 'S': head.first++; break; + case 'A': head.second--; break; + case 'D': head.second++; break; + } + body.insert(body.begin(), head); + if(!grow) body.pop_back(); + } + bool checkCollision(int width, int height) { + pair head = getHead(); + if(head.first < 0 || head.first >= height || head.second < 0 || head.second >= width) + return true; + for(size_t i=1; i pos; +public: + Food(int width, int height) { respawn(width, height, {}); } + pair getPosition() { return pos; } + void respawn(int width, int height, vector> snakeBody) { + while(true) { + int x = rand()%height; + int y = rand()%width; + pos = {x, y}; + bool onSnake = false; + for(auto s: snakeBody) + if(s==pos) onSnake = true; + if(!onSnake) break; + } + } +}; + +class Game { +private: + int width, height, score; + Snake snake; + Food food; + bool gameOver; +public: + Game(int w,int h) : width(w), height(h), score(0), snake(w/2,h/2), food(w,h), gameOver(false) {} + void draw() { + system("cls"); + for(int i=0;i head = snake.getHead(); + if(head.first==i && head.second==j) cout<<"@ "; + else if(food.getPosition()==make_pair(i,j)) cout<<"* "; + else { + bool printed=false; + for(auto s:snake.getBody()) + if(s.first==i && s.second==j){cout<<"o "; printed=true; break;} + if(!printed) cout<<" "; + } + } + cout<<"#"< nextHead = snake.getHead(); + switch(snake.getDirection()){ + case 'W': nextHead.first--; break; + case 'S': nextHead.first++; break; + case 'A': nextHead.second--; break; + case 'D': nextHead.second++; break; + } + bool grow = (nextHead == food.getPosition()); + if(grow){score+=10; food.respawn(width,height,snake.getBody());} + snake.move(grow); + if(snake.checkCollision(width,height)) gameOver=true; + } + void reset() { + score = 0; + snake.reset(width/2, height/2); + food.respawn(width, height, snake.getBody()); + gameOver = false; + } + void run() { + do { + reset(); + while(!gameOver){ + draw(); + input(); + logic(); + Sleep(250); + } + draw(); + cout<<"\nGame Over! Final Score: "<< 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