Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: utf-8
Méret: 2 KB
#include <stdio.h>
#define MaxN 1000000
#define MaxK 1000000
int A[MaxK], N, K;
void Make (void);
void Play (void);
void Print (void);
bool SaveSVG1 (const char *);
bool SaveSVG2 (const char *);
int main (void) {
printf("N: ");
scanf("%d", &N);
Make();
SaveSVG2("mancala2.svg");
return 0;
}
void Make (void) {
int N_ = N;
for (K = 0; N_ > 0; K++)
N_ -= A[K] = N_ % (K + 2);
}
void Play (void) {
int I;
do {
Print();
for (I = 0; I < K; I++) {
if (A[I] == I + 1) {
A[I] = 0;
break;
}
A[I]++;
}
if (I == K) {
printf("Break.\n");
break;
} else if (I == K - 1)
K--;
} while (K > 0);
if (K == 0)
printf("Success.\n");
}
void Print (void) {
for (int I = 0; I < K; I++)
printf("%d ", A[I]);
printf("\n");
}
bool SaveSVG1 (const char * FN) {
FILE * F = fopen(FN, "w");
int I, J;
if (F == NULL)
return false;
fprintf(F, "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
fprintf(F, "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%%\" height=\"100%%\">\n");
fprintf(F, "\n");
for (I = 0; I < K; I++) {
fprintf(F, "<polyline points=\"%d %d %d %d %d %d %d %d %d %d %d %d %d %d\" style=\"stroke:#000000;stroke-width:2;\"/>\n",
I * 80 + 5, 60 * K - 20, I * 80 + 5, 60 * K,
I * 80 + 75, 60 * K, I * 80 + 75, 60 * K - 20,
I * 80 + 75, 60 * K, I * 80 + 5, 60 * K,
I * 80 + 5, 60 * K - 20);
for (J = 0; J < A[I]; J++) {
fprintf(F, "<circle cx=\"%d\" cy=\"%d\" r=\"%d\" style=\"fill:#80FF00;stroke:#000000;stroke-width:2;\"/>\n",
I * 80 + 40, 60 * (K - J - 1) + 30, 30);
}
fprintf(F, "\n");
}
fprintf(F, "</svg>");
fclose(F);
return true;
}
bool SaveSVG2 (const char * FN) {
FILE * F = fopen(FN, "w");
int I, J;
if (F == NULL)
return false;
fprintf(F, "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
fprintf(F, "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%%\" height=\"100%%\">\n");
fprintf(F, "\n");
for (I = 0; I < K; I++) {
fprintf(F, "<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" style=\"fill:#60C000;stroke-width:0;\"/>\n",
I * 1, (K - A[I]) * 1, 1, A[I] * 1);
fprintf(F, "\n");
}
fprintf(F, "</svg>");
fclose(F);
return true;
}