void terminal_readline() { uint32_t x = 0; uint32_t y = 0; while (1) { KeyboardUpdate(); char c = KeyboardGetChar(); if (c == 0) continue; terminal_screen[y*terminal_width + x] = c; if (c == '\n') { y++; y = y % 75; x = 0; } else { x++; x = x % 240; } terminal_display(); } }
int main(int argc, char** argv) { srand(time(NULL)); int random1, random2; //создаем корабли for(int i=0;i<SHIP_COUNT;i++){ random1 = rand() % CITY_COUNT; SHIPS[i].id = i; SHIPS[i].from = random1; while(true){ random2 = rand() % CITY_COUNT; //printf("%d - %d\n", random1, random2); if(random1 != random2){ SHIPS[i].to = random2; break; } } SHIPS[i].in_way = false; SHIPS[i].on_board = 0; SHIPS[i].arrive_time = 0; pthread_create(&SHIPS_THREADS[i], NULL, ship_creation, (void *)&SHIPS[i]); } //создаем пассажиров int passenger_number = 0; for(int i=0;i<CITY_COUNT;i++){ for(int j=0;j<PASSENGER_COUNT;j++){ PASSENGERS[passenger_number].id = passenger_number; PASSENGERS[passenger_number].in_way = false; PASSENGERS[passenger_number].city = i; PASSENGERS[passenger_number].ship = 0; pthread_create(&PASSENGERS_THREADS[passenger_number], NULL, passenger_creation, (void *)&PASSENGERS[passenger_number]); passenger_number++; } } while(true){ // Каждую секунду обновляем консоль terminal_display(); sleep(1); } return 0; }