ВС
Виктор Снигур

Помогите упростить код LUA (говорят он не отличается от С) посмотрите плиз.

(Это игровой язык программирования LUA сайт справки: maurits точка tv)
Даётся условие: if self.RoundEnded then, когда оно наступает
то создаётсЯ, или увеличивается цифра в файле с сыграными играми: total.txt
выйгрынами: win.txt
проиграными: loss.txt

Чтобы не создавать для учёта: сыгранных игр, выйгрышей и проигрышей три файла,
Ведь это можно сделать в одном.
Пожалуйста подскажите как.

тоесть в единый файл писать:
01-29-13_10_4_6
знак_ будет к примеру разделителем.
10 это количество отыгранных игр
4 количество выйгранных раундов
6 это количество проигранных раундов.

if self.RoundEnded then

if file.Exists("total.txt", "DATA") then
local counttotal = file.Read("total.txt")
counttotal= counttotal + 1
file.Write("total.txt", counttotal)
else
file.Write("total.txt", "1")
end
if team.NumPlayers(TEAM_HUMAN) >= 1 then
if file.Exists("win.txt", "DATA") then
local counwin = file.Read("win.txt")
counwin = counwin + 1
file.Write("win.txt", counwin)
else
file.Write("win.txt", "1")
end
else
if file.Exists("loss.txt", "DATA") then
local countloss = file.Read("loss.txt")
countloss = countloss + 1
file.Write("loss.txt", countloss)
else
file.Write("loss.txt", "1")
end
end

01-29-13 это текущая дата.

Или просто напишите как в одном файле учитывать три переменных с разделителем "- "

10_4_6

Спасибо! ээто как раз что я хотел услышать!

я написал код (ниже) :
но он не работоспособен!

if file.Exists("all.txt", "DATA") then
local peremall{} = file.Read("all.txt") --Извлекаем файл в массив
counttotal = peremall[0] -- первый элемент массива
counwin = peremall[1] -- второй элемент массива
countloss = peremall[2] -- третий элемент массива

if self.RoundEnded then -- если наступил конец раунда то
counttotal = counttotal + 1 --увеличим общий счётчик количества сыгранных игр на единицу
if team.NumPlayers(TEAM_HUMAN) >= 1 then --Если в команде людей есть игроки
counwin = counwin + 1 --увеличим счётчик выйгрышей на единицу
else --иначе
countloss = countloss + 1 --увеличим счётчик проигрышей на единицу
end
local itog = {} --создаём новый массив
itog[0] = counttotal
itog[1] = counwin
itog[2] = countloss
file.Write("all.txt", %m-%d-%y .. itog{} .. "\n") --записываем данные в файл
end
else --иначе
local itog = {} --создаём новый массив
itog[0] = 2
itog[1] = 1
itog[2] = 1
file.Write("all.txt", %m-%d-%y .. itog{} .. "\n")
end

ПОСМОТРИТЕ ПОЖАЛУЙСТА ПРОФЕСЧСИОНАЛЬНЫМ ВЗГЛЯДОМ
это я дурь написал? или просто ошибка где-то закралась?

массив можно в файл писать?

ИМ
Ирина Марчук

Функции lua для работы с файлами: [ссылка заблокирована по решению администрации проекта]. lua. ru/doc/5.7.html

> говорят он не отличается от С
Говорят, в Москве кур доят. Вы бы, прежде чем писать такое, взглянули на Сишный код: http://otvet.mail.ru/question/86575833

> Или просто напишите как в одном файле учитывать три переменных с разделителем "- "
Это бред и поток сознания. Изучите основы программирования.

В вашем скрипте вообще используются нестандартные функции ввода/вывода.
Можно объединить все переменные в строку и записать в файл:

s = data .. '_' .. counttotal .. '_' .. counwin .. '_' .. countloss
file.Write("data.txt", s)

В качестве разделителя лучше использовать пробел, а не символ подчеркивания.

Для обратного преобразования строки в три переменные нужно написать функцию split: http://lua-users.org/wiki/SplitJoin

> это я дурь написал? или просто ошибка где-то закралась?
Да.

> массив можно в файл писать?
В цикле, поэлементно.

Похожие вопросы
Помогите плиз написать два кода) С++
Помогите плиз написать два кода, С++
помогите упростить код программы на delphi 7
язык программирования LUA синтаксис как у си++ подскажите плиз
как в Lua разделить строку на символы
Блин помогите плиз почему код не работает
дайте код на прогу sncrack плиз плиз плиз плиз плиз. дайте код на прогу sncrack
помогите плиз с кодом
плиз помогите с кодом (
Где можно получить курс по Lua для Roblox?