Moin Moin liebe Gemeinde,
wenn ich Scanf benutze dann übersieht er das Abbruchkriterium.
Wenn ich Scanf auskommentiere und das auskommentierte Scanf ++ benutze,
dann funktioniert es wie gedacht.
Mit dem scanf jedoch fragt er mich unendlich viele Spielzüge ab.
1 | #include <stdio.h>
|
2 | #include <stdlib.h>
|
3 | #include <stdint.h>
|
4 |
|
5 | #define xMax 3
|
6 | #define yMax 3
|
7 | #define SpielzugMax 9
|
8 |
|
9 | void Spielfeld_Aus(void);
|
10 | void Spielfeld_Erstellen(void);
|
11 | char Spielfeld[xMax][yMax];
|
12 |
|
13 | int main()
|
14 | {
|
15 | uint8_t xPos;
|
16 | uint8_t yPos;
|
17 | uint8_t A_S=0;
|
18 | uint8_t Spielzug;
|
19 | uint8_t SpielzugCnt=0;
|
20 |
|
21 | Spielfeld_Erstellen();
|
22 | Spielfeld_Aus();
|
23 |
|
24 | while (SpielzugCnt < 9)
|
25 | {
|
26 | printf("Spieler 1 Spielzug wählen 1-9\n");
|
27 | scanf("%i",&Spielzug);//Hier ist das Scanf
|
28 | //Spielzug++;
|
29 | SpielzugCnt ++;
|
30 |
|
31 | switch(Spielzug)
|
32 | {
|
33 | case 1: Spielfeld[0][0]='O'; break;
|
34 | case 2: Spielfeld[1][0]='O'; break;
|
35 | case 3: Spielfeld[2][0]='O'; break;
|
36 | case 4: Spielfeld[0][1]='O'; break;
|
37 | case 5: Spielfeld[1][1]='O'; break;
|
38 | case 6: Spielfeld[2][1]='O'; break;
|
39 | case 7: Spielfeld[0][2]='O'; break;
|
40 | case 8: Spielfeld[1][2]='O'; break;
|
41 | case 9: Spielfeld[2][2]='O'; break;
|
42 | }
|
43 | Spielfeld_Aus();
|
44 |
|
45 | printf("Spieler 2 Spielzug wählen 1-9\n");
|
46 | //scanf("%i",&Spielzug);
|
47 | Spielzug++;
|
48 | SpielzugCnt ++;
|
49 |
|
50 | switch(Spielzug)
|
51 | {
|
52 | case 1: Spielfeld[0][0]='X'; break;
|
53 | case 2: Spielfeld[1][0]='X'; break;
|
54 | case 3: Spielfeld[2][0]='X'; break;
|
55 | case 4: Spielfeld[0][1]='X'; break;
|
56 | case 5: Spielfeld[1][1]='X'; break;
|
57 | case 6: Spielfeld[2][1]='X'; break;
|
58 | case 7: Spielfeld[0][2]='X'; break;
|
59 | case 8: Spielfeld[1][2]='X'; break;
|
60 | case 9: Spielfeld[2][2]='X'; break;
|
61 | }
|
62 | Spielfeld_Aus();
|
63 | }
|
64 |
|
65 | system("Pause");
|
66 |
|
67 | return 0;
|
68 | }
|
69 |
|
70 |
|
71 | void Spielfeld_Erstellen(void)
|
72 | {
|
73 | uint8_t xPos=0;
|
74 | uint8_t yPos=0;
|
75 |
|
76 |
|
77 | while(yPos < yMax)
|
78 | {
|
79 | while(xPos < xMax)
|
80 | {
|
81 | Spielfeld[xPos][yPos]='u';
|
82 | xPos++;
|
83 | }
|
84 | xPos=0;
|
85 | printf("\n");
|
86 | yPos++;
|
87 | }
|
88 | }
|
89 |
|
90 |
|
91 | void Spielfeld_Aus(void)
|
92 | {
|
93 | uint8_t xPos=0;
|
94 | uint8_t yPos=0;
|
95 |
|
96 |
|
97 | while(yPos < yMax)
|
98 | {
|
99 | while(xPos < xMax)
|
100 | {
|
101 | printf("%c",(Spielfeld[xPos][yPos]));
|
102 | xPos++;
|
103 | }
|
104 | xPos=0;
|
105 | printf("\n");
|
106 | yPos++;
|
107 | }
|
108 | }
|
Mit freundlichen Grüßen
Braunweissgruen