Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).
Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.
Společnost Epic Games vydala verzi 5.7 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
##################
#
########### # #
# ######
###### ###### #
# ##
##################
Ve vstupních datech je stěna bludiště zadávána jako znak '#' (mřížka) a volné políčko jako znak mezera. Bludiště může mít jakýkoliv tvar, nemusí to být pouze obdélník. Pokud řádky nebudou stejně dlouhé, doplní se kratší řádky volným místem na délku nejdelšího řádku. Můžeme předpokládat, že pokud se soubor podaří otevřít, tak v něm bude korektně zadané bludiště.
Muj (pseudo)algoritmus, resp planovany postup je nasledujici:
1) nacist txt do char buffer[] 2) spocitat radky (y) a delku nejdelsiho radku (x) 3) vytvorit v allegru display velikosi y krat x 4) definovat prvek bitmapy 10x10 pixelu 5) jeden prvek = jeden znak '#' 6) Kontroluj kazdy prvek v bufferu, pokud narazis na znak, tak vykresli bitmapu: if buffer[] = '#' vykresli prvek bitmapy jdi na dalsi prvek bufferu else zkontroluj dalsi prvek v bufferuKnihovna allergo5 je rozsahla, byl bych proto rad, kdyby mi nekdo poradil, jake fce by se nejvic hodily. Z toho, co o allegru zatim vim, se domnivam, ze budu muset pouzit fci create_display o velikosti strlen(nejdelsi radek) * 10(rozmer bitmapoveho prvku). Potom vytvorit bitmapu 10x10. Ma otazka zni, jake fce budu potrebovat na tisknuti bludiste? Nasel jsem fci al_put_pixel, ktera tiskne pixel na urcitou souradnici. Mam si tedy vyhradit pri kazdem nacteni '#' bitmapu 10x10, tu zaplnit pixely dane barvy, a pak jit o policko dal? Nebo je tu jina, mene pracna moznost?
Řešení dotazu:
#define TILE_H 10
#define TILE_W 10
int main(void){
al_init();
al_init_image_addon();
ALLEGRO_DISPLAY *display = NULL;
const int BOUNCER_SIZE = 10;
ALLEGRO_BITMAP *tile = NULL;
//ZACATEK - nacte text ze souboru
FILE *in;
FILE *out;
char buffer[1204];
buffer[0] = 0;
char input[1204];
int i;
int vyska = 0;
int delka = i = 0;
float dx = 0.0;
float dy = 0.0;
char c;
in = fopen ("input.txt" , "r");
if (in == NULL) perror ("Error opening file");
while( fgets(input , 800 , in) != NULL ){ //kopiruje data z jednoho souboru do druheho
strcat(buffer, input);
i = strlen(input);
i-= 1;
//pocita delku nejdelsiho radku
if (i > delka)
delka = i;
//pocet radku
vyska++;
}
fclose (in);
delka *= 10;
vyska *= 10;
display = al_create_display(delka, vyska);
if(!display) {
fprintf(stderr, "failed to create display!\n");
return -1;
}
tile = al_create_bitmap(TILE_H, TILE_W);
if(!tile) {
fprintf(stderr, "failed to create bouncer bitmap!\n");
al_destroy_display(display);
return -1;
}
al_clear_to_color(al_map_rgb(255,255,255));
al_set_target_bitmap(tile);
al_clear_to_color(al_map_rgb(0,0,0));
al_set_target_bitmap(al_get_backbuffer(display));
in = fopen ("input.txt" , "r");
do {
c = getc (in);
if (c == '#')al_draw_bitmap(tile, dx, dy, 0);
dx+=10;
if (c == '\n'){
dy+= 10;
dx = 0;
}
} while (c != EOF);
al_save_bitmap("screen.bmp" , al_get_backbuffer(display));
al_destroy_bitmap(tile);
al_destroy_display(display);
return 0;
}
Tiskni
Sdílej: