1
+ #include <stdio.h>
2
+ #include <string.h>
3
+ #include <stdlib.h>
4
+ #include <math.h>
5
+
6
+ void tiros (int xo , int yo , int pox , int poy , int id , int posibala [6 ][75 ][2 ]){
7
+ // xo e yo ponto clicado, po lugar dos chars
8
+ int i ;
9
+ int x , y ;
10
+ double m ;
11
+ if (xo == pox && yo > poy ){
12
+ i = 0 ;
13
+ y = poy ;
14
+ while (y <=yo ){
15
+ y ++ ;
16
+ posibala [id ][i ][0 ]= xo ;
17
+ posibala [id ][i ][1 ]= y ;
18
+ i ++ ;
19
+ }
20
+ posibala [id ][i - 1 ][0 ]= -1 ;
21
+ posibala [id ][i - 1 ][1 ]= -1 ;
22
+ for (i = 0 ;i < 100 ;i ++ ){
23
+ printf ("posibala=(%d)(%d,%d)\n" ,i ,posibala [id ][i ][0 ],posibala [id ][i ][1 ]);
24
+ if (posibala [id ][i ][0 ]== -1 )break ;
25
+ }
26
+ }else {
27
+ if (xo == pox && yo < poy ){
28
+ y = poy ;
29
+ i = 0 ;
30
+ while (y >=yo ){
31
+ y -- ;
32
+ posibala [id ][i ][0 ]= xo ;
33
+ posibala [id ][i ][1 ]= y ;
34
+ i ++ ;
35
+ }
36
+ posibala [id ][i - 1 ][0 ]= -1 ;
37
+ posibala [id ][i - 1 ][1 ]= -1 ;
38
+ for (i = 0 ;i < 100 ;i ++ ){
39
+ printf ("posibala = (%d)(%d,%d)\n" ,i ,posibala [id ][i ][0 ],posibala [id ][i ][1 ]);
40
+ if (posibala [id ][i ][0 ]== -1 )break ;
41
+ }
42
+ }else {
43
+ if (xo > pox ){
44
+ i = 0 ;
45
+ m = (double )(yo - poy )/(xo - pox );
46
+ for (x = pox ;x <=xo ;x ++ ,i ++ ){
47
+ y = (int )(m * (x - pox )+ poy );
48
+ posibala [id ][i ][0 ]= x ;
49
+ posibala [id ][i ][1 ]= y ;
50
+ }
51
+ posibala [id ][i ][0 ]= -1 ;
52
+ posibala [id ][i ][1 ]= -1 ;
53
+ for (i = 0 ;i < 100 ;i ++ ){
54
+ printf ("posibala = (%d)(%d,%d)\n" ,i ,posibala [id ][i ][0 ],posibala [id ][i ][1 ]);
55
+ if (posibala [id ][i ][0 ]== -1 )break ;
56
+ }
57
+ }else {
58
+ i = 0 ;
59
+ m = (double )(yo - poy )/(xo - pox );
60
+ for (x = pox ;x >=xo ;x -- ,i ++ ){
61
+ y = (int )(m * (x - pox )+ poy );
62
+ posibala [id ][i ][0 ]= x ;
63
+ posibala [id ][i ][1 ]= y ;
64
+ }
65
+ posibala [id ][i ][0 ]= -1 ;
66
+ posibala [id ][i ][1 ]= -1 ;
67
+ for (i = 0 ;i < 100 ;i ++ ){
68
+ printf ("posibala = (%d)(%d,%d)\n" ,i ,posibala [id ][i ][0 ],posibala [id ][i ][1 ]);
69
+ if (posibala [id ][i ][0 ]== -1 )break ;
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+ }
76
+ int main (){
77
+ int bala [6 ][75 ][2 ],xop ,yop ,ox ,oy ,di ;
78
+ printf ("ID:\n" );
79
+ scanf ("%d" ,& di );
80
+ printf ("Posi:\n" );
81
+ scanf ("%d %d" ,& xop ,& yop );
82
+ printf ("click:\n" );
83
+ scanf ("%d %d" ,& ox ,& oy );
84
+ tiros (ox ,oy ,xop ,yop ,di ,bala );
85
+ }
0 commit comments