Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. // stat.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5.  
  6. //BACKTRACKING
  7.  
  8. //zdef stale N i M
  9. #define sizeX 9
  10. #define sizeY 10
  11. #define DEPTH_MIN 10 //gl zanurzenia okretu xD
  12.  
  13. //zdefiniowac typ wyliczeniowy kierunki ruchu UP RIGHT DOWN LEFT
  14. typedef enum { RIGHT = 2, UP = 1, DOWN = 3, LEFT = 4 }Direction;
  15.  
  16. int move(int** pTab, int row, int col, int nDepth, int move_nr, int x, int y, int* px, int* py, int** root);
  17. //ptab glebokosc kazdego kwadratu
  18. //rozmiary tablicy x2
  19. //min glebokosc DEPTH_MIN
  20. //kierunek ruchu
  21. // aktualne polozenie x2
  22. //parametry wyjsciowe wyliczone na podstawie x y i move x2
  23. //tablica w ktorej pamietamy ruchu ( ? )
  24.  
  25. //ruch w kierunku move_nr (switch) px py
  26. //sprawdzic czy px py sa w zakresie tablicy
  27. //sprawdzic warunek cyz nie jest za plytko min metr pod statkiem
  28. //czy nie bylo sie w tej lokalizacji
  29.  
  30. //jesli wsszytsko ok ? 1 : 0
  31.  
  32. int root(int** pTab, int row, int col, int depth, int x, int y, int** pRoot, int x_dest, int y_dest) {
  33. if (x == x_dest && y == y_dest)
  34. return 1;
  35.  
  36. int newX = 0;
  37. int newY = 0;
  38.  
  39. for (int i = 1; i <= 4; i++) {
  40. if (move(pTab, row, col, depth, i, x, y, &newX, &newY, pRoot)) {
  41. pRoot[newX][newY] = 1;
  42. root(pTab, row, col, depth, newX, newY, pRoot, x_dest, y_dest);
  43. return 1;
  44. }
  45. }
  46. }
  47.  
  48. //ptab tablic z glebokosciami
  49. //proot tablica kolejnych ruchow
  50. //wsp docelowe (dest)
  51.  
  52. //tab root pamieta droge 1 odwiedzono 0 nie
  53. //jezeli dotarlem do portu zwracam 1
  54.  
  55. //zdefiniowac nowe wsp
  56. //spr wszystkie mozliwe ruchy
  57. //jesli ruch jest mozliwy w zadanym kierunku
  58. //jesli wykonanie kolejnego ruchu sie powiodlo to rekurencyjnie od nowego miejsca
  59. //return 1
  60. //jesli wrcamay to ustawiamy proot ze ruch byl zly
  61. //return 0
  62.  
  63. //calloc
  64.  
  65. void setTab(char* sFile, int** pTab, int row, int col);
  66. //dane z pliku (tak ja w matrixie)
  67. //sfile nazwa pliku
  68. //ptab tablica z glebokosciami
  69. //wymiary tablicy
  70.  
  71. //main
  72. //sprawdzic argc
  73. //wykreowac dynamicznie 2 tablice 2d 10x10?
  74. //wyzerowac obie tablice (calloc)
  75. //wczytac dane (sprawdzic argc)
  76. //jezeli nie znaleziono drogi od 00 do portu wypisac ze sie nie do czy cos ( ? )
  77. //jesli ok to wypisac trase i zwolnic pamiec
  78. // i tyle
  79. int main()
  80. {
  81. return 0;
  82. }
  83.  
  84. int move(int** pTab, int row, int col, int nDepth, int move_nr, int x, int y, int* px, int* py, int** root) {
  85. switch (move_nr) {
  86. case UP: *py = --y;
  87. break;
  88. case RIGHT: *px = ++x;
  89. break;
  90. case DOWN: *py = ++y;
  91. break;
  92. case LEFT: *px = --x;
  93. }
  94. if (*px >= 0 && *px < col && *py >= 0 && *py < row)
  95. if (pTab[*px][*py] > nDepth)
  96. if (root[*px][*py] == 0)
  97. return 1;
  98. return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement