online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <string> const int MAX_ARVAUSKERTOJA = 10; // Tulostaa tyhjiä rivejä ohjelman suorituksen alussa void puhdista_naytto(); // Tarkastaa, ovatko kaikki kirjaimet arvattujen kirjainten listalla bool onko_sana_jo_arvattu(std::string sala, std::string arvatut); // Tulostaa merkkijonon käyttäen _-merkkiä arvaamattoman kirjaimen kohdalla void tulosta_pelitilanne(std::string sala, std::string arvatut); int main() { std::string salainen_sana = ""; std::cout << "Syota arvattava sana: "; getline(std::cin, salainen_sana); puhdista_naytto(); std::string arvatut_kirjaimet = ""; int arvauskertoja_kaytetty = 0; while (not onko_sana_jo_arvattu(salainen_sana, arvatut_kirjaimet) and arvauskertoja_kaytetty < MAX_ARVAUSKERTOJA) { std::cout << std::endl << "Pelitilanne: "; tulosta_pelitilanne(salainen_sana, arvatut_kirjaimet); if (arvatut_kirjaimet.size() > 0) { std::cout << "Olet kayttanyt " << arvauskertoja_kaytetty << " arvausta!" << std::endl << "Olet arvannut kirjaimia: " << arvatut_kirjaimet << std::endl; } std::string arvaus = ""; std::cout << "Arvaa kirjain: "; getline(std::cin, arvaus); if (arvaus.size() != 1) { std::cout << "Mokasit: syota tasmalleen yksi kirjain!" << std::endl; continue; } else if (arvatut_kirjaimet.find(arvaus) != std::string::npos) { std::cout << "Mokasit: olit jo arvannut merkin " << arvaus << "!" << std::endl; continue; } arvatut_kirjaimet += arvaus; if (salainen_sana.find(arvaus) == std::string::npos) { std::cout << "Arvattu kirjain ei ole sanassa!" << std::endl; } ++arvauskertoja_kaytetty; } if (not onko_sana_jo_arvattu(salainen_sana, arvatut_kirjaimet)) { std::cout << std::endl << "Arvauskerrat loppuivat kesken!" << std::endl; } else { std::cout << std::endl << "Arvasit oikein. Kaytit " << arvauskertoja_kaytetty << " arvausta!" << std::endl; } } void puhdista_naytto() { // Puhdistetaan näyttö tulostamalla 100 tyhjää riviä. for (int i = 0; i < 100; ++i) { std::cout << std::endl; } } bool onko_sana_jo_arvattu(std::string sala, std::string arvatut) { // Käydään läpi kaikki sala-merkkijonon merkit. for (std::string::size_type indeksi = 0; indeksi <= sala.size(); ++indeksi) { // Jos vastaan tulee sala-merkkijonon merkki, joka ei ole // arvatuissa merkeissä, voidaan välittömästi päätellä, // että koko salaista sanaa ei ole vielä arvattu. if (arvatut.find(sala.at(indeksi)) == std::string::npos) { return false; } } // Kun koko salainen merkkijono on käyty läpi, ja joka ikinen // merkki löytyi merkkijonosta arvatut, täytyy olla niin, // että koko salainen sana on arvattu. std::cout << "stuff" << std::endl; return true; } void tulosta_pelitilanne(std::string sala, std::string arvatut) { // Merkkijonon merkit voidaan käydä läpi myös for-silmukan // versiolla, joka muistuttaa Pythonin "for x in y"-rakennetta. // Tämä on vaihtoehto edellisessä funktiossa käytetylle // indeksi-muuttujan avulla tehdylle toteutukselle. for (char salamerkki: sala) { if (arvatut.find(salamerkki) == std::string::npos) { std::cout << "_"; } else { std::cout << salamerkki; } } std::cout << std::endl; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue