игра - угадай число, на ассемблере gas x86_64

Модератор: Модераторы разделов

Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Такие вот мысли. В написании кода стараюсь обходиться локальными переменными, то-есть стеком за исключением строковых ссылочных на речёвки. В переписанной функции по переводу числа в строку передается одним параметром число без возвращаемого значения. Так как регистр 64 битный (8 байт) то максимальное беззнаковое число 2:64-1, а строка ограничивается уже 20 байтами. Поэтому из этой функции строка выводится сразу на печать, Но это не правильно. Я перепишу ее снова. Надо передавать вторым параметром адрес на 160 битную область памяти. Даже можно если эта память будет так же в стеке(или это нонсенс и надо все же выделять память, но не важно), в вызывающей функции. Тогда вызываемая функция конвертации сможет быть полностью модульной.
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Когда новая версия игры будет?
Там по цветам / секторам не обязательно делить. Можно диапазон до 76-ти уменьшить ; кол-во попыток две сделать - [чтобы с европейской / американской рулеткой плагиата не было] ; ввод имени ; ставки + счёт "прикрутить" .
Пока так. ...
=> В "кору ГМ" , мисс, записывайте! :)
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

igor@igor
Надо все в порядок привести, потом о нововведения думать. Я займусь рефакторингом, а вы подумайте о ребрендинге :)
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
13.03.2023 19:58
Надо все в порядок привести, потом о нововведения думать. Я займусь рефакторингом, а вы подумайте о ребрендинге :)
:)
Добавлено (20:45):
Точно! Маркетинговая стратегия такова:
разработана удвоенная игровая рулетка нового типа [на 76-ть чисел без разделения по цветам], с двумя попытками на выигрыш..!
...
Ура! Товарищи! :)
...
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Игровая рулетка нового типа, не круглой на плоскости, а шарообразной в пространстве должна быть..! Такая фишечка... :)
Добавлено (02:05):
Ваша игра, мисс, лото напоминает. Только диапазон с 1 по 90 нужно сделать.
Карточек 6-ть с 15-тью правильными ответами... (90 / 15 = 6) . Хотя можно так всё оставить.
Лото как и рулетка - "тупые" игры. Только в лото никакого азарта нет, а в рулетке ещё какой азарт! В одноруком - тоже азарт! Покер - интересно + азарт..!
...
[В лото и домино мне с 5-ти лет разрешали играть :) В карты нет(]
[Не в тему: подпольно играл конечно в карты на спички / сиги... :)]
...
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Вот ещё идея:
если две попытки оставить на 76-ть чисел, то подсказки, вообще, убрать нужно.
В рулетке ведь никаких подсказок нет...
...
Так, вообще, 5-ть подсказок больно "жирно". Даже, на 100 чисел. :)
...
Никакого азарта нет, при таком раскладе(((((((
...
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Как Вам идеи, мисс?
Скажите, пожалуйста.
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

git.org.ru не доступен. Зеркало - https://codeberg.org/nez/guess (как вовремя!)
В новом коммите сделала робота тестировкщка на expect. Написала пока в лоб длиннющую портянку. Разбираюсь с циклами, переменными и условиями. Если есть желание присоединяйтесь к написанию робота. Старую репу попробуйте не удалять, а записать новый адрес:

Код: Выделить всё

cd guess
make clean
git remote set-url origin https://codeberg.org/nez/guess.git
git pull origin master
make
./robot.exp
Если у "КОГО" не получится. Просто удалите старый репозиторий и создайте новый:

Код: Выделить всё

git clone https://codeberg.org/nez/guess.git
cd guess
make
./robot.exp
Ну и 10 пробежек:

Код: Выделить всё

for i in {1..10}; do ./robot.exp; done
Или так, с выводом результатов в статусной строке:

Код: Выделить всё

for i in {1..10}; do ./robot.exp; done |
    tee >(awk '/won/ {won++} /lose/ {lose++} END {print "Выиграли:", won, "Проиграли:", lose}')
Добавлено (15:13):
В expect, чтобы организовать работу в цикле надо из вывода программы выбрать число и значение less или more. Вот например как выглядит второй отлов вывода Угадайки (то что написано в лоб):

Код: Выделить всё

expect {
"50\r
less\r
enter your number:\r
"       {send  "25\r"}
"50\r
more\r
enter your number:\r
"       {send  "75\r"}
"You won!\r
"       {exit}
"You lose ~ game over\r
It was *\r
"       {exit}
}
В чем удалось разобраться. Создать счетчик, он будет отвечать в зависимости от номера попытки какой довесок нужен. Например, в первой попытке - счетчик 0 добвляем 50, во второй, счетчик 1 добавляем или отнимаем(more или less) - 25. При задействовании регулярок есть возможность отловить значения в специальные переменные(массив):

Код: Выделить всё

set count 0
...
expect {
-re "^(\[0-9]*)\r
(less)\r
enter your number:\r
"       {puts "$expect_out(1,string) $expect_out(2,string)"; incr count; send  "25\r"}
$expect_out(1,string) - число(строка) (без него в принципе можно обойтись, потому что мы его вводим, но на всякий случай)
$expect_out(2,string) - значение less или more. В одном блоке expect массив добавляется(лимит 9). В другом блоке - перезаписываются. И
count - счетчик
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

git.org.ru поднялся. А я уже третью налила...
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
14.03.2023 14:39
Если есть желание присоединяйтесь к написанию робота.
Да я "тормоз" - т.е. медлительный ((((((((((((((((
Пока я Ваш код "вкурю" - т.е. пойму(((((((((((((
Быстрее и проще Вам написать...
Тем более асму не освоил((((((((
Я понимаю, что от задач в программировании нужно отталкиваться, но...
Так что, лучше я пока в "болельщиках" - тестировщиках похожу + идеи по игре предлагать буду. [Правда очень интересно по коду. И желание есть]
...
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Все оказалось гораздо проще в цикле. Но было полезно. Обновила тостера robot.exp. 25 строчек кода осталось! Можно обновлять локальные репозитории.
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Ошибка:

Код: Выделить всё

bash: ./robot.exp: /usr/bin/expect: неверный интерпретатор: Нет такого файла или каталога
Как быть?
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Что-то мне все неймется. Уже который раз ветку для редактирования Makefile делаю. Сперва у меня при сборке помещались все объектные файлы вместе с исходниками в директории src. Я подумала что это не правильно и переделала. Теперь они у меня в корне проекта и это мне тоже не нравится. Может их вернуть к сырцам и удалять сразу после линковки? Тоже не дело. ?????????
Добавлено (19:53):
igor@igor писал:
14.03.2023 19:50
Как быть?
Надо установить пакет expect:

Код: Выделить всё

sudo apt install expect
Я тоже им первый раз пользуюсь и пришлось ставить из репозитория.
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
14.03.2023 19:53
Может их вернуть к сырцам и удалять сразу после линковки? Тоже не дело. ?????????
По логике - лучше к исходникам вернуть...
...
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3680
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

olecya писала:
14.03.2023 19:53
Сперва у меня при сборке помещались все объектные файлы вместе с исходниками в директории src. Я подумала что это не правильно и переделала.
Обычно для объектных файлов делают папку obj, там и складывают. А ещё более удобно сделать в корне проекта папку tmp, в ней папку obj и т.д. При переносе проекта на другую машину папку tmp просто не переносим. Заодно и в .gitignore её можно добавить - чтобы не коммитить вместе с исходиками. Проект чище будет.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
14.03.2023 19:53
Надо установить пакет expect:
Попробую.
...
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

Да, переделала все назад. Объектные файлы будут с сырцами, я все равно туда не лазю, запускаю vim и корня с помощью сохранки - файла сессии. Но пока изменения не сливаю, только закомитила в отдельной ветке в локальном репозитории.
Добавлено (20:11):
devilr
Да я думала об отдельной папке и положить туда какую нибудь заметку
Добавлено (20:14):
devilr писал:
14.03.2023 20:05
Заодно и в .gitignore её можно добавить - чтобы не коммитить вместе с исходиками.
У меня в гитигно добавлены *.o вместе с именем бинарника, на всякий пожарный, а пустую директорию гит не сохраняет
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Всё гуд! :)
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение olecya »

igor@igor
Ну тогда запускайте конвейер, а сами можете заварить чай:

Код: Выделить всё

for i in {1..10}; do ./robot.exp; done |
    tee >(awk '/won/ {won++} /lose/ {lose++} END {print "Выиграли:", won, "Проиграли:", lose}')
Скопируйте и вставьте к себе в терминал
Можно в конце умножать на 100 сербских данаров:

Код: Выделить всё

{print "Выиграли:", won, "Проиграли:", lose, "Итог:", won * 100 + lose * -100, "сербских динаров"}
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3680
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

olecya в моих проектах на Qt обычно 100500 cpp файлов (и столько же файлов obj получается при сборке). Ещё moc своих 100500 файлов нагенерит, до кучи. Так что, лучше весь мусор в одной папке.
Опять же, если всё это для обучения другого человека определённому ЯП - лучше сразу делать по нормальному. Имхо. :)
Последний раз редактировалось devilr 14.03.2023 20:45, всего редактировалось 1 раз.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

olecya писала:
14.03.2023 20:19
Ну тогда запускайте конвейер, а сами можете заварить чай:
for i in {1..10}; do ./robot.exp; done |
tee >(awk '/won/ {won++} /lose/ {lose++} END {print "Выиграли:", won, "Проиграли:", lose}')

Cкопировал и вставил в терминал... Довольно быстро выполнение происходит.
...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20936
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Bizdelnick »

devilr писал:
14.03.2023 20:05
Обычно для объектных файлов делают папку obj, там и складывают.
Ни разу такого не видел.
devilr писал:
14.03.2023 20:42
в моих проектах на Qt обычно 100500 cpp файлов (и столько же файлов obj получается при сборке).
А что, qmake не умеет out-of-source build?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3680
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

Bizdelnick писал:
14.03.2023 20:45
Ни разу такого не видел.
Тут на вкус и цвет. Часто эта папка называется build. Допустим, для проектов на AS.
Бывает, что делают её невидимой.
Bizdelnick писал:
14.03.2023 20:45
А что, qmake не умеет out-of-source build?
Умеет, если "птичку отметишь". Но, лично я предпочитаю отдельный, свой каталог. Обычно в /dev/shm
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

А дальше?
Смысл мне конвейер гонять со скриптом robot ?
Что-то сложности в игре почти не прибавилось(
...
Добавлено (21:25):
Или я "туплю" как всегда?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20936
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Bizdelnick »

devilr писал:
14.03.2023 20:59
Тут на вкус и цвет.
Ну я довольно много чего видел, чтобы усомниться, что такую практику можно назвать обычной.
Добавлено (22:16):
devilr писал:
14.03.2023 20:59
для проектов на AS
ActionScript?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3680
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

Bizdelnick писал:
14.03.2023 22:14
ActionScript?
Android Studio
Добавлено (22:19):
Bizdelnick писал:
14.03.2023 22:14
Ну я довольно много чего видел, чтобы усомниться, что такую практику можно назвать обычной.
Обычная - штука довольно субъективная. Для Вас - необычная. Для меня - обычная. И частая. Можете считать это параллельными вселенными. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20936
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Bizdelnick »

devilr писал:
14.03.2023 22:17
Android Studio
А. Предлог «на» совсем не позволяет подумать, что речь о IDE.
Добавлено (22:21):
devilr писал:
14.03.2023 22:17
Можете считать это параллельными вселенными.
Да, я догадался, что «птички» в qmake — это что-то из параллельной вселенной. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3680
ОС: Mandriva => Gentoo (~amd64)

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение devilr »

Bizdelnick писал:
14.03.2023 22:19
А. Предлог «на» совсем не позволяет подумать, что речь о IDE.
Русский - не мой родной. К тому же, каждый понимает в меру собственной испорченности. :)
Добавлено (22:24):
Bizdelnick писал:
14.03.2023 22:19
Да, я догадался, что «птички» в qmake — это что-то из параллельной вселенной. ☺
Так, "out-of-source build" - это "фишка" IDE, а не инструментов типа qmake. К тому же, опять же, на вкус и цвет все фломастеры разные - кто-то собирает из консоли, а кому то нравится мышкой елозить. Каждому - своё.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
igor@igor
Сообщения: 1381
ОС: Debian GNU/Linux, wheezy-amd64

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение igor@igor »

Инструкция + скрипт, который "допилил" :)

Код: Выделить всё

cd guess
./g_13.bash

#!/bin/bash
#Ver. 0. 20230315 Скрипт g_13.bash - ГСЧ для выигрыша / проигрыша.

for i in {1..76}; do ./robot.exp; done |
    tee >(awk '/won/ {won++} /lose/ {lose++} END {print "Выиграли:", won, "Проиграли:", lose, "Итог:", won * 100 + lose * -100, "сербских динаров"}')

#Ver. 0. 20230315 Скрипт g_13.bash - ГСЧ для выигрыша / проигрыша.

Добавлено (01:06):
Скрипт отдельно:

Код: Выделить всё

#!/bin/bash
#Ver. 0. 20230315 Скрипт g_13.bash - ГСЧ для выигрыша / проигрыша.

for i in {1..76}; do ./robot.exp; done |
    tee >(awk '/won/ {won++} /lose/ {lose++} END {print "Выиграли:", won, "Проиграли:", lose, "Итог:", won * 100 + lose * -100, "сербских динаров"}')

#Ver. 0. 20230315 Скрипт g_13.bash - ГСЧ для выигрыша / проигрыша.
Последний раз редактировалось igor@igor 15.03.2023 01:09, всего редактировалось 1 раз.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20936
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: игра - угадай число, на ассемблере gas x86_64

Сообщение Bizdelnick »

devilr писал:
14.03.2023 22:21
"out-of-source build" - это "фишка" IDE, а не инструментов типа qmake.
В смысле? Всё, что делает для этого IDE, это запускает систему сборки (qmake в данном случае) не в каталоге с исходниками, а в другом. Способен ли сборщик сделать в таком случае что-то разумное, уже от него зависит.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: