Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 2.821 pregleda

Najnovija ↓

Pogađanje slova 14.12.2023. u 23:11 · pre 35 meseci #1
Dobro veče, pozdrav za sve.
Već satima pokušavam da prepravim dio koda koji sam negdje ranije radio. Naime, njime pogađam slova u zadatoj riječi na način što uneseno slovo je ok ako postoji bilo gdje u riječi i ako ga ima na više mjesta unese ga na sva mjesta. Ako slovo ne postoji povećava se broj grešaka. Npr. za riječ banana ako unesem slovo a staviće ga na drugo četvrto i šesto mjesto itd.
Code (javascript):

//u trazenaRijec se nalazi tražena riječ
//u kliknutoSlovo se nalazi slovo na koje je kliknuto
//brojGresaka broji greške
  if (trazenaRijec.includes(kliknutoSlovo)) {
    [...trazenaRijec].forEach((slovo, indeks) => {
      if (slovo === kliknutoSlovo) {
        wordDisplay.querySelectorAll("li")[indeks].innerText = slovo;
      }
    });
  } else {
    brojGresaka++;
  }
 

Htio bih da prepravim tako da pogađa slova redom i bez obzira ako ih ima više istih da ide redom i jedno po jedno. Npr. za riječ banana da se mora početi sa slovom b, pa onda a koje će staviti samo na drugo mjesto, pa n, pa a itd. Svaka ideja je dobrodošla pošto sam se zapetljao i dobijam neke beskonačne petlje,
Re: Pogađanje slova 15.12.2023. u 08:07 · pre 35 meseci
izmenjeno 1 put, poslednji put Panta_ 15.12.2023. u 08:32
  1. Panta_15.12.2023. u 08:32zapis iz teksta poruke
#2
Ne trebaju ti petlje ako ideš slovo po slovo redom, dovoljno je da proveriš da li se slovo nalazi na određenoj poziciji u traženoj reči, ako jeste uvećaš poziciju za jedan, a ako nije uvećaš broj grešaka, i tako redom dok ne kompletiraš traženu reč. Evo primer:
Code (javascript):

const trazenaRec = 'banana'
let pronadjenaRec = ''
let pozicija = 0
let brojGresaka = 0

function trazi(slovo) {
  if (slovo === trazenaRec[pozicija]) {
    console.log(`${slovo} je odgovarajuce slovo`)
    pronadjenaRec += slovo
    pozicija++
  } else {
    console.log(`${slovo} nije odgovarajuce slovo. Trazi dalje.`)
    brojGresaka++
    return
  }
  if (pronadjenaRec === trazenaRec) {
    console.log(`Rec ${pronadjenaRec} je pronadjena`)
    console.log('Broj gresaka', brojGresaka)
    pronadjenaRec = ''
    pozicija = 0
    brojGresaka = 0
  } else {
    console.log('Trazi dalje')
  }
}

for (const s of ['c', 't', 'b', 'a', 'n', 'a', 'u', 'n', 'a']) {
  trazi(s)
}
c nije odgovarajuce slovo. Trazi dalje.
t nije odgovarajuce slovo. Trazi dalje.
b je odgovarajuce slovo
Trazi dalje
a je odgovarajuce slovo
Trazi dalje
n je odgovarajuce slovo
Trazi dalje
a je odgovarajuce slovo
Trazi dalje
u nije odgovarajuce slovo. Trazi dalje.
n je odgovarajuce slovo
Trazi dalje
a je odgovarajuce slovo
Rec banana je pronadjena
Broj gresaka 3
 
Sviđa mi se1
Re: Pogađanje slova 15.12.2023. u 12:23 · pre 35 meseci #3
Za ovakve stvari chat gpt je genije :) evo sad sam probao i dao je savrseno
resenje.

>
Re: Pogađanje slova 15.12.2023. u 13:26 · pre 35 meseci #4
Citat:
@nemnesic
Za ovakve stvari chat gpt je genije :) evo sad sam probao i dao je savrseno
resenje.

Daj da vidimo.

Re: Pogađanje slova 15.12.2023. u 14:16 · pre 35 meseci
izmenjeno 1 put, poslednji put X Files 15.12.2023. u 14:43
  1. X Files15.12.2023. u 14:43zapis iz teksta poruke
#5
Evo chatgpt rešenje:

Certainly! Here's a simple example of a Hangman game in JavaScript. You can
use this as a starting point and customize it further based on your
preferences:

Code (javascript):

```javascript
// Hangman Game
const words = ['javascript', 'hangman', 'developer', 'programming',
'computer'];

let chosenWord = words[Math.floor(Math.random() * words.length)];
let guessedWord = Array(chosenWord.length).fill('_');
let incorrectGuesses = 0;
const maxIncorrectGuesses = 6;

function displayGameStatus() {
  console.log(`Word: ${guessedWord.join(' ')}`);
  console.log(`Incorrect Guesses:
${incorrectGuesses}/${maxIncorrectGuesses}`);
}

function guessLetter(letter) {
  if (chosenWord.includes(letter)) {
    for (let i = 0; i < chosenWord.length; i++) {
      if (chosenWord[i] === letter) {
        guessedWord[i] = letter;
      }
    }
  } else {
    incorrectGuesses++;
  }
}

function isGameOver() {
  return incorrectGuesses >= maxIncorrectGuesses || guessedWord.join('')
=== chosenWord;
}

function endGame() {
  if (guessedWord.join('') === chosenWord) {
    console.log('Congratulations! You guessed the word.');
  } else {
    console.log(`Sorry, you're out of guesses. The word was "${chosenWord}".`);
  }
}


// Example usage:

Code (javascript):

while (!isGameOver()) {
  displayGameStatus();
  const userGuess = prompt('Guess a letter:').toLowerCase();
  guessLetter(userGuess);
}

endGame();
 


This is a console-based Hangman game where the user needs to guess letters
to reveal the hidden word. You can run this in a browser console or
integrate it into a web page for a more interactive experience.

>

EDIT X Files: Tagove sam stavio
Re: Pogađanje slova 15.12.2023. u 15:35 · pre 35 meseci #6
Ovo nije ono što @Neusaglasen traži. On hoće da redom pogađa slova od prvog ka poslednjem, tako da nema potrebe da se koristi for loop O(n) kada se zna index slova u reči O(1). Takođe, u ovom primeru Chat GPT-a, nema potrebe da se proverava da li reč sadrži slovo kada se to ionako radi u for petlji.
Re: Pogađanje slova 15.12.2023. u 15:52 · pre 35 meseci #7
Citat:
Panta_:
Ne trebaju ti petlje ako ideš slovo po slovo redom, dovoljno je da proveriš da li se slovo nalazi na određenoj poziciji u traženoj reči, ako jeste uvećaš poziciju za jedan, a ako nije uvećaš broj grešaka, i tako redom dok ne kompletiraš traženu reč. Evo primer:
Code (javascript):

const trazenaRec = 'banana'
let pronadjenaRec = ''
let pozicija = 0
let brojGresaka = 0

function trazi(slovo) {
  if (slovo === trazenaRec[pozicija]) {
    console.log(`${slovo} je odgovarajuce slovo`)
    pronadjenaRec += slovo
    pozicija++
  } else {
    console.log(`${slovo} nije odgovarajuce slovo. Trazi dalje.`)
    brojGresaka++
    return
  }
  if (pronadjenaRec === trazenaRec) {
    console.log(`Rec ${pronadjenaRec} je pronadjena`)
    console.log('Broj gresaka', brojGresaka)
    pronadjenaRec = ''
    pozicija = 0
    brojGresaka = 0
  } else {
    console.log('Trazi dalje')
  }
}

for (const s of ['c', 't', 'b', 'a', 'n', 'a', 'u', 'n', 'a']) {
  trazi(s)
}
c nije odgovarajuce slovo. Trazi dalje.
t nije odgovarajuce slovo. Trazi dalje.
b je odgovarajuce slovo
Trazi dalje
a je odgovarajuce slovo
Trazi dalje
n je odgovarajuce slovo
Trazi dalje
a je odgovarajuce slovo
Trazi dalje
u nije odgovarajuce slovo. Trazi dalje.
n je odgovarajuce slovo
Trazi dalje
a je odgovarajuce slovo
Rec banana je pronadjena
Broj gresaka 3
 


Hvala, to je upravo ono što sam tražio ali sam se bio uhvatio petlje za kojom nema potrebe. Ovo ChatGTP rešenje nisam probao. Može li da se testira u JSFiddle ili nečemu sličnom? JSFiddle ranije, koliko se sjećam nije radio sa console.log.
Re: Pogađanje slova 15.12.2023. u 16:04 · pre 35 meseci #8
Ne znam za JSFiddle, ali meže u web browseru Ctrl+Shift+i pa Console tab, ili Menu->More tools->Web Developer Tools u Firefoxu, slično je i u Chromeu. Ili instaliraj Nodejs: https://nodejs.org/en.
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme