Приключенческая игра на Javascript - ПОМОГИТЕ!!!

  • Автор темы Yura3
  • 96
  • Обновлено
  • 18, May 2024
  • #1
Я новичок в Javascript и мне нравится узнавать о нем больше.

У меня возникают трудности с оператором if/else, когда пользователь дает определенные ответы.

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

Если вы ответите на подсказки: Возраст не имеет значения, «Да», «Нет или Да», возьмите деньги.

он по-прежнему показывает подсказки, если вы ответите «Нет», вы не поможете девушке.

Если вы сразу ответите «Нет», сценарии «Да» не будут включены.

Я знаю, что это должно быть что-то с размещением синтаксиса.

Код приведен ниже.

=============================================
 confirm("PokemonGo: Adventure \n Click OK to play")

var age = prompt("What's your age");

if(age < 13)

{

alert("I take no responsibility for you playing. This game contains inappropriate material for children.\n Please leave now !!!");

}

else (age > 13)

confirm("Have Fun. Play Hard");

confirm("You walk to a nearby park to catch a rare pokemon that you seen in your area.\n When you get there you see that you are only 1 footprint away from the Pokemon you want.")

confirm("You look to your left and see that a very small girl, maybe 8 years old is playing PokemonGo also.\n You notice in the bottom right corner of her screen she is tracking the same Pokemon");

confirm("She looks up and notices you and says, \n 'Can I have the rare Pokemon in this area?");

var userAnswer = prompt("Do you help her capture the Pokemon?");

if (userAnswer.length > 2)

{

confirm("You turn off your PokemonGo app. You and the little girl, which you have now learned is named Jese, spend another 5 minutes walking around before you find a Mew. Jese pulls out a $100 bill and tries to give it to you for helping her.\n ");

var userAnswer2 = prompt("Do you take the $100?");

if (userAnswer2.length > 2)

confirm("Congratulations you just took $100 bucks from a little girl. Are you happy with yourself? (rhetorical) "); // right after here is where I want it to skip to Feedback instead of continuing the script

else (userAnswer2.length < 3)

prompt("YOU WIN!!! You are a good person all around. Pat yourself on the back.");

}// and right after here is where I want it to skip to Feedback instead of continuing the script

else (userAnswer.length < 3 )

alert("You take the little girls phone and turn it off, walk over to the nearest tree and put it just out of her reach.

She starts crying as she frantically tries to get the phone back.

You leave her to her tears and begin to search for that rare Pokemon.

It takes about 2 minutes before you find a Mew.

You attempt to capture it like the Master you are and add it to your Pokedex.

");

prompt("Do you throw a curve ball to try and win extra xp during this capture?")

alert("Doesn't Matter....You Lose!!! \n Karma catches up to you.

You get blindsided by the little girl's dad.\n He begins beating on you with a Louisville slugger.\n You drop your phone and the little girl picks it up and chucks it in the nearby lake.

You end up in intensive care \n Life Lesson: Don't be a dick, PokemonGo is just a game." );

var feedback = prompt("Rate my game out of 10")

if(feedback > 2)

{

console.log("Thank you! We should catch Pokemon together sometime!")

}

else { ("I'll keep practicing my coding.") }
Код (разметка):

Yura3


Рег
18 Jun, 2013

Тем
1

Постов
2

Баллов
12
  • 19, May 2024
  • #2
Нет, «НЕТ», «Нет» или «нет» не обязательно означают одно и то же. Ну, это означает одно и то же, но это не обязательно регистрируется как одно и то же. Поэтому вам следует воздерживаться от предоставления пользователю возможности написать ответ, поскольку это всегда приведет к вещам, которые вы не учли, и либо даст неудовлетворительный результат, либо вызовет какую-то ошибку.



Конечно, вы можете выдать ошибку, если ответ не соответствует «да» или «нет», но это не совсем удобно для пользователя.

Лучше дать пользователю конкретные, выбираемые ответы. Что касается разницы в ответах: обычно всегда разумно принудительно перевести ответ пользователя либо в верхний, либо в нижний регистр для сравнения.

Таким образом, даже если пользователь вводит «НЕТ», а вы ожидаете «нет», вы принудительно вводите пользовательский ввод в нижнем регистре, чтобы фактически сравнить «нет» с «нет» и получить ожидаемый ответ.

Однако это мелочь, на которую стоит обратить внимание.

Что, если пользователь напишет «нет», или «нет», или «не надо», или что-нибудь еще, что можно истолковать как «нет»? Трудно учесть все возможные вещи, которые пользователь может написать в таких входных данных, поэтому ограничьте выбор.
 

ostin174


Рег
15 Apr, 2015

Тем
0

Постов
2

Баллов
2
  • 20, May 2024
  • #3
Синтаксис правильный, но расположение кода немного шаткое.

Во-первых, если вам нужно «сломать» сценарий на основе конкретных ответов, вам нужно вложить условия if/else и, возможно, добавить еще несколько if. Кроме того, ваш выбор использования «меньше чем» и «длиннее», чем длина, ДЕЙСТВИТЕЛЬНО не является хорошим выбором.

Помните, что пользователи глупы или делают то, чего вы не ожидаете, и если я напишу «ок» вместо «да», сработает неправильное предложение.

Гораздо лучше написать что-то конкретное вместо использования подтверждения/подсказки, чтобы вы могли контролировать то, что выбирает пользователь.

Это должен быть простой выбор «Да/Нет», когда это уместно, «продолжить» или «назад» для других вариантов выбора и т. д., чтобы пользователь мог перемещаться и, возможно, опробовать другие возможные варианты. Посмотрите здесь: http://stackoverflow.com/questions/9334636/javascript-yes-no-alert

и посмотрите, сможете ли вы там что-нибудь найти (последняя запись с кодом)
 

Alexandr3


Рег
09 Dec, 2012

Тем
0

Постов
2

Баллов
2
  • 21, May 2024
  • #4
Я не читал весь ваш код, а только несколько, и я вижу, что вы не понимаете, как работает функция подтверждения и как узнать, принимает пользователь или нет. Посмотрите здесь http://www.w3schools.com/jsref/met_win_confirm.asp

. Функция подтверждения возвращает логическое значение, поэтому просто используйте:
 
var isAgirl = confirm("Are you a girl?");
if (isAgirl === true) {

// girl in the mirror
}
Код (разметка):
 

ismail1


Рег
09 Aug, 2012

Тем
0

Постов
3

Баллов
3
  • 10, Jun 2024
  • #5
Или просто используйте
 
var confirm = confirm("Are you a girl?");
if (confirm) { //this will work just fine, no need to add a typecast true

//yes-condition goes here
}
Код (разметка): Я бы все же сказал, что для блага игрока и для полезного взаимодействия нужно создать другой подход, не использовать всплывающие окна оповещений/подтверждений, а создать свой собственный код, который будет отображать вещи в виде более приятный способ.
 

Анна5


Рег
20 Nov, 2013

Тем
0

Постов
3

Баллов
3
  • 11, Jun 2024
  • #6
Спасибо за советы и подсказки, ребята.

Первоначально я использовал значения «Да» или «Нет», но меня беспокоила чувствительность к регистру.

Регистрируется ли «НЕТ» так же, как «нет» или «Нет»? Я использую эту игру только в практических целях обучения.

Хотя я мечтаю создать полнофункциональную игру.

Мне очень любопытно, как создавать пользовательские интерфейсы, но я еще не продвинулся так далеко в CodeAcademy.

Надеюсь, они расскажут об этом в бесплатной версии.

ЕСЛИ нет, я посмотрю на Youtube и подобные форумы.

Я сейчас учусь создавать и вызывать функции.

так что я очень "мокрый за уши".
 

Firmax


Рег
11 Mar, 2016

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно