Pull to refresh
12
0
Дмитрий Шехматов @duwaz

User

Send message

Будем ждать исследования, где говорится, что английский язык самый не экологичный. Также с графиками и доказательствами… всё как положено.

Hi ultral!

You can get address of system call table:
kallsyms_lookup_name("sys_call_table")

instead:
void *system_call;
unsigned char *ptr;
int i, low, high;
asm volatile("rdmsr" : "=a" (low), "=d" (high) : "c" (IA32_LSTAR));

system_call = (void*)(((long)high<<32) | low);
for (ptr=system_call, i=0; i<500; i++, ptr++) {
	if (ptr[0] == 0xff && ptr[1] == 0x14 && ptr[2] == 0xc5)
		return (void*)(0xffffffff00000000 | *((unsigned int*)(ptr+3)));
}
return NULL;


and you can use that instead asm code for disable protect memory.
write_cr0 (read_cr0 () & (~ 0x10000));


I think it'd be cleaner.
Anyhow thanks so much for unconventional approach.
Спасибо! Понял! Здорово!
Подумаю, как это лучше реализовать.

Сжимать, думаю, что не нужно. Так как в cache-памяти у меня лежат данные о позициях. И для того, чтобы проверить, рассматривалась ли данная позиция ранее, придётся сжимать данные и только после этого проверять. А это мне кажется повлияет на скорость.
Ок, а как тогда вычислять местоположение шашки?
Стоп, стоп.
1) Стартовая позиция 12 белых, 12 чёрных. *шашек не более 32
2) Как в 2 бита занести следующие 5 состояний?
белая шашка, чёрная шашка, белая дамка, чёрная дамка, шашка отсутствует.
Я не понимаю, что ты пытаешься донести в последнем абзаце. Можешь по подробней описать?
Здорово! Действительно, можно использовать 12 байт. Спасибо!
Смотрел я, в свою очередь, некоторые шахматные движки. Обычно там используются битовые маски для определённого класса фигуры. Интересные подходы работы с ними.
А эндшпили, действительно, надо бы добавить…

Ушёл читать про альфа-бета отсечение…
Я в поиске тактики, которая на первый взгляд лишь проигрышная и лишь спустя десяток ходов, а может несколько десятков, ведёт к победе. Или ведёт хотя бы к сложной для противника ничье.
Например, все дебюты основываются на равенстве количества шашек у игроков. Так, просто, проще играть. Но это же не единственно верный путь.

А сравнивать программу с другими… есть ли смысл?

Information

Rating
Does not participate
Location
Братск, Иркутская обл., Россия
Date of birth
Registered
Activity