Допустим, вероятность случайных коллизий настолько низка, что можно не беспокоиться об этом. А как IPFS защищается от флуда специально созданными мусорными файлами, в которых подобран хэш какого-нибудь полезного (или неугодного кому-то) файла?
Это официальная версия, EA купили лицензию, а таких как я значок ® не спасёт. Да и по требованиям черно-белая игра не пройдет как Тетрис. Мало купить лицензию — надо ещё и соответствовать требованиям, таким как: обязательное использование музыки Коробейники, особый логотип, конкретный цвет для каждой фигурки, подсвечивание места, куда упадёт фигурка (призрачная фигурка) и др.
Уже есть async/await, осталось перестать вязать его с коллбеками и промисами, подогнать API на замену всяким XMLHttpRequest ну и добавить то, чего не хватает для сложных требований типа параллельно выполнить и подождать выполнения всех:
примеры
var valueFromAnySource = race AsyncHttp.get(url1);
valueFromAnySource = race AsyncHttp.get(url2);
finish;
console.log(valueFromAnySource);
var part1 = fork AsyncHttp.request(...);
var part2 = fork AsyncHttp.request(...);
join;
console.log(part1 + part2)
// если нужно соединить тексты из списка URL в изначальном порядке
// решение без распараллеливания:
var text = ''
for (var url in urls) {
text += await AsyncHttp.get(url)
}
console.log(text);
// решение с распараллеливанием:
var texts = []
var index = 0;
for (var url in urls) {
texts[index++] = fork AsyncHttp.get(url)
}
join;
console.log(texts.join(''));
Еще пример:
// в обычном мире:
var p1 = new Promise(
function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://google.com');
xhr.send();
xhr.onload = function () {
resolve(this.response);
}
xhr.onerror = function() {
reject(this.statusText);
}
}
);
p1.then(
function(result) {
console.log(result);
})
.catch(
function(err) {
console.log('error:' + err);
});
// вымышленный мир без промисов и коллбеков:
try {
var response = await AsyncHttp.request('GET', 'http://google.com');
console.log(response.statusCode);
console.log(response.content);
} catch (err) {
console.log('error:' + err);
}
Хотя только что посмотрел на настоящем Brick Game боковое движение тоже не останавливается после падения фигурки и когда играл на большой скорости при большой заполненности это помогало вовремя забрасывать фигурки к стенкам, так что не буду менять.
Более организованные коллбеки, но всё еще коллбеки.
Вот это вот «Promise.» хорошо бы убрать отовсюду вообще и добавлять по мере надобности новые ключевые слова например fork/join(All)
var a = fork getA(); // выполнение продолжается без ожидания
var b = fork getB();
join; // выполнение приостанавливается пока все fork в этом scope не завершатся
С Unity это легко, только у меня нет Apple Developer аккаунта и выкладывать особо нечего кроме этого приложения, платить $99/год и рисковать словить бан за тетрис… подумаю.
Как по мне, то промисы не сильно лучше чем тот же callback hell. Вот await — другое дело. Интересно как с await-ами организовать такое:
Может возникнуть ситуация, когда нам понадобится выполнить несколько промисов параллельно, и продолжать алгоритм только после того, как все промисы будут выполнены.
Если этот WebView позволял заходить на произвольные сайты, могли заблокировать за это. Тут уже «на кого попадёшь», не один ведь человек там блокировками занимается.
В своих письмах юристы The Tetris Company угрожали непосредственно компании Google, а не разработчикам. Убеждён, что Google просто прикрывают свою спину (причем делают это стыдливо: Google постеснялся напрямую сказать мне, что «это из-за тетриса», мне пришлось буквально требовать объяснений) и ни о какой дипломатии тут речи и нет.
Бороться бесполезно, согласен, но о подобных случаях (например, о той блокировке 35 тетрис-игр, где некоторые игры ни в названии ни в описании слова «tetris» не содержали) должны знать. Я ожидаю, что люди из свободолюбивой категории узнав это будут возмущены как и я и в будущем станут обращать больше внимания на альтернативные площадки распространения Android-приложений.
Да, и это, как я понял, чисто правила Google Play, а не какие-то там законы. Таким образом Google страхуется от нападок юристов алчных компаний, которые любят потрясать всяческими DMCA.
Меня не обвиняли в Trademark infringement. Меня обвинили в недостоверных/обманчивых сведениях об игре. Но у меня ведь действительно в эмуляторе присутствует игра Тетрис. То, что автор Тетриса никак не успокоится и требует называть Тетрисом только некоторые игры, авторы которых заплатили ему (его компании) денег за лицензию и то, что Google повинуется этому, прессуя даже бесплатные игры — считаю маразмом.
Я не буду придумывать никаких block game, falling blocks, если мне нельзя писать какое-то слово, то это цензура и пусть там будет CENSORED. К слову, были случаи блокировок «тетрисов», названных по-другому и без использования слова «тетрис» в описании, причем на тот момент официальный Тетрис для смартфонов был платным и скверным.
После проверки различных источников выяснилось, что патента на сам игровой процесс не существует, и вопрос правомерности удаления довольно спорный. Но даже если что-то подобное и существовало, то оно потеряло силу спустя 20 лет после регистрации — еще в 2005 году.
Решил, что она того не стоит. Меня, например, любая полноэкранная реклама раздражает (особенно видео), баннеры в игре, где нужно нажимать виртуальные кнопки и не отвлекаться ни на что кроме экранчика — как-то подло и цинично, а сделать совсем редкие полноэкранные показы, чтобы не раздражало — так и доход будет смешной, в общем, не вижу смысла. Еще бывает неприятно, когда в моём приложении рекламируется всяческий шлак нацеленный на выпрашивание у игрока денег.
Еще пример:
Вот это вот «Promise.» хорошо бы убрать отовсюду вообще и добавлять по мере надобности новые ключевые слова например fork/join(All)
Какой-нибудь особый параллельный for?
R.I.P. «Ну, Погоди!» или повесть о копирайте
Бороться бесполезно, согласен, но о подобных случаях (например, о той блокировке 35 тетрис-игр, где некоторые игры ни в названии ни в описании слова «tetris» не содержали) должны знать. Я ожидаю, что люди из свободолюбивой категории узнав это будут возмущены как и я и в будущем станут обращать больше внимания на альтернативные площадки распространения Android-приложений.
Я не буду придумывать никаких block game, falling blocks, если мне нельзя писать какое-то слово, то это цензура и пусть там будет CENSORED. К слову, были случаи блокировок «тетрисов», названных по-другому и без использования слова «тетрис» в описании, причем на тот момент официальный Тетрис для смартфонов был платным и скверным.
Подробнее