( x == z) || (!x || (y && z)) == 0
означает ( x == z) || ( (!x || (y && z)) == 0 )
.{
thread gameThread(game_loop, ref(star_pleced), ref(staircase_placed), ref(c), ref(t_placed), ref(r_placed), ref(p_placed), rows, cols, ref(map));
thread monsterThread(monster_move, ref(map));
gameThread.join();
monsterThread.join();
refresh();
} while ((c = getch()) != '0');
ssize_t numBytes = sendto
Это связано с тем, что сокеты работают на низком уровне и не гарантируют сохранение порядка отправленных данных. Когда два приложения отправляют данные одновременно, они могут перемешиваться в процессе передачи по сети и приходить в произвольном порядке.
while (collision && try_counter <= 100);
вставьте:if (try_counter > 100) break;
while (map[py][px] != ' ')
).do
{
center_y = ry + (r_size_y / 2);
center_x = rx + (r_size_x / 2);
} while (map[center_y][center_x] != ' ');
for (int nx = max(0, x-1); nx < min(x+2, n); ++nx) {
for (int ny = max(0, y-1); ny < min(y+2, n); ++ny) {
if (nx == x && ny == y) continue;
// {nx, ny} - сосед в поле, обрабатываем его.
}
}
for (int nx = x-1; nx <= x+1; ++nx) {
for (int ny = y-1; ny <= y+1; ++ny) {
if ((nx == x && ny == y) || nx < 0 || ny < 0 || nx >= n || ny >= n) continue;
// {nx, ny} - соседняя клетка.
}
}
while (collision == true);
).Не понятно, говорится если ход не дает победы, то компьютер ставит фигуру в следующую клетку,
board[move] = computer;
board[move] = EMPTY;
found = winner(board) == computer;
- этот код присваивает булевой переменной found значение выражения winner(board) == computer
. mov eax, dword ptr [rax + 4*rcx]
в варианте с индексами используется инструкция mov eax, dword ptr [rax]
для указателей. Это самое "складывание с указателем массива" вообще не отдельная операция - а вариант адрессации в инструкции mov. Они могут вообще одинаковое количество тактов занимать, это надо мануал по конкретной архитектуре процессоров читать. #define Class3 Class3_Unused
#include "module1.h"
#undef Class3
&
вместо %
. Соответственно, пропускаются не числа, которые не делят n, а числа, дающие не 0 в побитовом И с n.10-'a'
. Если от 0 до 9 - 0-'0'
. std::wstring Parse(const std::string encoded) {
std::wstring result;
for (int start = 0; start < encoded.length(); start += 6) {
if (encoded[start] != '\\' || encoded[start+1] != 'u') return result // строка неправильного формата.
char16_t nxt = 0;
for (int i = start +2; i < start+6; ++i) {
int cur = 0;
char &chr = encoded[i];
if ('0' <= chr && chr <= '9') cur = chr - '0';
if ('a' <= chr && chr <= 'f') cur = chr - 'a' + 10;
if ('A' <= chr && chr <= 'F') cur = chr - 'A' + 10;
nxt = (nxt << 4) + cur;
}
result += nxt;
}
return result;
}
std::array<std::bitset<16>,4>
например. Вместо push_back сразу обращайтесь к i-ому элементу ответа.res[i] = input[i+offset]
.