Skip to content

Commit 6fb566e

Browse files
committed
13.04.2017 (21.09)
0 parents  commit 6fb566e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+929
-0
lines changed

AnimeAceV02.ttf

68.7 KB
Binary file not shown.

Debug/CL.read.1.tlog

38.3 KB
Binary file not shown.

Debug/CL.write.1.tlog

444 Bytes
Binary file not shown.

Debug/cl.command.1.tlog

686 Bytes
Binary file not shown.

Debug/link-cvtres.read.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Debug/link-cvtres.write.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Debug/link-rc.read.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Debug/link-rc.write.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Debug/link.command.1.tlog

1.4 KB
Binary file not shown.

Debug/link.read.1.tlog

3.09 KB
Binary file not shown.

Debug/link.write.1.tlog

574 Bytes
Binary file not shown.

Debug/main.obj

174 KB
Binary file not shown.

Debug/myProject4.lastbuildstate

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#v4.0:v110:false
2+
Debug|Win32|D:\Димона\Универ\Прога\Projects\Game\myProject4\|

Debug/myProject4.log

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
 main.cpp
2+
d:\димона\универ\прога\projects\game\myproject4\myproject4\main.cpp(18): warning C4244: инициализация: преобразование "sf::Int64" в "float", возможна потеря данных
3+
myProject4.vcxproj -> D:\Димона\Универ\Прога\Projects\Game\myProject4\Debug\myProject4.exe

Debug/vc110.idb

971 KB
Binary file not shown.

Debug/vc110.pdb

708 KB
Binary file not shown.

Release/CL.read.1.tlog

39.7 KB
Binary file not shown.

Release/CL.write.1.tlog

452 Bytes
Binary file not shown.

Release/cl.command.1.tlog

706 Bytes
Binary file not shown.

Release/link-cvtres.read.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Release/link-cvtres.write.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Release/link-rc.read.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Release/link-rc.write.1.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Release/link.command.1.tlog

1.46 KB
Binary file not shown.

Release/link.read.1.tlog

3.52 KB
Binary file not shown.

Release/link.read.3.tlog

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
��

Release/link.write.1.tlog

446 Bytes
Binary file not shown.

Release/main.obj

1.42 MB
Binary file not shown.

Release/myProject4.lastbuildstate

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#v4.0:v110:false
2+
Release|Win32|D:\Димона\Универ\Прога\Projects\Game\myProject4\|

Release/myProject4.log

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
 main.cpp
2+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(47): warning C4244: =: преобразование "float" в "int", возможна потеря данных
3+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(48): warning C4244: =: преобразование "float" в "int", возможна потеря данных
4+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(61): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
5+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(78): warning C4018: <: несоответствие типов со знаком и без знака
6+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(109): warning C4018: <: несоответствие типов со знаком и без знака
7+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(124): warning C4018: <: несоответствие типов со знаком и без знака
8+
d:\димона\универ\прога\projects\game\myproject4\myproject4\forMcText.h(143): warning C4018: <: несоответствие типов со знаком и без знака
9+
main.cpp(41): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
10+
main.cpp(45): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
11+
main.cpp(67): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
12+
main.cpp(71): warning C4244: инициализация: преобразование "size_t" в "float", возможна потеря данных
13+
main.cpp(73): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
14+
main.cpp(86): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
15+
main.cpp(183): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
16+
main.cpp(184): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
17+
main.cpp(187): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
18+
main.cpp(188): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
19+
main.cpp(229): warning C4244: инициализация: преобразование "sf::Int64" в "float", возможна потеря данных
20+
Создание кода
21+
Создание кода завершено
22+
myProject4.vcxproj -> D:\Димона\Универ\Прога\Projects\Game\myProject4\Release\myProject4.exe

Release/vc110.pdb

756 KB
Binary file not shown.

Resources/AnimeAceV02.ttf

68.7 KB
Binary file not shown.

Resources/lines.otf

15.5 KB
Binary file not shown.

Resources/modeka.otf

11.9 KB
Binary file not shown.

Resources/oduda.otf

17.5 KB
Binary file not shown.

algorithm.h

+185
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
//Èñïîëüçóÿ öèêëè÷åñêóþ î÷åðåäü (FIFO) íàïèñàòü àëãîðèòì âûõîäà èç ëàáèðèíòà
2+
#include <iostream>
3+
#include <fstream>
4+
using namespace std;
5+
6+
struct Cell{
7+
int row; //ñòðîêà
8+
int col; //ñòîëáåö
9+
10+
friend ostream& operator<<(ostream &os, const Cell &tmp){
11+
os << tmp.row << " " << tmp.col << endl;
12+
return os;
13+
}
14+
15+
/*friend istream& operator>>(istream &is, Cell &tmp){
16+
is >> tmp.row >> tmp.col;
17+
return is;
18+
}*/
19+
20+
Cell& operator= (const Cell &tmp){
21+
row = tmp.row;
22+
col = tmp.col;
23+
return *this;
24+
}
25+
26+
bool operator!=(const Cell &tmp){
27+
if ((row == tmp.row) && (col == tmp.col))
28+
return false;
29+
else
30+
return true;
31+
}
32+
};
33+
34+
//struct QueueFull{ };
35+
//struct QueueEmpty{ };
36+
37+
int NumAnsw = 0;
38+
Cell Arr [100];
39+
40+
class Queue{
41+
private:
42+
Cell *C;
43+
int size;
44+
int first, last; //èíäåêñ ðåàëüíîãî ïåðâîãî è ïîñëåäíåãî ýëåìåíòà
45+
int n; //ðåàëüíîå êîëè÷åñòâî ýëåìåíòîâ â î÷åðåäè
46+
public:
47+
Queue (){
48+
first = -1; last = -1; //î÷åðåäü ïóñòàÿ
49+
n = 0; size = 100;
50+
C = new Cell [size];
51+
}
52+
53+
Queue (int tmpSize){
54+
first = -1; last = -1;
55+
n = 0; size = tmpSize;
56+
C = new Cell [size];
57+
}
58+
59+
Queue (const Queue &tmp){
60+
if (C != NULL) delete [] C;
61+
first = tmp.first; last = tmp.last;
62+
n = tmp.n; size = tmp.size;
63+
C = new Cell [size];
64+
for (int i = 0; i < size; i++)
65+
C[i] = tmp.C[i];
66+
}
67+
68+
virtual ~Queue (){
69+
delete [] C;
70+
}
71+
72+
//--------------------------------------------------------------
73+
74+
void addLast (const Cell &tmp){
75+
if (n >= size) return;
76+
if (n == 0){
77+
first = 0; last = 0;
78+
C[last] = tmp; n++;
79+
}
80+
else{
81+
last = (last + 1) % size;
82+
C[last] = tmp; n++;
83+
}
84+
}
85+
86+
Cell delFirst (){
87+
Cell tmp;
88+
if (n == 0){
89+
tmp.col = -1;
90+
tmp.row = -1;
91+
return tmp;
92+
}
93+
if (n == 1){
94+
tmp = C[first]; n = 0;
95+
first = -1; last = -1;
96+
}
97+
else{
98+
tmp = C[first]; n--;
99+
first = (first + 1) % size;
100+
}
101+
return tmp;
102+
}
103+
};
104+
105+
void input (char **&labyrinth, int **&dir, Cell &start, Cell &finish, Cell &size){
106+
int n, m;
107+
ifstream in ("input.txt");
108+
in >> n; dir = new int* [n]; labyrinth = new char* [n];
109+
in >> m; size.row = n; size.col = m;
110+
for (int i = 0; i < n; i++){
111+
dir [i] = new int [m]; labyrinth [i] = new char [m];
112+
}
113+
in >> start.row >> start.col >> finish.row >> finish.col;
114+
start.row--; start.col--; finish.row--; finish.col--;
115+
for (int i = 0; i < n; i++){
116+
in >> labyrinth [i];
117+
//cout << labyrinth[i] << endl;
118+
for (int j = 0; j < m; j++)
119+
dir [i][j] = 0;
120+
}
121+
dir [finish.row][finish.col] = 0;
122+
dir [start.row][start.col] = -3;
123+
}
124+
125+
int basicMethod (char **&labyrinth, int **&dir, const Cell &start, const Cell &finish, const Cell &size){
126+
int answer = size.row * size.col;
127+
Queue q (answer); answer = 0;
128+
Cell tmpc; //tmpc-ýëåìåíò èçâëå÷åííûé èç î÷åðåäè; tmpc2-ýëåìåíò ïîëîæåííûé â î÷åðåäü
129+
q.addLast (start);
130+
tmpc = q.delFirst ();
131+
while (tmpc != finish){
132+
if ((tmpc.col != 0) && (dir [tmpc.row][tmpc.col - 1] == 0) && (labyrinth [tmpc.row][tmpc.col - 1] == '.')){
133+
dir [tmpc.row][--tmpc.col] = -1;
134+
q.addLast(tmpc); tmpc.col++;
135+
}
136+
if ((tmpc.col != size.col - 1) && (dir [tmpc.row][tmpc.col + 1] == 0) && (labyrinth [tmpc.row][tmpc.col + 1] == '.')){
137+
dir [tmpc.row][++tmpc.col] = 1;
138+
q.addLast(tmpc); tmpc.col--;
139+
}
140+
if ((tmpc.row != 0) && (dir[tmpc.row - 1][tmpc.col] == 0) && (labyrinth [tmpc.row - 1][tmpc.col] == '.')){
141+
dir [--tmpc.row][tmpc.col] = -2;
142+
q.addLast(tmpc); tmpc.row++;
143+
}
144+
if ((tmpc.row != size.row - 1) && (dir [tmpc.row + 1][tmpc.col] == 0) && (labyrinth [tmpc.row + 1][tmpc.col] == '.')){
145+
dir [++tmpc.row][tmpc.col] = 2;
146+
q.addLast(tmpc); tmpc.row--;
147+
}
148+
tmpc = q.delFirst ();
149+
if ((tmpc.row == -1) && (tmpc.col == -1)){
150+
answer = -1; tmpc = finish;
151+
}
152+
}
153+
154+
if (answer != -1){
155+
tmpc = finish;
156+
while (tmpc != start){
157+
if (dir [tmpc.row][tmpc.col] == -1){ Arr [NumAnsw++] = tmpc; tmpc.col++; }
158+
else
159+
if (dir [tmpc.row][tmpc.col] == 1){ Arr [NumAnsw++] = tmpc; tmpc.col--; }
160+
else
161+
if (dir [tmpc.row][tmpc.col] == -2){ Arr [NumAnsw++] = tmpc; tmpc.row++; }
162+
else
163+
if (dir [tmpc.row][tmpc.col] == 2){ Arr [NumAnsw++] = tmpc; tmpc.row--; }
164+
//cout << tmpc << endl;
165+
answer++;
166+
}
167+
}
168+
Arr [NumAnsw++] = start;
169+
170+
return answer;
171+
}
172+
173+
int main (){
174+
char **labyrinth;
175+
int **dir, answer;
176+
Cell start, finish, size;
177+
input (labyrinth, dir, start, finish, size);
178+
answer = basicMethod (labyrinth, dir, start, finish, size);
179+
cout << answer;
180+
cout << endl;
181+
for (int i = 0; i < NumAnsw; i++)
182+
cout << Arr [i];
183+
system ("pause");
184+
return 0;
185+
}

button.png

406 Bytes
Loading

denis.txt

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
5
2+
200 280
3+
300 380
4+
420 300
5+
360 140
6+
300 240

dima.txt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
13
2+
60 420
3+
80 420
4+
180 420
5+
240 420
6+
340 420
7+
420 420
8+
500 420
9+
580 420
10+
600 380
11+
580 260
12+
460 160
13+
360 220
14+
300 300

0 commit comments

Comments
 (0)