С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 22

Не хочет сравнивать значения двух переменных

03.10.2020, 11:29. Показов 2705. Ответов 6
Метки lua (Все метки)

Студворк — интернет-сервис помощи студентам
Не хочет сравнивать числа. math.random присваивает например число 1 переменной bet, я в команде cas ввожу два аргумента /cas 200 1. Т.е переменная count = 1 и переменная bet = 1, но при этом почему-то выполняется условие, где эти переменные неравны. В чем проблема?
Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function cmd_cas(arg)
        money, count = string.match (arg, "(.+) (%d)");
        --function cmd_balans
        --sampAddChatMessage("Ваш баланс: ", cash)
        --end
        math.randomseed( os.time() ); 
        bet = math.random(1, 2);
        if money == nil or money == "" then
            sampAddChatMessage("/cas [Сумма ставки] [Результат от 1 до 2]" , main_color);
            sampAddChatMessage(bet, main_color)
        elseif count ~= bet then 
                sampAddChatMessage("К сожалению, вы проиграли " .. money, main_color);
                sampAddChatMessage(bet .. count, main_color)
                cash = cash - money;
                sampAddChatMessage("Ваш баланс:" .. cash, main_color);
        elseif count == bet then 
                sampAddChatMessage("Поздравляю, вы выиграли " .. (money * 2), main_color); 
                cash = cash + money * 2;
                sampAddChatMessage("Ваш баланс:" .. cash, main_color);
 
        end
            
end
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2020, 11:29
Ответы с готовыми решениями:

Даны значения двух переменных a и b. Поменять местами значения этих переменных
1) Обмен значениями. Даны значения двух переменных a и b. Поменять местами значения этих переменных.

Не хочет сравнивать итераторы
Не перепрыгивает если begin > end. #include <iostream> #include <vector> using namespace::std; void...

Не хочет сравнивать числа Real с Integer
задачка простая. вот код var f,x,h:real; begin x:=-4; //начинаем от -4 h:=0.2; //шаг 0.2 while (x<=4) do begin ...

6
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
03.10.2020, 13:26
Лучший ответ Сообщение было отмечено schtolz как решение

Решение

Вы пытаетесь сравнить строку с числом.
После вот этой строки:
money, count = string.match (arg, "(.+) (%d)");
добавьте
money, count = tonumber(money), tonumber(count)

Добавлено через 1 час 6 минут
Кстати, параметры как-то тоже странно обрабатываются, если на входе строка "/cas 200 1", то сами подумайте, что куда распарсится...
0
Модератор
 Аватар для Curry
5153 / 3471 / 536
Регистрация: 01.06.2013
Сообщений: 7,530
Записей в блоге: 9
03.10.2020, 15:04
Кроме ошибки замеченной vantfiles :
строка 12 - bet .. count - получиться строка из слепленных чисел.
строка 16 - elseif лишний, хватит и else.

Отсюда вопрос к vantfiles, что рекомендуете из статических анализаторов lua кода?
https://github.com/mpeterv/luacheck 2 года не обновляется. linter в Атом-е не смотрел т.к. атом не навиться своей тормознутостью.
В Zero Brane Studio очень простой анализатор.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
03.10.2020, 15:53
Curry, рекомендую мозг. шутка.
Я действительно не пользуюсь в Луа ничем подобным, хотя, к примеру, для плюсов считаю такие анализаторы полезными - когда нужно быстренько прошерстить чужой код на блохастость.

Примерно 10-12 лет написания кода на ассемблере приучают к весьма высокому уровню самоконтроля за кодом. Это когда у вас 128 байт для данных, 1024 байта на код - а нужно, чтобы контроллер был и швец и жнец и на дуде игрец - а малейшая ошибка вводит его в режим полного молчания, про дебаг нет и речи...
0
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 22
03.10.2020, 18:21  [ТС]
Но мне же нужно разделить arg, который является аргументом функции cmd_cas на две переменные..
Я и использую для этого string.match
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
03.10.2020, 22:41
Цитата Сообщение от schtolz Посмотреть сообщение
мне же нужно разделить arg
все так, приведите пример вызова этой ф-ции... Иначе понять вашу цель сложно...
0
0 / 0 / 0
Регистрация: 30.04.2016
Сообщений: 22
07.10.2020, 23:18  [ТС]
все, разобрался, все было так, как вы сказали
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2020, 23:18
Помогаю со студенческими работами здесь

На странице два значения складываются, а больше двух не хочет... Что не так?
Ребята, делал тест отсюда, но почему-то не подсчитываются баллы...на отдельной странице два значения складываются, а больше двух не хочет,...

Сравнить значения двух переменных
Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то...

Вывод значения двух переменных
есть к примеру : шаблон функции (параметры) { что то делаеться и return двух переменных} вызов : cout<<шаблон...

Отказывается сравнивать две wastring переменных
wstring kek = L"KEKL"; wstring lol = L"KEK"; int result = strnicmp(kek,lol,2); No matching function for call to 'strnicmp' ...

Вывести значения двух переменных в MessageBox
Как вывести 2 переменные в MessageBox? TCHAR buf = {0}; _stprintf(buf, TEXT("%d"), (rc.right)/2); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru