2015-02-03 3 views
-3

다섯 가지 특성을 가져 와서 저장하는 간단한 캐릭터 디자인 프로그램을 작성해야하는 과제가 있습니다. 캐릭터 생성이 끝나면 프로그램은 사용자가 캐릭터를 보거나 편집하거나 생성하기를 원하는지 물어볼 필요가 있습니다.LUA의 캐릭터 작성 프로그램

이제 데이터 구조와 문자 저장 및로드 기능을 만들어야하는데 많은 도움이 필요합니다. 프로그래밍에 대한 지식이 거의 없습니다.

-- Default Character Class 

Character = {power = 0, speed = 0, defense = 0, intelligence = 0, stamina = 0} 


function Character:create (n) 
    n = n or {} 
    setmetatable(n, self) 
    self.__index = self 
    return n 
end 


-- Function to take user input 
function input() 
    print "please enter the power level:" 
    local Power = io.read() 
    print "please enter the speed level:" 
    local Speed = io.read() 
    print "please enter the defense level:" 
    local Defense = io.read() 
    print "please enter the intellegence level:" 
    local intelligence = io.read() 
    print "please enter the Stamina level:" 
    local Stamina = io.read() 
end 

-- main loop 
function MainMenu() 
    selection = {"1", "2", "3" or "4"} 
    while selection ~= "1","2", "3" or "4" 
     print "1. would you like to edit your character?" 
     print "2. would you like to create a new character?" 
     print "3. would you like to view a character? " 
     print "4. would you like to exit the screen?" 

     if selection == "1" then -- I was uncertain on how to call an already made character or data so I used this method to just recreate a character 
      print (character:input) 
     elseif selection == "2" then 
      print (character:input) 
     elseif selection == "3" then 
      print (last.character, input()) -- was also unsure on how to code this portion as well. 
     elseif selection == "4" then 
      io.exit() 
     else selection is ~= selection() 
     print "please select from the number below 1-4" 

     end 
    end 
end 

update() 
menu() 

답변

2

정확히 여기에 질문이 없습니다. 내가 보는 것은 "제발 숙제 해주세요." StackOverflow는 다른 사람들이 당신을 위해 일하는 곳이 아니라, 특정 질문에 대한 도움을 요청하는 곳입니다.

말했다되고 그건

, 나는 몇 가지 작은 문제를 볼 수 있습니까 :

selection = {"1", "2", "3" or "4"} 

루아는 'truthy'언어입니다. 즉, nil이 아닌 값은 false와 같습니다. 다른 것은 사실입니다. 따라서 "3" or "4"이라고 말하면 or은 부울 값이 단락 된 연산자입니다. 즉 true 또는 false를 나타냅니다. 첫 번째 값이 true이면 다른 피연산자를 검사하지 않습니다. "3"은 거짓이 아니므로 사실이어야합니다. 따라서 실제로는 selection{"1", "2", "3"}을 포함하는 목록입니다.

다음,

while selection ~= "1","2", "3" or "4" 

는이 같은 다중 비교를 수행 할 수 없습니다. while 문은 조건이 충족되는 한 코드 블록을 반복합니다. 그래서, 당신이 말하고자하는 것은 while selection >= 1 and selection <= 4과 같은 것입니다.

다음으로,

else selection is ~= selection() 

is를 제거합니다. 또한 선택은 함수가 아니며 선택은 변수입니다. 루아에서는 별다른 차이가 없지만이 특별한 경우에는 선택 항목을 변수로 사용합니다. 이것이 내가 느슨하고 동적으로 타이핑 한 언어를 싫어하는 이유입니다. 어떤 종류의 데이터를 처리하고 있는지 추적하기가 너무 쉽습니다.

여기에는 여러 가지 다른 문제가 있습니다. 강사에게 이메일을 보내고이 도움을 요청하십시오. 당신이 놓친 것처럼 보이는 많은 것들이 있습니다. 제가 대학에 다닐 때 제 교수는 다음 날 당신이 그것에 관해 이야기한다면 과제에 대한 마감 시간을 놓치지 않고서는 거의 문제가 없었습니다. 어쩌면 교수님도 같은 방법 일 수 있습니다.

+0

'0'은 루아에서 거짓이 아닙니다. – greatwolf

+0

그래서 그것은 보인다. 나는 그 소식을 바로 잡았다. – StephenS

+0

나는 내가 언어에 익숙하지 않고 혼자서 공부할 시간이 거의 없기 때문에 나는이 과정을 통해 나를 도울 누군가를 진실되게 찾고 있다는 것을 알게 된 것을 사과한다. 그러나 모든 도움에 감사드립니다. 대단히 감사합니다. –