ES6: Используя async/await
, вы можете сделать это последовательно-способом
async function getMeta(url) {
return new Promise((resolve, reject) => {
let img = new Image();
img.onload = () => resolve(img);
img.onerror = reject;
img.src = url;
});
}
И вы можете использовать его следующим образом (что почти идентично коду в вашем вопросе (я добавляю await
ключевое слово и изменить переменную end
на img
и изменить var
на let
ключевое слово)
let img = await getMeta("http://shijitht.files.wordpress.com/2010/08/github.png");
let w = img.width;
let h = img.height;
alert(w+'width'+h+'height');
помните, что если вы вызываете getMeta
в некоторой функции, он должен иметь async
в его определении.
Из моих архивов:
Обзор многих алгоритмов, полезных в шахматах - http://www.frayn.net/beowulf/theory.html - должен быть хорошей начальной точкой понимания меры проблемы и нескольких способов упростить вычислительную работу.
-Adam
Вы могли всегда посмотреть на Шахматы GNU код.
Это в основном в области Искусственный интеллект (AI).
наиболее распространенный способ заставить компьютер "думать" в игре в шахматы использует минимаксный метод , где компьютер "думает" путем анализа результатов создания различных перемещений заранее от текущего состояния.
"совершенство" результатов различных перемещений может быть, определяют от многих критериев, таких как счет, число оставленных врагов, побеждающее состояние, например. Например, если Вы перемещаете плеер направо, и Вы выигрываете игру, это - очень хорошее состояние. Но если Вы перемещаете его налево, Вы ничего не получаете. Разумно переместиться направо. Эта функция, которые определяют "совершенство", обычно вызывается Эвристическая Функция.
Этот процесс сделан рекурсивно для многих поворотов. Чем больше количество поворотов, тем большее количество времени Вам будет требоваться. И чем больше количество поворотов, тем более интеллектуально Ваше программное обеспечение. Предположение только в одном повороте может только привести к жадному выбору. Интеллектуальное шахматное программное обеспечение имеет большую эвристическую функцию, и предположите во многих поворотах.
PS Там является некоторыми деталями минимаксного алгоритма, который я не объяснил здесь, но это должно покрыть основную идею.
Claude Shannon статья 1949 года (предупреждение: PDF) на предмете хорошее стартовое место
Лучшее шахматное учебное руководство по программированию для новичков в GameDev. Очень легко понять, в то время как это очень вдается в подробности.
При создании своего шахматного движка я потратил месяцы, пытаясь собрать хорошие ресурсы, которые описывают некоторые более сложные аспекты создания шахмат игра. Вот список тех, которые я нашел наиболее полезными:
Программирование шахмат Франсуа Доминика Лараме
Это статья, которая привела меня в компьютерные шахматы. Это отличный обзор того, как компьютеры играют в шахматы. Его чрезвычайно легко прочитать, и он познакомит вас со всеми терминами и ключевыми словами.
Вики по компьютерным шахматам , за последние несколько месяцев они действительно расширились. Это отличный ресурс для справочного материала.
https://www.chessprogramming.org/Main_Page
Louis Kessler '
Я присоединился к той же лиге, что и Пол Уикс (см. Выше), я тоже хочу написать шахматный движок для собственного обучения, единственным ограничением является моя повседневная работа (которая заключается в работе над скучными веб-сервисами и прочим ...) но это стоит боли.
Я решил создать его, используя поэтапный подход. Я почти закончил с многопользовательской частью, то есть (ЧЕЛОВЕК против ЧЕЛОВЕКА).
Как только я закончу с этим, я хотел бы включить уровень AI для поддержки игровой схемы (КОМПЬЮТЕР против ЧЕЛОВЕКА). Это та часть, которая меня больше всего беспокоит, я нашел здесь очень полезные подсказки. эта ветка, большое спасибо всем вам.
В настоящее время я хорошо разбираюсь в языке Java. В случае падения производительности я могу перенести его на C ++.