added value display to graphing + removed a tkinter function from python script

This commit is contained in:
Alexandre 2024-12-21 11:21:56 +01:00
parent 9743ad71c4
commit a78367dc79
5 changed files with 128 additions and 31 deletions

View File

@ -1,30 +1,27 @@
68.89999999999996 230.35480000000163
2 0
13 21 13 21
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 3 3 3 3 3 0 2 2 2 2 2 2 2 2 0 5 5 5 5 1 1 3 3 6 6 6 6 6 6 3 4 4 4 3 4 4 4 3 3 3 1
1 3 1 3 1 0 1 2 1 2 1 2 1 2 1 2 1 5 1 5 1 1 3 1 3 1 3 1 6 1 3 1 4 1 3 1 4 1 6 1 5 1
1 3 3 3 3 0 2 2 2 2 2 2 2 2 2 2 0 5 5 5 1 1 3 3 3 3 3 3 3 3 3 3 6 6 3 6 6 6 6 6 6 1
1 3 1 3 1 2 1 2 1 2 1 2 1 2 1 2 1 0 1 5 1 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 6 1 4 1 3 1
1 3 3 3 0 2 2 2 2 2 2 2 2 2 2 2 2 2 0 5 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 6 3 1
1 3 1 6 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 5 1 1 3 1 3 1 3 1 3 1 3 1 6 1 3 1 6 1 3 1 3 1
1 0 0 6 0 2 2 2 2 2 2 2 2 2 2 2 2 0 0 5 1 1 3 3 3 3 3 3 3 3 3 3 6 6 3 6 6 6 6 6 6 1
1 0 1 6 1 2 1 2 1 2 1 2 1 2 1 2 1 4 1 4 1 1 6 1 3 1 3 1 3 1 3 1 6 1 3 1 6 1 3 1 3 1
1 6 6 6 0 0 2 2 2 2 2 2 2 2 2 0 4 4 4 4 1 1 3 3 3 3 3 3 3 3 3 3 3 6 3 6 6 6 6 3 3 1
1 6 1 6 1 6 1 2 1 2 1 2 1 2 1 2 1 4 1 4 1 1 6 1 3 1 3 1 3 1 3 1 6 1 3 1 6 1 3 1 3 1
1 6 6 6 6 6 6 0 2 2 2 2 2 2 2 0 4 4 4 4 1 1 3 3 3 3 3 6 3 6 3 6 6 6 3 6 6 4 3 3 3 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
5
7 17 1 230.4744000000016
4 15 5 230.6500000000007
5 16 5 231.91820000000158
6 19 5 234.5426000000016
7 14 1 235.06710000000166
3 3
8 17 2 69.89999999999993 8 19 0 4 2 5 3 4
9 5 1 70.99999999999993 7 12 1 4 0 1 0 3
7 18 2 73.59999999999998 5 11 3 2 1 5 3 2
4 0
5 3 0 0 2 2 2 0
7 19 1 1 0 2 2 1
11 16 2 1 0 2 0 0
11 7 3 1 1 1 3 4
4
2 5 0
1 6 4
5 4 3
7 2 2

View File

@ -122,6 +122,101 @@ void placeRectToRendererNoColor(SDL_Renderer* renderer, int X, int Y, int W, int
SDL_RenderFillRect(renderer, &rect); SDL_RenderFillRect(renderer, &rect);
} }
int ln_b(int b, int n) {
if(n < 0) {
return ln_b(b, -n) ;
} else if(n < b) {
return 0;
}
return 1 + ln_b(b, n/b) ;
}
void drawDigitToRenderer(SDL_Renderer* renderer, int d, int width, int X, int Y, int W, int H) {
switch (d) {
case 0:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, 2*width, H+2*width); // 2
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, 2*width, H+2*width); // 5
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
case 1:
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
break;
case 2:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, 2*width, H+2*width); // 5
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
case 3:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
case 4:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, 2*width, H+2*width); // 2
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
break;
case 5:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, 2*width, H+2*width); // 2
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
case 6:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, 2*width, H+2*width); // 2
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, 2*width, H+2*width); // 5
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
case 7:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
break;
case 8:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, 2*width, H+2*width); // 2
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, 2*width, H+2*width); // 5
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
case 9:
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, W+2*width, 2*width); // 1
placeRectToRendererNoColor(renderer, X-width/2, Y-width/2, 2*width, H+2*width); // 2
placeRectToRendererNoColor(renderer, X+W-width/2, Y-width/2, 2*width, H+2*width); // 3
placeRectToRendererNoColor(renderer, X-width/2, Y+H-width/2, W+2*width, 2*width); // 4
placeRectToRendererNoColor(renderer, X+W-width/2, Y+H-width/2, 2*width, H+2*width); // 6
placeRectToRendererNoColor(renderer, X-width/2, Y+2*H-width/2, W+2*width, 2*width); // 7
break;
default:
break;
}
}
void drawIntegerToRenderer(SDL_Renderer* renderer, int n, int width, int X, int Y, int W, int H, int R, int G, int B, int A) {
setRendererColor(renderer, R, G, B, A) ;
int dsize = 1+ln_b(10, n) ;
int cur_n = n ;
for(int i = 0; i < dsize; i++) {
drawDigitToRenderer(renderer, cur_n%10, width, X+(W+3*width)*(dsize-1-i), Y, W, H) ;
cur_n = cur_n / 10 ;
}
}
void drawCircleToRenderer(SDL_Renderer * renderer, int32_t centreX, int32_t centreY, int32_t radius) { void drawCircleToRenderer(SDL_Renderer * renderer, int32_t centreX, int32_t centreY, int32_t radius) {
const int32_t diameter = (radius * 2); const int32_t diameter = (radius * 2);
@ -256,10 +351,15 @@ void update_graph(SDL_Renderer* renderer, int** board, int current_time) {
int xc = convex_pt(left_x, right_x, ((float)(t0))/((float)(borned))) ; int xc = convex_pt(left_x, right_x, ((float)(t0))/((float)(borned))) ;
int yc = convex_pt(bot_y, top_y, 1.0f - ((float)(max(0, board[t][pl])))/((float)(max_val+1))) ; int yc = convex_pt(bot_y, top_y, 1.0f - ((float)(max(0, board[t][pl])))/((float)(max_val+1))) ;
//drawCircleToRenderer(renderer, xc, yc, 10) ; //drawCircleToRenderer(renderer, xc, yc, 10) ;
placeRectToRenderer(renderer, xc, yc-y_size+offset+wside, x_size, y_size, 255*(pl==0||pl==3), 255*(pl>=2), 255*(pl==1), 96) ; placeRectToRenderer(renderer, xc, yc-y_size+offset+wside, x_size, y_size, 255*(pl==0)+192*(pl==3), 255*(pl==2)+192*(pl==3), 255*(pl==1), 96) ;
} }
} }
int tmax = (borned-1 + max(0, current_time - map_size +1))%map_size ;
for(int pl = 0; pl < 4; pl++) {
int mval = max(0, board[tmax][pl]);
int yc = convex_pt(bot_y, top_y, 1.0f - ((float)(max(0, board[tmax][pl])))/((float)(max_val+1))) ;
drawIntegerToRenderer(renderer, mval, 2, right_x+2-20*(-1+ln_b(10, mval)), yc+14-2*2, 14, 14, 255*(pl==0)+192*(pl==3), 255*(pl==2)+192*(pl==3), 255*(pl==1), 128) ;
}
updateRenderer(renderer) ; updateRenderer(renderer) ;
} }
@ -305,7 +405,7 @@ int main(int argc, char** argv) {
while(!game_ended) { while(!game_ended) {
while(!can_pass()) { while(!can_pass()) {
// required because of non-synchronization causing this to read a non-full file
} }
int cur_time = get_data("entrees.txt", board, &game_ended) ; int cur_time = get_data("entrees.txt", board, &game_ended) ;
//fprintf(stderr, "%d %d %d\n", last_time, cur_time, game_ended) ; //fprintf(stderr, "%d %d %d\n", last_time, cur_time, game_ended) ;

BIN
graphs

Binary file not shown.

View File

@ -540,7 +540,7 @@ def simulation(strategies):
execute_evenement(evenements, evenement, plateau, plateauCouleur, bombes, joueurs, powerups, pieges) execute_evenement(evenements, evenement, plateau, plateauCouleur, bombes, joueurs, powerups, pieges)
affiche_plateau(canvas, plateau, plateauCouleur, bombes, joueurs, powerups) affiche_plateau(canvas, plateau, plateauCouleur, bombes, joueurs, powerups)
affiche_infos(canvasInfosJoueurs, joueurs, plateauCouleur) affiche_infos(canvasInfosJoueurs, joueurs, plateauCouleur)
affiche_empires(canvasInfosJoueurs, joueurs, plateauCouleur) # very laggy for some reason # not anymore #affiche_empires(canvasInfosJoueurs, joueurs, plateauCouleur) # very laggy for some reason # not anymore
temps = int(1000*(evenements[0][0]-evenement[0])/TIME_FACTOR) temps = int(1000*(evenements[0][0]-evenement[0])/TIME_FACTOR)
#print(1000*(evenements[0][0]-evenement[0])/TIME_FACTOR, " <--> ", temps) #print(1000*(evenements[0][0]-evenement[0])/TIME_FACTOR, " <--> ", temps)
# not here # not here

View File

@ -1 +1 @@
4 0 2 0