Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* sastantua.c :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: kmills <marvin@42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2018/10/21 18:43:35 by kmills #+# #+# */
  9. /* Updated: 2018/10/21 19:32:48 by kmills ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12.  
  13. void ft_putchar(char c);
  14. int ft_1(int size);
  15. void ft_2(int size);
  16. void ft_3(int size,int n);
  17. void ft_even_odd_number(int size);
  18. void sastantua(int size);
  19.  
  20. int g_i = 2;
  21. int g_k_zv = -5;
  22. int g_k_pr = 0;
  23. int g_lvl;
  24. int g_k_str = 2;
  25. int g_t_str = 1;
  26. int g_z = 6;
  27. int g_k;
  28. int g_n = 3;
  29.  
  30. int ft_1(int size)
  31. {
  32. int p[150];
  33. int s[150];
  34.  
  35. p[0] = 2;
  36. p[1] = 8;
  37. p[2] = 15;
  38. s[0] = 6;
  39. s[1] = 7;
  40. s[2] = 9;
  41. while (g_i++ <= size)
  42. {
  43. if (g_i % 2 == 0)
  44. s[g_i] = s[g_i - 1] + 2;
  45. else
  46. s[g_i] = s[g_i-1] + 1;
  47. }
  48. g_i = 2;
  49. while (g_i++ <= size)
  50. p[g_i] = p[g_i - 1] + s[g_i - 1];
  51. g_k = p[g_i - 3];
  52. return (g_k);
  53. }
  54.  
  55. void ft_2(int size)
  56. {
  57. if (g_lvl == size && g_t_str == 1)
  58. g_k_pr = g_k;
  59. else if (g_lvl != size && g_t_str == 1)
  60. {
  61. g_k_pr = g_k_pr - g_n;
  62. if ((size - g_lvl) > 1 && (size - g_lvl) % 2 == 0)
  63. g_n = g_n + 1;
  64. }
  65. else
  66. g_k_pr = g_k_pr - 1;
  67. if (g_t_str == 1)
  68. {
  69. if ((size - g_lvl) > 2 && ((size - g_lvl) % 2 != 0))
  70. g_z = g_z + 2;
  71. g_k_zv = g_k_zv + g_z;
  72. }
  73. else
  74. g_k_zv = g_k_zv + 2;
  75. g_i = 0;
  76. while (g_i++ < g_k_pr)
  77. ft_putchar(' ');
  78. g_i = 0;
  79. ft_putchar('/');
  80. }
  81.  
  82. //void ft_3(int size, int n)
  83. {
  84. while (g_i++ < (n + (g_k_zv / 2) - (size / 2)))
  85. ft_putchar('*');
  86. g_i = 0;
  87. if (g_t_str == 3 + (size / 2) && size > 4)
  88. {
  89. while (g_i++ < (size - 2 - n))
  90. ft_putchar('|');
  91. ft_putchar('$');
  92. ft_putchar('|');
  93. g_i = 0;
  94. while (g_i++ < (n + (g_k_zv / 2) - (size / 2)))
  95. ft_putchar('*');
  96. }
  97. else
  98. {
  99. while (g_i++ < (size - n))
  100. ft_putchar('|');
  101. g_i = 0;
  102. while (g_i++ < (n + (g_k_zv / 2) - (size / 2)))
  103. ft_putchar('*');
  104. }
  105. }
  106.  
  107. void ft_even_odd_number(int size)
  108. {
  109. int n;
  110.  
  111. if (size % 2 != 0)
  112. n = 0;
  113. else
  114. n = 1;
  115. if (g_t_str > 2 + n)
  116. {
  117. ft_3(size, n);
  118. }
  119. else
  120. while (g_i++ < g_k_zv)
  121. ft_putchar('*');
  122. }
  123.  
  124. void sastantua(int size)
  125. {
  126. g_lvl = size;
  127. g_k = ft_1(size);
  128. while (g_lvl > 0)
  129. {
  130. g_k_str++;
  131. while (g_t_str <= g_k_str)
  132. {
  133. ft_2(size);
  134. if (g_lvl != 1)
  135. while (g_i++ < g_k_zv)
  136. ft_putchar('*');
  137. else
  138. {
  139. ft_even_odd_number(int size);
  140. }
  141. g_i = 0;
  142. ft_putchar('\\');
  143. ft_putchar('\n');
  144. g_t_str++;
  145. }
  146. g_lvl--;
  147. g_t_str = 1;
  148. }
  149. }
  150.  
  151. int main(int argc, char *argv[])
  152. {
  153. int g_n;
  154. g_n = argc;
  155. g_n = atoi(argv[1]);
  156. //printf("g_n = %g_i\n", g_n);
  157. sastantua(g_n);
  158. return (0);
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement