2014-11-20 5 views
0

어떻게 경우를 검사 한 플래그를 만드나요? 또한 어떻게 끝에서 올바르게 표시하고 끝에서 규칙을 따라야하는 지 확인하십시오. 나는 "output_msg ="이 규칙을 따라야합니다. "; output_msg는 알려지지 않은 변수가됩니다. 누군가 제발 도와주세요.게임 메이커 암호 검증

{ 
    var is_valid_length, is_valid_letters, is_valid_digits, is_valid_at, output_msg; 
    is_valid_length = false; 
    is_valid_letters = false; 
    is_valid_digits = false; 
    is_valid_at = false; 
    var user; 
    var length,char; 
    length = 0; 
    char = 0; 

    do{ 
    output_msg ="You must follow these rules"; 
    user=get_string("Enter password:","") 
    if (string_length(user)>=6 && string_length(user)<=10){ 
    is_valid_length = true; 
    } 
    else{ 
    output_msg =("Password is not 5-10 characters long"); 
    } 


    if (string_length(string_digits(user))>=1){ 
    is_valid_digits = true; 
    } 
    else{ 
    output_msg +=("#Password Does not contain 1 digit"); 
    } 



    if (string_length(string_letters(user))>=1){ 
    is_valid_letters = true; 
    } 
    else{ 
    output_msg +=("#Password Does not contain 1 letter"); 
    } 



    if (string_count('@',user)>=1){ 
    is_valid_at=true; 
    } 
    else{ 
    output_msg +=("#Password Does not contain @"); 
    } 

    show_message(output_msg); 

    if (is_valid_length && is_valid_letters && is_valid_digits && is_valid_at ==true) { 
    show_message("correct"); 

    } 
    } 

    until 
    is_valid_length = true; 
    is_valid_letters = true; 
    is_valid_digits = true; 
    is_valid_at = true; 
    } 

답변

0

글쎄, 나는 당신의 질문에 대답 할 수있다. 당신의 부울을 모두 평가하는 하나 개의 표현을 만들기 위해 당신이 할 것 :

if (is_valid_length && is_valid_letters){ 
    if (is_valid_digits && is_valid_at){ 
     show_message("correct"); 
    } 
} 

나는 게임 메이커는 하나 이상의 & & 또는 || 수 있습니다 생각하지 않습니다. == 참 부분 만 입력하면되기 때문에 == 참 부분은 필요하지 않습니다. 다음과 같이하면 :

if (!is_valid_length){} 

! symbol은 그것이 사실이 아닌지를 평가하는 것입니다.

두 번째 질문에 대해서는 output_msg 선언을 삭제했기 때문에 output_msg가 알려지지 않은 변수 인 이유가 있습니다.

if (is_valid_length && is_valid_letters){ 
    if (is_valid_digits && is_valid_at){ 
     show_message("correct"); 
    } 
} 
else show_message(output_msg); 

내가 이런 식으로 전체 블록을 할 것입니다 :

var output_msg; 
var is_valid_length = false; 
var is_valid_letters = false; 
var is_valid_digits = false; 
var is_valid_at = false; 
var all_true = false; //variable for all true 
var user; 
var length,char; 
length = 0; 
char = 0; 

do{ 
output_msg ="You must follow these rules"; 
user=get_string("Enter password:","") 
if (string_length(user)>=6 && string_length(user)<=10){ 
is_valid_length = true; 
} 
else{ 
output_msg +=("#Password is not 5-10 characters long"); 
is_valid_length = false; //resetting if they get it wrong second try 
} 


if (string_length(string_digits(user))>=1){ 
is_valid_digits = true; 
} 
else{ 
output_msg +=("#Password Does not contain 1 digit"); 
is_valid_digits = false; 
} 



if (string_length(string_letters(user))>=1){ 
is_valid_letters = true; 
} 
else{ 
output_msg +=("#Password Does not contain 1 letter"); 
is_valid_letters = false; 
} 



if (string_count('@',user)>=1){ 
is_valid_at=true; 
} 
else{ 
output_msg +=("#Password Does not contain @"); 
is_valid_at=false; 
} 

if (is_valid_length && is_valid_letters){ 
    if (is_valid_digits && is_valid_at){ 
     show_message("correct"); 
     all_true = true; //exits out of do loop 
    } 
} 
else { 
    show_message(output_msg); 
    all_true = false; 

} 
} 
until all_true == true; 

희망

그것은 단지 "수정"이처럼 4 부울 검사의 말에 else가 넣어 표시로 만들려면 도움이

+0

도움을 주셔서 감사합니다. – user3215990

관련 문제