Loops 游戏制作者密码验证器
如何制作一个标志来检查: 有效长度、有效字母、有效数字、有效位置 都是真的吗?另外,我如何使它只显示正确的结尾,而不是你必须遵守规则的结尾。如果我取put output_msg=您必须遵守这些规则;然后,output_msg变为未知变量。请帮帮我,谢谢Loops 游戏制作者密码验证器,loops,input,passwords,alert,gml,Loops,Input,Passwords,Alert,Gml,如何制作一个标志来检查: 有效长度、有效字母、有效数字、有效位置 都是真的吗?另外,我如何使它只显示正确的结尾,而不是你必须遵守规则的结尾。如果我取put output_msg=您必须遵守这些规则;然后,output_msg变为未知变量。请帮帮我,谢谢 { var is_valid_length, is_valid_letters, is_valid_digits, is_valid_at, output_msg; is_valid_length = false; is_
{
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;
}
我可以回答你的部分问题。要使一个表达式计算所有布尔值,请执行以下操作:
if (is_valid_length && is_valid_letters){
if (is_valid_digits && is_valid_at){
show_message("correct");
}
}
我不认为game maker允许超过一个&&或| |。您不需要==true部分,因为只需输入它们即可对其进行计算。如果您做了如下操作:
if (!is_valid_length){}
这个!符号正在求值,以查看它是否为真
至于第二个问题,output_msg是未知变量的原因是您删除了output_msg的声明
要使其仅显示正确,请在4个布尔检查的末尾添加一个else,如下所示:
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;
我会这样做整个街区:
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;
希望这有帮助非常感谢您的帮助