Всем привет! Я начинающий программист и мне нужна помощь! Можете пожалуйста рассмотреть почему у меня в программе не работает русская рулетка? Не судите строго. Заранее спасибо!
<meta charset="utf-8">
<script>
var name = prompt("Имя:");
alert("Привет," + name);
var menu = true;
while (menu==true){
var stage = prompt("Выберите функцию по числу: 0 - возведение числа в квадрат, 1 - калькулятор, 2 - вклад в банк, 3 - русская рулетка");
var square = false
if (stage == 0){
square = true
while (square==true){
var x = prompt("Введите любое число,чтобы возвести его в квадрат или напишите exit для выхода");
if (x=="exit"){
break;
menu =true
square = false
} else{
alert ("Ваше число:" + x*x);
}}}
var Calculator = false
if (stage == 1){
Calculator = true
while (Calculator == true){
var y = prompt("Выберите функцию калькулятора,которую хотите использовать: 0 - умножение, 1 - деление, 2 - сложение, 3 - вычитание, 4 - выход");
if (y==4){
break
menu=true
calculator = false
}
var z = prompt("Введите первое число:");
var j = prompt("Введите второе число:");
var z = parseInt(z);
var j = parseInt(j);
if (y==0)
alert("Ваше число: " + z*j);
if (y==1)
alert("Ваше число: " + z/j);
if (y==2)
alert("Ваше число: " + (z+j));
if (y==3)
alert("Ваше число: " + (z-j));
}}
var bank = false
if (stage==2){
bank = true
};
while(bank==true){
var vklad =parseInt(prompt("Введите сумму вклада"));
var stavka =parseInt(prompt("Введите годовую ставку"));
var srok =parseInt(prompt("Введите срок вклада"));
for (var i=1; i<=srok; i++){
vklad = vklad + vklad * stavka / 100;
alert("Сумма на счету: " + Math.floor(vklad));
}
break;
menu=true;
bank=false
}
var DeathRoulette=false
var RouletteRounds = 0
function DeathRouletteF(){
let min = 1;
let max = 6;
let bulletRandom = Math.floor(Math.random( ) * (max - min + 1)) + min
let bullet = Math.floor(Math.random( ) * (max - min + 1)) + min
if (bullet != bulletRandom){
RouletteRounds++
Roulette = prompt("Поздравляю! Вы выжили! Чтобы продолжить игру введите: "/продолжить/",чтобы закончить игру введите:"/конец/"")
} else{
alert("Вы потерпели поражение! Вы выжили раундов: " + RoulleteRounds);
alert("Игра окончена!");
DeathRoulette = false;
menu = true;
RouletteRounds=0
}
return Roulette;
}}
if (stage==3){
DeathRoulette=true
menu=false
if(DeathRoulette==true){
var Roulette = prompt("Вы выбрали русскую рулетку. Для того чтобы начать введите:"/начать/"");
if (Roulette =="начать"){
DeathRouletteF()
}
if (Roulette=="продолжить"){
while (RouletteRounds!=5){
DeathRouletteF
}
}
if (Roulette=="конец"){
alert("Вы выжили раундов: " +RouletteRounds);
DeathRoulette = false;
menu = true;
RouletteRounds = 0;
}
}}
</script>
там структура нарушена, лишняя закрывающая фигурная скобка.
Ну и вообще, код ужасный. Форматирования нет, структуры - нет. Множество лишних строк кода, множество лишних переменных и т.д.
я уже не говорю о том, что alert и prompt явно не самые современные и удобные элементы интерфейса
<meta charset="utf-8">
<script>
var RouletteRounds=0;
function DeathRouletteF(){
let min = 1;
let max = 6;
let bulletRandom = Math.floor(Math.random( ) * (max - min + 1)) + min;
let bullet = Math.floor(Math.random( ) * (max - min + 1)) + min;
if (bullet != bulletRandom){
RouletteRounds++;
Roulette = prompt("Поздравляю! Вы выжили! Раунд "+RouletteRounds+". Чтобы закончить игру введите:\"конец\"");
} else{
alert("Вы потерпели поражение! Вы выжили раундов: " + RoulleteRounds);
alert("Игра окончена!");
}
return Roulette;
}
var name = prompt("Имя:");
alert("Привет," + name);
var menu=true;
while (menu){
var stage=+prompt("Выберите функцию по числу: 0 - возведение числа в квадрат, 1 - калькулятор, 2 - вклад в банк, 3 - русская рулетка, 4 - выход");
if (stage == 0){
var square = true;
while (square){
var x = prompt("Введите любое число,чтобы возвести его в квадрат или напишите exit для выхода");
if (x=="exit"){
break;
menu =true
square = false
} else{
alert ("Ваше число:" + x*x);
}}
}
if (stage == 1){
var Calculator=true;
while (Calculator){
var y = +prompt("Выберите функцию калькулятора,которую хотите использовать: 0 - умножение, 1 - деление, 2 - сложение, 3 - вычитание, 4 - выход");
if (y==4){
break;
calculator=false;
}
var z = +prompt("Введите первое число:");
var j = +prompt("Введите второе число:");
if (y==0)
alert("Ваше число: " + z*j);
if (y==1)
alert("Ваше число: " + z/j);
if (y==2)
alert("Ваше число: " + (z+j));
if (y==3)
alert("Ваше число: " + (z-j));
}
}
if (stage==2){
var vklad = parseInt(prompt("Введите сумму вклада"));
var stavka = parseInt(prompt("Введите годовую ставку"));
var srok = parseInt(prompt("Введите срок вклада в годах"));
for (var i=1; i<=srok; i++){
vklad = vklad + vklad * stavka / 100;
alert("Сумма на счету: " + Math.floor(vklad));
}
}
if (stage==3){
RouletteRounds = 0;
var Roulette = prompt("Вы выбрали русскую рулетку. Для того чтобы начать введите:\"начать\"");
if (Roulette =="начать"){
do {
Roulette = DeathRouletteF();
} while ((Roulette!=="конец")&&(RouletteRounds<5))
alert("Вы выжили раундов: " +RouletteRounds);
}
else
alert('Вы отказались рискнуть и сыграть в русскую рулетку!');
}
if (stage==4){
menu=false;
}
}
</script>
Строки после break никогда не выполнятся (видимо надо было его в конце?).
Опечатка.
И тут.
Полезная штука в современном JS помогающая избежать некоторые ошибки — const.
Хорошая статья, особенно ближе к концу: Переменные
И эта тоже: Советы по стилю кода
Лучше использовать === вместо ==, иначе например пустая строка будет равна нулю.
Советую использовать IDE или редакторы кода, типа продуктов JetBrains (для студентов вузов бесплатно) или VS Code, чтобы получать подсказки о подобных проблемах и помощь в форматировании.
<meta charset="utf-8">
<script>
let RouletteRounds = 0
let Roulette = ''
function DeathRouletteF () {
let min = 1
let max = 6
let bulletRandom = Math.floor(Math.random() * (max - min + 1)) + min
let bullet = Math.floor(Math.random() * (max - min + 1)) + min
if (bullet !== bulletRandom) {
RouletteRounds++
Roulette = prompt('Поздравляю! Вы выжили! Раунд ' + RouletteRounds + '. Чтобы закончить игру введите:"конец"')
} else {
alert('Вы потерпели поражение! Вы выжили раундов: ' + RouletteRounds)
alert('Игра окончена!')
}
return Roulette
}
const name = prompt('Имя:')
alert('Привет,' + name)
let menu = true
while (menu) {
const stage = +prompt('Выберите функцию по числу: 0 - возведение числа в квадрат, 1 - калькулятор, 2 - вклад в банк, 3 - русская рулетка, 4 - выход')
if (stage === 0) {
let square = true
while (square) {
var x = prompt('Введите любое число,чтобы возвести его в квадрат или напишите exit для выхода')
if (x === 'exit') {
menu = true
square = false
break
} else {
alert('Ваше число:' + x * x)
}
}
}
if (stage === 1) {
let calculator = true
while (calculator) {
const y = +prompt('Выберите функцию калькулятора,которую хотите использовать: 0 - умножение, 1 - деление, 2 - сложение, 3 - вычитание, 4 - выход')
if (y === 4) {
calculator = false
break
}
const z = +prompt('Введите первое число:')
const j = +prompt('Введите второе число:')
if (y === 0)
alert('Ваше число: ' + z * j)
if (y === 1)
alert('Ваше число: ' + z / j)
if (y === 2)
alert('Ваше число: ' + (z + j))
if (y === 3)
alert('Ваше число: ' + (z - j))
}
}
if (stage === 2) {
let vklad = parseInt(prompt('Введите сумму вклада'))
const stavka = parseInt(prompt('Введите годовую ставку'))
const srok = parseInt(prompt('Введите срок вклада в годах'))
for (let i = 1; i <= srok; i++) {
vklad = vklad + vklad * stavka / 100
alert('Сумма на счету: ' + Math.floor(vklad))
}
}
if (stage === 3) {
RouletteRounds = 0
Roulette = prompt('Вы выбрали русскую рулетку. Для того чтобы начать введите:"начать"')
if (Roulette === 'начать') {
do {
Roulette = DeathRouletteF()
} while ((Roulette !== 'конец') && (RouletteRounds < 5))
alert('Вы выжили раундов: ' + RouletteRounds)
} else
alert('Вы отказались рискнуть и сыграть в русскую рулетку!')
}
if (stage === 4) {
menu = false
}
}
</script>