Last active
March 17, 2018 12:52
-
-
Save ChillMouse/cc6b5175042badbc0e17fce3f7d90eab to your computer and use it in GitHub Desktop.
ScrtiptPascal_Mining.exe / Имитация майнинга на Pascal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
program MineVision; | |
uses crt; // Подключение библиотеки для спец. команд | |
var hash, blockchain, timer, wallet: integer; // П Р М Н Ы | |
totalTimer: BigInteger; // Е Е Е Н Е | |
begin // Начало | |
timer := 0; /// Счётчик попыток, именуемый таймером, потому что я учу немецкий язык -_- | |
wallet := 0; /// Якобы кошелёк | |
hash := 0; /// Обнуление главной переменной | |
blockchain := random(99999999); /// Присвоение значения второй главной переменной | |
repeat /// Нужен для повтора действий, отличается неограниченностью от FOR | |
blockchain := random(99999999); /// Присвоение нового значения для главной переменной | |
while hash <> blockchain do /// Самый главный алгоритм | |
begin | |
hash := random(99999999); /// Угадывает значение переменной "blockchain" | |
totalTimer := totalTimer + 1; /// Увеличивает общее кол-во попыток на единицу | |
timer := timer + 1; /// увеличивает локальный счётчик попыток на единицу | |
if hash = blockchain /// Проверяет, равны ли главные переменные | |
then | |
begin | |
clrscr; /// Чистит консоль | |
if timer >= 10000000 /// Система наград | |
then wallet := wallet + 5 /// Если попыток больше 10 млн, то + 5 BTC | |
else | |
begin | |
if (timer < 10000000) and (timer >= 2000000) /// Если попыток между 2 млн и 10 млн, то + 3 BTC | |
then wallet := wallet + 3 | |
else wallet := wallet + 1; /// Меньше 2 млн, + 1 BTC | |
end; // Конец алгоритма "ТОГДА", строка 31 | |
println('Вы соединены с сервером: RussiaHostMining'); /// Полная информация о действиях программы | |
println('Состояние вашего кошелька: ',wallet,' BTC'); | |
println('Ваша видеокарта совершила всего ',totalTimer,' отправлений'); | |
println('Попыток потрачено ради результата: ',timer); | |
timer := 0; /// Обнуление локального счётчика | |
end; // Конец алгоритма "ТОГДА", строка 26 | |
end; // Конец цикла WHILE | |
until 0 > 1 /// Без этого никак, т.к. иного способа я не знаю, как зациклить выполнение, относится к REPEAT, строка 16 | |
end. // Конец программы |
Нагрузка на ЦП снижена до 1%.
Система наград:
Теперь при выполнении 200к команд выдаётся 3 BTC, при 100к - 2 BTC, менее чем 100к команд - 1 BTC.
Производительность увеличена в 35 раз.
sleep(7000) ---> sleep(200)
Рефакторинг кода.
Всего 45 строк.
Нет меток и оператора "GOTO".
Стёр свой ломаный английский, теперь всё на русском.
Отсутствует команда "SLEEP".
Система наград переведена в стадию разработки xD
Система наград:
от 10 млн ---> 5 BTC
2 млн < timer < 10 млн ---> 3 BTC
<=2 млн ---> 1 BTC
45 ---> 59 строк
Убран оператор FOR ---> REPEAT
Появляется костыль, который выглядит так: " until 0 > 1 "
59 ---> 57 строк
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Оптимизация скорости работы командной строки за счёт удаления вывода четырёх переменных.
Вывод только факта получения валюты и числа, которое равно номеру имитируемого блокчейна.
TTC ---> BTC
Смена цвета строки: Red ---> Yellow