Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2018, 01:32   #1
YannyT
Новичок
Джуниор
 
Регистрация: 05.03.2018
Сообщений: 1
Вопрос Нужна срочная помощь с разработкой игры "Виселица"

Пожалуйста помогите с разработкой игры "Виселица". Я только учусь и мало что понимаю в этом.
Задание отличается от традиционного подхода.
1) Должна быть функция "start", которая запускает игру и выбирает слово(random) из категорий. Она работает (помог учитель).
2) Далее должна ,быть функция "guess", которая по сути все и делает. (не работает).
3) За неугаданную букву игрок получает strike.
4) Игрок получает извещения при любом раскладе, типа "Да, такие буквы есть..." или "Нет такой буквы, вы получили страйк"...
5) Все на английском языке.
6) Игра полностью реализуется на консоли через return() и console.log(). Никаких дополнений ввиде html и css не надо.

Очень прошу, помогите. Хотя бы с функцией "guess"!!!:cray:

Мой код:

Код:
const words = {
  Animals: ['muskrat', 'hyena', 'armadillo', 'platypus', 'iguana'],
  Artists: ['Caravaggio', 'Michelangelo', 'Rembrandt', 'Bosch', 'Kandinsky'],
  Scientists: ['Archimedes', 'Newton', 'Darwin', 'Tesla', 'Galilei'],
  Countries: ['Andorra', 'Belgium', 'Cameroon', 'Estonia', 'Guatemala']
}

const categories = ['Animals', 'Artists', 'Scientists', 'Countries']

const randomInt = function (max) {
  return Math.floor(Math.random() * Math.floor(max))
}

const playerTotal = {
	guessedLetters: [],
	strikes: 0,
	countTry: 6,
	remainLetters: [],
	currentPuzzle: []
}

playerTotal.remainLetters = words.length

function start () {
	// randomly select a category
	const i = randomInt(categories.length)
	const category = categories[i]

	// radomly select puzzle from category array
	const j = randomInt(words[category].length)
	const word = words[category][j]
  playerTotal.currentPuzzle = word
	const answer = []
	for (let i = 0; i < word.length; i++) {
		answer[i] = '_'
	}
	console.log(`Category: ${category}. Word: ${answer}`)
}

const answerArray = []
for (let i = 0; i < words.length; i++) {
	answerArray[i] = '_'
}
const lettersArray = []
for (let y = 0; y < words.length; y++) {
  letter.join(' ')
}

function letter () {
	const answer = []
	for (let i = 0; i < words.length; i++) {
		// create if to compare words[i] (letter) with guessed letters
     // if a match don't change the letter
    if (words[i] === playerTotal.guessedLetters) {
      playerTotal.guessedLetters = letter.join(' ')
    } else { // else change to underscore
      playerTotal.guessedLetters = answerArray.join(' ')
    }
	}
}

const letterUpperCase = letter.toUpperCase

function guess () {
  // store letter into array of guessed letters
  playerTotal.guessedLetters.push(letter)
	playerTotal.currentPuzzle = word
  const category = categories[i]
	// check if letter is part of the phrase, if so, rebuild the puzzle

	if (words.indexOf(answerArray) !== -1) {
	// else update strikes and return the puzzle as is
  playerTotal.guessedLetters.push(answerArray)
  playerTotal.strikes
  return (answerArray).join(' ')
  console.log(`Yes, there are ${letter.toUpperCase}s in this word.`)
	} else {
		playerTotal.strikes++
		playerTotal.countTry--
    return (answerArray).join(' ')
		console.log(`No, there are no ${letter.toUpperCase}s in this word.
		You've got a strike. Now you have only ${playerTotal.countTry} attempts`)
	}
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 05.03.2018 в 09:21.
YannyT вне форума Ответить с цитированием
Старый 06.03.2018, 10:59   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,834
По умолчанию

какая весёлая игра, однако... подталкивание детей и студентов к суициду из-за незначительных ошибок? мда...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 06.03.2018, 11:24   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Для особо чувствительных заменяют на яблочное дерево ) https://en.wikipedia.org/wiki/Hangman_(game)#Variants

Но вообще-то тут вроде бы совсем не к роскомнадзору подталкивают. Виселицей обычно не самостоятельно пользуются и не по своему желанию.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.03.2018, 08:03   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,834
По умолчанию

ну, это всё меняет. с яблоней теперь даже можно в детском саду играть в такую игру...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[JavaScript] Canvas - игра "Виселица" krikqwerty Помощь студентам 4 15.10.2017 20:58
Нужна помощь - с помощью какой программы или программ лучше всего сделать игру ? ( такие как "что ? где? когда?" или "Самый умный" EOTE Помощь студентам 10 09.12.2016 22:58
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
помогите с разработкой "игры теннис" sab-94 Фриланс 4 10.05.2015 21:51
помогите составить игру "Виселица" Ymka Помощь студентам 1 23.11.2009 19:06