- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
class MainClass
{
public static char[,] titato = new char[3, 3] { { ' ', ' ', ' ' }, { ' ', ' ', ' ' }, { ' ', ' ', ' ' } };
static bool CheckWin(char s)
{
if ((titato[0, 0] == titato[1, 1] & titato[1, 1] == titato[2, 2] & titato[0, 0] != ' ') ||
(titato[0, 1] == titato[0, 2] & titato[0, 2] == titato[0, 0] & titato[0, 1] != ' ') ||
(titato[1, 1] == titato[1, 2] & titato[1, 2] == titato[1, 0] & titato[1, 1] != ' ') ||
(titato[2, 1] == titato[2, 2] & titato[2, 2] == titato[2, 0] & titato[2, 1] != ' ') ||
(titato[1, 0] == titato[2, 0] & titato[2, 0] == titato[0, 0] & titato[1, 0] != ' ') ||
(titato[1, 1] == titato[2, 1] & titato[2, 1] == titato[0, 1] & titato[1, 1] != ' ') ||
(titato[1, 2] == titato[2, 2] & titato[2, 2] == titato[0, 2] & titato[1, 2] != ' ') ||
(titato[2, 0] == titato[1, 1] & titato[1, 1] == titato[0, 2] & titato[2, 0] != ' '))
{
return true;
}
return false;
}
public static void PrintTicTacToe(char s)
{
Console.Clear();
Console.Write(" ");
Console.BackgroundColor = ConsoleColor.White;
for (int i = 0; i < titato.GetLength(0); i++) {
Console.Write(" {0} ", i);
}
Console.WriteLine();
for (int i = 0; i < titato.GetLength(0); i++) {
Console.BackgroundColor = ConsoleColor.White;
Console.Write("{0}", i);
for (int j = 0; j < titato.GetLength(1); j++) {
Console.BackgroundColor = ConsoleColor.Black;
if (titato[i, j] == 'x') {
Console.ForegroundColor = ConsoleColor.Red;
}
else if (titato[i, j] == 'o') {
Console.ForegroundColor = ConsoleColor.Green;
}
else {
Console.ForegroundColor = ConsoleColor.Black;
}
Console.Write(" {0} ", titato[i, j]);
}
Console.WriteLine();
}
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.Black;
if (CheckWin(s)) {
Console.WriteLine(s + " win!!!");
}
}
public static void PushXO(int i, int j, char s)
{
titato[i, j] = s;
}
public static void Main(string[] args)
{
bool symbolX = true;
char s = 'x';
int i = 0, j = 0;
do {
Console.WriteLine("TIC TAC TOE!");
PrintTicTacToe(s);
if (symbolX == true) {
Console.WriteLine("Ходит Х");
Console.WriteLine("Введите номер столбца а затем введите номер строки:");
s = 'x';
symbolX = false;
}
else {
Console.WriteLine("Ходит О");
Console.WriteLine("Введите номер столбца а затем введите номер строки:");
s = 'o';
symbolX = true;
}
i = int.Parse(Console.ReadLine());
j = int.Parse(Console.ReadLine());
PushXO(j, i, s);
// Console.ReadLine();
PrintTicTacToe(s);
} while (true);
}
сисято</ЕВП>
<кеп>Сокращение от Tic Tac Toe.</кеп>
как вы облажались
>new char[3, 3]
Да не смешите. Там пресловутый AI ограничивается парой вариантов - если начинаем мы - коварный ход в рандомный угол.
Если человек - то занимаем центр либо угол. А потом обычно начинается форсированный вариант.
Я еще на спектруме такое писал.
Эээ. В центр вообще-то. Но да, алгоритм там очень простой, и я его когда-то писал на бейсике ;)
> еще на спектруме
Вот спектрума у меня не было, к сожалению. Зато была dendy с клавиатурой и картридж с бейсиком... Веселые были времена... Магнитофон там не цеплялся, поэтому программы приходилось сохранять на листок бумаги, а потом вбивать заново. Но всякие змейки-тетрисы-пинг понги-морские бои-крестиконолики писать вполне получалось ;)
А еще там было прикольно исследовать ее GPU путем записи всяких чисел в его memory mapped регистры оператором POKE. Даже разобрался тогда, методом тыка, как юзать аппаратные спрайты, и аппаратный попиксельный скроллинг...
А писать небольшие программы было интересно, не все же батлтодсов задрачивать ;)
не знаю как сейчас учатся с телефонами, принтерами и прочим, но вот в универе я первый семестр второго курса без компа проучился - непросто было.
>и православная voodoo 2.
это которая отдельной платой шла в дополнение к видяхе?
ходят к соседям/друзьям по общаге
свой комп себе купил перед 4 курсом, как только на него заработал, а до этого только бомжеванием
Потом уже на 3-ем курсе я сподобился купить себе бук с адекватными на то время ресурсами.
Иногда оперативы не хватает при просмотре онлайн-видео.
А вы зажрались нахрен.
В универе, в моей группе у меня был самый дохлый комп. Да кстати, онлайн видео тоже тормозило.
Нафига выкидывать комп, если он не доставляет геморроя?
да на нем даже браузер с говнокодом будет тормозить
что за нищебродство программисту не заработать в питере голимых 20к рублей на сраный современный системник, притом, что насколько я помню, ты не живешь самостоятельно, не снимаешь и не кормишь себя сам
Так это что на самом деле?
Я всегда думал что это подшучивания про селерон тараса.
http://www.gamedev.ru/files/images/dsc00002.jpg
Там только название модели не видно, но это Compaq Armada E500. ТТХ можешь посмотреть в гугле.
Корпус опирается на стенку и держится на зажимах, но железо работает без перебоев, система не глючит, всё очень стабильно.
Тогда Тарасу не получится понтоваться таким железом.
Господа, откроем подписку. Это пожертвование очень важно.
Только онлайновое видео.
А ещё мэйлрушечка и прочие быдлосайты, сделанные кривожопыми быдловерстальщиками.
Вы представляете, сколько времени и сил может уйти на верстку под маргинальные браузеры и железо? А насколько ужасна будет такая верстка, полная хаков 20-летней давности? В реальном мире (tm) проще, быстрее, дешевле, надежнее и даже морально правильнее пожертвовать удобством одного Тараса ради удобства тысяч единиц офисного планктона.
Я не знаю насчет мейлру, но не стоит так пренебрежительно относиться к работе верстальщиков - это довольно сложный навык, основанный во многом на опыте, а не не формальных правилах, которые можно прочитать в учебниках.
Опера, например, и на старом железе не тормозит.
Нахер links, telnet рулит. Им и в IRC можно слазить, початиться. И сайты почитать.
А я подключаю осциллограф к витухе, и читаю сайт глядя на пачки импульсов.
(кстати, что на майлрушечке может забыть адекватный человек?)
Нахер витуху. Голуби рулят.
Под них даже рфц есть.
> Под них даже рфц есть.
Ладно бы просто рфц под голубей. А то ещё есть рфц под голубей с QoS.
на взмахи крылье бабочки
Но тогда умрет весь офисный планктон, а затем и вся экосистема интернетов.
А ведь сначала html изобрели для быстрой навигации по научным публикациям, в него даже изображения не хотели добавлять. Куда катится мир...
В гиппертекстовый апокалипсис.
Под словом "маргинальный" я подразумеваю буквально "крайний", "предельный", "экстремальный" - в данном случае по критерию производительности.
Разве это слово может употребляться в таком значении?
http://ru.wiktionary.org/wiki/%D0%BC%D0%B0%D1%80%D0%B3%D0%B8%D0%BD%D0% B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9
Основным ограничивающим фактором является не процессор. Будет работать не 100мс, а 200 или 500, тут даже селерона-450 хватит.
Тут проблема в другом. Своп снижает скорость любой системы до 386. Если отключить всё ненужное XP хавает немногим больше 100 метров памяти. Остается 90. На всё остальное.
Я бы поверил если б ты сказал что у тебя 512 метров и все летает. Но вот только 512 SDRAM стоит как 4Gb DDR3. И ограничивающим фактором является платформа.
Я бы поверил, если б ты писал код в vim или emacs.
Но когда в далеком 2004 я обзавелся 512 метрами, то и тогда VS2003 показалась мне тормозным говном.
Потому думаю это вброс. Ололо у меня на железе десятилетней давности все летает
Если ставить в специальном режиме, вполне можно поставить и штатно. На 32 не пробовали, на 96 мегабайтах поставилось просто шикарно.
Впрочем, если брать спецдистрибутивы, то можно многого добиться. Например, у меня семёрка летает на ноуте с VIA C7-M 754. Разве что памяти я туда насовал много.
для этого надо было вручную поубивать все "ненужные" svchost (те вообще все службы, чья смерть не приводила к ребуту системы), из 96М оставалось занято около 25 и фифа таки работала
обычная xp, не embedded
То понятно. Думаю каждый этим занимался. Много из этого в службах делается. Я вот тоже когда-то для игр прибивал всё, эксплолер первым делом кстати.
Мне удавалось в xp и 70 метров сделать.
>на машине с 32 мегабайтами оперативки
Запустить-то можно... Своп выставляется в 4 гига и даже выше. Или стоп. В xp правило вроде было. Емнип 3*RAM_SIZE. Не суть. Короче со свопом запустить можно.
>играл в фифу ~2003
И проги тоже можно.
НО ЗАЧЕМ?
128М в ноуте это всё, на что хватило тогда бабла, а поиграть-то хочется
это уже с остальных зарплат уже и на апгрейд памяти, и харда были деньги
Ключевое слово _тогда_.
Тем более что играть можно было и на 98-й.
А зачем такое кому-то сейчас?
У меня была пара батников для запуска игрушек в таком режиме - первый отключает все ненужные на время игры службы через sc, и подменяет shell в реестре на второй батник вместо explorer'а и ребутит комп. Второй - стартует игрушку, а при выходе из нее возвращал службы и shell на место, и делал ребут...
похоже на возможность в иксах выделять для игры отдельную систему.
С андроида открываешь?
>онлайн видео тоже тормозило
>онлайн видео
мда
Оно даже сейчас у многих, на гигагерцовых процессорах тормозит.
Всё зависит от кучи нюансов
а) разрешения / битрейта
б) декодера
в) hdd
Просто full hd надо брать или достаточно просто в декодере отключить асмоптимизации.
Историю с участием сумасшедшего фрика и клоуна всея рунета.
В общем дело было так.
Авторы самой православной имплементации энкодера x264 запилили патч для Hi10p. То бишь поддержку 10-битного цвета.
По поводу чего Dark Shikari, главный разработчик создал тред на форчане. Обилие бугурта переполнило тред и форумы.
Причиной тому парадокс, кодирование в Hi10p даже 8-битных источников давало неплохой профит сжатия и убирало бандинг - рипы стали выглядеть нормально. Секрет в повысившейся точности расчёта, а такой размер как 10 бит, никак удобно не помещается в регистры. Потому падение скорости кодинга/декодинга составило 2-3 раза.
Но самое страшное даже не в CPU. А в том что обычно видеокарта берет на себя львиную долю расчетов через DXVA. Так вот этот самый DXVA для Hi10p не работал. То есть процессору приходится полагаться только на свои силы.
Ну и многие анимешные релиз-группы начали штамповать рипы именно в Hi10p.
И тут на хабрапараше, в Hi10p треде отметился небывалым бугуртом некто Мицгол, ВНЕЗАПНО оказавшийся любителем китайских порномультиков.
Он кстати показателен тем что потратил кучу сил на реанимацию и откапывание давно подохших протоколов и технологий, но за столько лет не изобрел ничего нового и своего.
http://habrahabr.ru/post/129099/#comment_4273243
Если бы все были такими как Мицгол, то люди до сих пор сидели бы в пещерах. Зачем вкалывать, строить железные дороги, заводы и электростанции, если можно сидеть у огня в тёплой пещере?
ИЧСХ. Когда формат окажется на грани издыхания именно эти люди будут его защищать...
Господа, не в курсе, где достать дрова для Acorp Sprinter под ZX-Spectrum Дельта-С 128? Ну или на худой конец, для 3G-huawei.
У «Спектрума» есть подходящие интерфейсы, позволяющие подключить упомянутые модемы?
А вот с 3G будут траблы. Спектрум по идее не потянет частоты, нужные для USB. Те же Atmel, насколько помню, 12МГц кварц требуют для работы с USB.
P.S. Дрова на внешние AT модемы - самое настоящее виндоблядство :)
WinModem? Поясните мысль.
А вот на внешние модемы с RS-232 драйвер не нужен, т.к. максимум чем они отличаются - набором конфигурационных команд, которые один хрен вписывали в строку инициализации (что с дровами, что без). И только венда требует на такие модемы драйвера. Да и то не особо требует, можно вкатить "стандартный 56к модем" и почти всегда работает.
P.S. Впрочем дрова на монитор (не путать с цветовым профилем, который действительно необходим для всех LCD) это тоже очередное виндоблядство.
В том числе и на USB-модемы, ибо в Линухе все они работают либо с ACM, либо с usbserial.
А WinModem — это по сути звуковая карта?
По сути да. Емнип, там даже стояли те же самые чипы, что и в звуковухах.
А запись программ на листок бумаги освоить пришлось, ибо свободных дискет у нас не было...
Да ладно! Такое чудо было?! Жизнь прожита зря...
В угол - больше шансов выиграть.
В центр - только половина ответов противника выигрышных. 1/2.
А в угол - всё проигрышные, кроме центра. Только 1/8.
Если в центр, то ещё можно побарахтаться, ответный угол ещё не факт, что ничья.
Куда барахтаться? Там в основном форсированные варианты, за исключением ответа в противоположный угол.
>то всё решается за один ход - в ответ получаешь центр и всё.
Какой всё? Можно походить в противоположный угол. Наоборот начинать в центре - уныло.
Капец. Игра изучена за годы вдоль и поперек, я думал тут не о чем спорить и всем очевидно почему ход в угол рулит.
Вот именно. И ответ не самоочевиден.
> Какой всё?
Такое - игра становится ничьей за 1 ход, после которого всё самоочевидно.
>после которого всё самоочевидно.
Критерий самоочевидности? Без примера тут не обойтись.
В этом же и суть игры, что ты не обязан ходить куда-либо.
Я в школе только в углу и начинал, и постоянно выигрывал. После чего пришел к выводу что некоторые индивиды неспособны к обучению в принципе.
После того как сливает десять раз, и делает ничью в центре, всё равно продолжает ходить в углы.
Потому, что тогда противник всегда выигрывает. Конечно, если он играет не в первый раз, и не необучаемый идиот ;)
При первом ходе в центр же все зависит от противника - либо он сводит игру в ничью (если он опытен), либо он проигрывает (если он нуп). Шансов на победу у него тупо нет.
> В угол - больше шансов выиграть.
Ага. Если противник ходит рандомом. В случае если он не рандомщик - шанс выиграть в точности равен нулю.
Вот например простой алгоритм(игрок: x/y):
x : 3/3
0: 2/2 (занимает центр)
x: 1/1
0: 3/1(невнимательность)
x: 1/3(роковой ход, противник в любом случае проигрывает)
А вот если бы 0 сходил 2/1 или 3/2 вместо 3/1, то была бы ничья.
Но мы пишем AI. Пытаемся сделать его эффективным.
Теория вероятностей подсказывает, что ход после которого у противника единственно верный ничейный вариант, лучше чем ход после которого 4 ничейных варианта.
из
есть только 2 ничейных хода и 4 проигрышных
И имеется аж целых три класса (по симметрии) ходов.
Из
есть 4 ничейных хода и 2 проигрышных
при этом всего лишь два класса (по симметрии) ходов
Могут. Но тут это неуместно.
Если желаешь можешь написать простейшую тулзу и рекурсивно/методом Монте-Карло проверить центр или угол дает больше выигрышных концовок учитывая только вынужденные ответы противника. В остальных случаях он ходит рандомно.
http://govnokod.ru/13001#comment176954
>>> то всё решается за один ход - в ответ получаешь центр и всё.
Из
>>есть 4 ничейных хода и 2 проигрышных
Тем более вероятность 4 ничейных ходов надо умножать на 1/8, потому что к ним ведет единственный ход.
Не стоит рассматривать только конкретный вариант, надо смотреть всё дерево ходов в целом.
То есть.
1-й ход даёт нам 50% уверенность в выигрыше.
Второй ход отсекает от оставшихся 50% еще 2/3.
50+50*2/3=83.3%
Следовательно вероятность проиграть 16.666%=1/6.
При ходе в угол 1-й ход даёт нам сразу 7/8=87.5% вероятности.
Еще и остается некая вероятность от оставшейся 1/8.
Вероятность сведения вничью= 100%-83.3%
selffix
ничью я мысленно рассматривал, как стратегическую неудачу, то бишь проигрыш
> Могут. Но тут это неуместно.
Играем против болванчика что ли?
А что, нормальному человеку будет интересно играть в 3х3?
Но и до 10 лет он таки не болванчик.
В других случаях найти выигрышную комбинацию практически не возможно.
Какого хера? Когда он отвечает в центр - ничья. В противном случае проигрыш.
Давайте выигрышную комбинацию.
смешно другое - где все те кто начинал писать шахматы с интерфейса?
как это, если ты начнешь с угла, то аналогично, у соперника будут проигрышные только ходы не в угол/центр, т.е. те же 4/8 = 1/2
а, понял :)
СЮБОР? http://tinyurl.com/ct6wcv5
Так то ж не денди.
> Так то ж не денди.
Да денди она, денди. Плата совместимая на 146%, просто на дополнительный порт запаяли контроллер клавиатуры, и картридж приложили.
Про то что схемотехника там такая же как и в обычной денди... Ну если там идут все обычные картриджи, цепляются самые обычные джойстики да пистолеты... Да все там 1:1 было в моей приставке и обычной денди. Если на глаз - схема отличалась несколькими проводками, уходящими на контроллер клавы. Насчет сюбра не знаю - не видел ни разу его.
Неа ;( Давным-давно отдал племяннику...
> Играешься?
Поэтому играться приходится на эмуляторе с комповским геймпадом ;)
Тогда вы совершенно правы, это не может быть не денди, ибо видно глазами. Я просто не знал, что они существуют. Но вас уже заминусовали, к сожалению.
> отдал племяннику
Племянник взял, сохранил и созидает, или профейлил?
Тут не хабр, ничего страшного ;)
> Племянник взял, сохранил и созидает, или профейлил?
Да у него давно уже комп. А приставка наверное пылится где-нибудь на шкафу.
Изъять же!
Попиксельный скроллинг по горизонтали или по вертикали. В некоторых картриджах стояла дополнительная видеопамять, которой хватало на 4 страницы, и тогда скроллинг работал во все стороны.
Железная поддержка спрайтов, которых могло быть всего 64 (из-за этого огромные боссы, как правило, стояли на одноцветном фоне, т.к. рисовались в фоновой странице, а не из спрайтов).
Если интересно поподробнее: http://wiki.nesdev.com/w/index.php/PPU
При этом он работает в графическом режиме? А то текстовой режим на денди практически бесполезен.
Кстати, во времена дос текстовые знакогенераторы можно было использовать только в текстовом режиме. В графическом они ни как не работали.
Просто за счет попиксельного скроллинга и попиксельного позиционирования спрайтов это смотрится совсем неплохо, по сравнению с теми же CGA игрушками ;)
А графического режима как такового там и не было. Проц бы просто не справился с ним, да и памяти пришлось бы слишком много ставить.
И сколько таких символов-спрайтов можно было сделать?
это круто
Кстати у этого PPU есть бага (ну или фича), что больше 8 спрайтов на сканлайн он рисовать не умеет, и они начинают мерцать или пропадать...
Да до сих пор полно дендиподобных клонов. Недавно вот попадались на глаза приставки со встроенными играми (картриджи тоже понимают, но штук 100 там сразу вшито). Явно лицензионная версия ;)
Ну были. Но тут то прям в пзу приставки ;)
Нет. Если честно - даже не читал.
У меня тоже такая клава-денди была. Я исследовал на ней бейсик, так как неоткуда было взять команды. Ни интернета ни компа не было.
к слову настройки ос того картриджа же запоминались. да и некоторые другие программы
У моего не запоминались вообще. Все проги переписывал на бумажку ;) Да там и прог то по сути не было - бейсик, падающие буквы для тренировки клавиатуры, музыкальный редактор, да хрень с арифметикой.
Ну вот из доков читал в то время книжки по архитектуре древних 8 битных процов (не таких как дендивский 6502), журналы типа Радио, в которых описывались Радио-86РК и Специалист (оттуда и выкопал тот самый POKE), ну и книжки типа Кнута...
как связан кнут и охретектура?
Никак ;) Просто читал его в то время. Еще какую-то книжку по прологу тогда с другом раскуривали...
Может когда-нибудь он в роли статически типизированного функционально логического Mercury вернется?
В то время казалось очень круто. Ну а так - очень узкая область у пролога - переборные задачки с бектрекингом. И без интеграции с чем-то типа сишки - та еще жопа, ибо гуй на нем писать противопоказано, а без гуя класс задачек становится еще уже.
ну а насчет отсутствия интеграции с другими языками - правда.
была бы она и жил бы он до сих пор
Да вот не любые. Само собой, на любом тьюринг полном языке можно решить любую задачу. Вот только какие-то решаются красиво и элегантно. А какие-то выглядят как говно, как не крутись.
Вот и у пролога - сам бектрекинг юзать очень удобно. А императивный обвес для общения с юзером - лучше не вспоминать.
его нужно развивать и внедрять в макакомассы
Си - Могила.
Да. На 8-битных консолях была шикарная физика.
Помню как в Марио от удара сверхреалистично разлетались кирпичи.
а там, кстати, можно было развернуться. лазербейсик, суперкод...даже паскаль был
правильно прозреваешь