Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 11
diff options
context:
space:
mode:
Commit55fc7eb3bba83f4084b2f897c61d0280a5f9c097 (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2021-10-02 17:44:35 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2021-10-02 17:44:35 +0300
Files85d32a9a73f85c54162f9233f36a054ebe0de212 /Sem. 11
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.tar
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.tar.gz
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.zip
Parent7f51b56297270d4a1f808bc73d082b71418a2fe0 (diff)
new
3 files changed, 0 insertions, 169 deletions
-rw-r--r--Sem. 11/README.md35
-rw-r--r--Sem. 11/array_algorithms.cpp134
-rw-r--r--Sem. 11/homework_example/MineSweeper.zipbin4881 -> 0 bytes
diff --git a/Sem. 11/README.md b/Sem. 11/README.md
deleted file mode 100644
index b82c95e..0000000
--- a/Sem. 11/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Домашна работа - Мinesweeper
-
-Да се реализира в **конзолна** играта **Мinesweeper**.
-Целта на играта е да се разкрият всички квадратчета, които не съдържат мини , без да щракнем върху мина преди това. Разположението на мините може да се разбере логически, с помощта на цифрички, стоящи се на местата на квадратчетата след щракане върху тях. Цифрите показват колко квадратчета, в които има мини, има в съседство. Ако се щракне върху квадратче, което няма мини (стои числото 0) в съседство, то разкрива съседните, ако някое от тези разкрити също няма мини в съседство, то също разкрива съседните квадратчета и тн...
-
-Пример:
-
-![enter image description here](https://gamefaqs1.cbsistatic.com/screen/full/6/2/6/60626.jpg)
-
-[Онлайн версия на играта](http://minesweeperonline.com/#)
-
-
-**Забележка: От вас не се изисква създаването на графичен интерфейс. Играта трябва да бъде конзолна апликация.**
-
-В конзолата трябва да изпълнявате команди от вида:
-
-> [command] [x coordinate] [y coordinate]
-
-Където [command] е **open**, **mark** или **unmark**, а след него стоят координатите на квадратчето.
-
- - **open** - отваря квадратчето. Ако там седи мина - край на играта!
- - **mark** - маркира квадратчето като "мина". Ако всички мини са маркирани
- и всички други квардратчета са отворени, играта прилкючва с успех!
- - **unmark** - отмаркира квадрачето като "мина". Ако квадратчето не е било
- маркирано, то се извежда подходящо съобщение за грешка.
-
-При започването на играта, потребителят трябва да може да избере на каква размерност да играе (3 <= N <= 10). След това трябва да избере колко мини да бъдат "скрити".
-Броят трябва да е в интервала [1, 3N]. Ако някои от стойностите не са въведат правилно от потребителя, то трябва да се изведе подходящо съобщение и да бъде "приканен" да въведе отново.
-
-Краен срок: **09.01.2021**
-
-**П.С.:** Това беше моя курсова работа в първи курс. Кодът съм го загубил, но съм ви качил конзолното приложение **(homework_example/MineSweeper.zip)**.
-Можете да го свалите и да го ползвате като ориентир. В моята програма има и един бъг (ако я разцъкате, ще го забележите), който не мога да оправя (понеже нямам кода вече).
-
-
diff --git a/Sem. 11/array_algorithms.cpp b/Sem. 11/array_algorithms.cpp
deleted file mode 100644
index ed8d664..0000000
--- a/Sem. 11/array_algorithms.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-#include <iostream>
-using namespace std;
-// Алгоритми върху масиви.
-// Пример за алгормитъм.
-// Функция, която търси елемент в масив.
-// Search arr, el ->
-// -1 ako go nqma, + ako go ima -> indeksa
-
-
-int linearSearch(const int* arr, int len, int searched)
-{
- for (int i = 0; i < len; i++)
- {
- if (arr[i] == searched)
- return i;//връщаме индекса.
- }
- return -1;//елементът го няма
-}
-// Анализ - кога тези алгоритми са "бързи" и кога са "бавни".
-// Сложност на алгоритъм - колко стъпки ще направи алгоритъма.
-// Приемаме, че масивът е с n елемента.
-// best-case: 1 стъпка O(1)
-// average-case: n/2 стъпки. O(n)
-// worst-case: n стъпки. O(n)
-
-// зад 2) Търсене в масив. Масивът е сортиран.
-
-// Двоично търсене (binary search).
-//
-int binarySearch(const int* arr, int len, int searched)
-{
- int leftIndex = 0;
- int rightIndex = len - 1;
- while (leftIndex <= rightIndex)
- {
- int midIndex = (leftIndex + rightIndex) / 2;
- if (arr[midIndex] == searched)
- return midIndex;
- if (arr[midIndex] > searched)
- rightIndex = midIndex - 1;
- else
- leftIndex = midIndex + 1;
- }
- return -1;
-
-}
-// best-case: 1 стъпка O(1)
-// average-case: O(log(n))
-// worst-case: O(log(n))
-// Сортиран масив с 70000 елемента -> линейно търсене (70000 стъпки)
-// -> двоично търсене (16 стъпки)
-
-
-
-
-//Сортиране на масив.
-// Пример: 9 6 3 7 -> 3 6 7 9
-
-// Bubble sort (Сортиране по метода на мехурчето)
-
-// "Разходка по масива"
-//
-void swap(int* arr, int i, int j)
-{
- int temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
-}
-
-//След една разходка най-големият елемент ще отиде на мястото си.
-// след разходка 2-> 2-та най-големи елемента ще са на мясотот си
-// след разходка 3-> 3-те ...
-//Ако след една разходка, не направим нито един swap, то следва че масивът вече е сортиран.
-void bubbleSort(int* arr, int len)
-{
- for (int j = 0; j < len - 1; j++)
- {
- bool isSwapped = false;
- for (int i = 0; i < len - 1 - j; i++)
- {
- if (arr[i] > arr[i + 1])
- {
- swap(arr, i, i + 1);
- isSwapped = true;
- }
- }
- if (!isSwapped)
- return;
- }
-}
-
-//Сложност:
-// best-case: O(n)
-// average-case: O(n^2)
-// worst-case: n*(n-1) /2 = (n^2 + n )/2 O(n^2)
-
-// Стабилност: (следващият път)
-
-
-
-// Selection sort (сортиране чрез пряка селекция).
-// 5 8 1 4 9
-
-void selectionSort(int* arr, int len)
-{
- for (int pos = 0; pos < len - 1; pos++)
- {
- int minIndex = pos;
- for (int i = pos; i < len; i++)
- {
- if (arr[i] < arr[minIndex])
- minIndex = i;
- }
- if (pos != minIndex)
- swap(arr, pos, minIndex);
- }
-}
-
-// Сложност:
-// best-case: O(n^2)
-// average-case: O(n^2)
-// worst-case: О(n^2)
-
-// Selection sort прави минимален брой swap-ове.
-
-
-int main()
-{
- int arr[] = {5,3,2,6,1,4};
- selectionSort(arr, 6);
- for (int i = 0; i < 6; i++)
- cout << arr[i] << " ";
- //cout << binarySearch(arr, 10, 500);
-}
diff --git a/Sem. 11/homework_example/MineSweeper.zip b/Sem. 11/homework_example/MineSweeper.zip
deleted file mode 100644
index 7649e37..0000000
--- a/Sem. 11/homework_example/MineSweeper.zip
+++ /dev/null
Binary files differ