11 juli 2012

Hänga gubbe i C++

Läs mer om koden här.

Klistra in koden i ett programmeringsprogram och kompilera. Koden är gjord med Dev-C++ men även andra program som Code::Blocks fungerar.

// Hänga gubbe - Hangman, by http://joolzblogg.blogspot.com/
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
 
void presentation(void);
void rensaSkarm(void);
int ordLangd(string ordet);
void fyllOrdetDolt(string ordetDolt, int langd);
void kontroll(char gissning, string ordetDolt, string ordet, int langd, int& antalFel, char felGissningar[]);
void resultat(string ordet, string ordetDolt, int antalFel);
bool jamforFalt(string ordet, string ordetDolt, int langd);
void ritaGubbe(int antalFel);
void omvandla(char& gissning);
void tillkalla(string ordetDolt, int langd);
 
int main()
{
    char koraigen;
    char meny;
    int slumpord;
    char felGissningar[10];
do
{    
    int antalFel = 0;  
    string ordetDolt;
    char gissning;
 
    presentation();
 
    cout << "\tMENY" << endl;
    cout << "1. Skriv in eget ord" << endl;
    cout << "2. L\x86t datorn slumpa fram ett ord" << endl;
    cout << "Ditt val: ";
    cin >> meny;
 
    cout << endl;
 
    string ordet;
    if (meny == '1')
    {
             cout << "Skriv ordet: ";
             cin >> ordet;
             rensaSkarm();
    }
    else if (meny == '2')
    {
             srand(time(0));
             slumpord = rand()%16 + 1;
 
             switch (slumpord)
             {
                    case 1:
                         ordet = "mobil";
                         break;
                    case 2:
                         ordet = "lastbil";
                         break;
                    case 3:
                         ordet = "bokhylla";
                         break;
                    case 4:
                         ordet = "datorspel";
                         break;
                    case 5:
                         ordet = "standardbibliotek";
                         break;
                    case 6:
                         ordet = "kol";
                         break;
                    case 7:
                         ordet = "jojjo";
                         break;
                    case 8:
                         ordet = "hangman";
                         break;
                    case 9:
                         ordet = "oliver";
                         break;
                    case 10:
                         ordet = "algoritm";
                         break;
                    case 11:
                         ordet = "flagga";
                         break;
                    case 12:
                         ordet = "kassettband";
                         break;
                    case 13:
                         ordet = "skolarbete";
                         break;
                    case 14:
                         ordet = "nationalencyklopedin";
                         break;
                    case 15:
                         ordet = "wikipedia";
                         break;
                    case 16:
                         ordet = "underverk";
                         break;
             }
    }
    else 
    {
         rensaSkarm();
         cout << "Felinmatning! Ordet s\x84tts till \"loser\" f\x94r att p\x86minna om dig! \n";
         ordet = "loser";
    }
 
    int langd = ordLangd(ordet);
 
    fyllOrdetDolt(ordetDolt, langd);
    tillkalla(ordetDolt, langd);
 
    do 
    {                                                                                             
       cout << "\nGissa p\x86 en bokstav: ";
       cin >> gissning;
       omvandla(gissning);
 
       rensaSkarm();
       kontroll(gissning, ordetDolt, ordet, langd, antalFel, felGissningar);
       cout << "Felaktiga gissningar: " << antalFel << endl;
 
 
 
       cout << "Testade bokst\x84ver: ";
       for (int b = 0; b < antalFel; b++)
       {
           cout << felGissningar[b];
           cout << ' ';
       }
       cout << endl;
 
 
       cout << endl;
       tillkalla(ordetDolt, langd);   
       ritaGubbe(antalFel);
 
    }while (jamforFalt(ordet, ordetDolt, langd) && antalFel < 6);
 
    resultat(ordet, ordetDolt, antalFel);
 
    cout << "Vill du spela igen? (j/n) ";
    cin >> koraigen;
 
    rensaSkarm();
}while (koraigen == 'j' || koraigen == 'J');    
 
    system("PAUSE");
    return 0;
}
void presentation(void)
{
     cout << "\t V\x84lkommen till Hangman 1.0 \n";
     cout << "Instruktioner: Ett ord har valts ut. Gissa p\x86 en bokstav och se \n";
     cout << "om den finns med i ordet. Spelet \x84r slut n\x84r du \n";
     cout << "har kommit p\x86 ordet eller efter sex felaktiga gissningar. \n\n";
}
void rensaSkarm(void)
{
     cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
}
int ordLangd(string ordet)
{
     int langd;
     langd = ordet.size();
 
     return langd;
}      
void fyllOrdetDolt(string ordetDolt, int langd)
{
     for (int i = 0; i < langd; i++)
     {
         ordetDolt[i] = '*';
     }
}
void kontroll(char gissning, string ordetDolt, string ordet, int langd, int& antalFel, char felGissningar[])
{
     int temp = 0;
 
     for (int y = 0; y < langd; y++)
     {
         if (gissning == ordet[y])
         {
              ordetDolt[y] = gissning;
         }
         else 
         {
              temp++;
         }
     }
     if (temp == langd)
     {
              felGissningar[antalFel] = gissning;
              antalFel++;
     }
}
void resultat(string ordet, string ordetDolt, int antalFel)
{
     if (antalFel < 6)
     {
               cout << "\nDu vann! Du kn\x84" << "ckte ordet " << ordet << ". \n\n";
     }
     else
     {
               cout << "\nDu f\x94rlorade! Ordet var " << ordet << ". \n\n";
     }
}
bool jamforFalt(string ordet, string ordetDolt, int langd)
{
     bool svar;
     int temp = 0;
     for (int z = 0; z < langd; z++)
     {
         if (ordet[z] == ordetDolt[z])
         {
                      temp++;
         }
     }
     if (temp != langd)
     {
              svar = true;
     }
     else
     {
              svar = false;
     }
 
     return svar;
}
void ritaGubbe(int antalFel)
{
     if (antalFel == 1)
     {
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "                                    " << endl;
                  cout << "        :''''''''''''''''''''''':   " << endl;
                  cout << "       :                         :  " << endl;
                  cout << "      :...........................: " << endl;
                  cout << "                                    " << endl;
     }
     if (antalFel == 2)
     {
                  cout << "                                    " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "        :''''''''''''''''''''''':   " << endl;
                  cout << "       :                         :  " << endl;
                  cout << "      :...........................: " << endl;
                  cout << "                                    " << endl;
     }
     if (antalFel == 3)
     {
                  cout << "                                    " << endl;
                  cout << "            |  /                    " << endl;
                  cout << "            | /                     " << endl;
                  cout << "            |/                      " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "        :''''''''''''''''''''''':   " << endl;
                  cout << "       :                         :  " << endl;
                  cout << "      :...........................: " << endl;
                  cout << "                                    " << endl;
     }
     if (antalFel == 4)
     {
                  cout << "            _____________           " << endl;
                  cout << "            |  /                    " << endl;
                  cout << "            | /                     " << endl;
                  cout << "            |/                      " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "        :''''''''''''''''''''''':   " << endl;
                  cout << "       :                         :  " << endl;
                  cout << "      :...........................: " << endl;
                  cout << "                                    " << endl;
     }
     if (antalFel == 5)
     {
                  cout << "            _____________           " << endl;
                  cout << "            |  /        !           " << endl;
                  cout << "            | /         !           " << endl;
                  cout << "            |/          !           " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "        :''''''''''''''''''''''':   " << endl;
                  cout << "       :                         :  " << endl;
                  cout << "      :...........................: " << endl;
                  cout << "                                    " << endl;
     }
     if (antalFel == 6)
     {
                  cout << "            _____________           " << endl;
                  cout << "            |  /        !           " << endl;
                  cout << "            | /         !           " << endl;
                  cout << "            |/          !           " << endl;
                  cout << "            |           o           " << endl;
                  cout << "            |          -|-          " << endl;
                  cout << "            |          / \\         " << endl;
                  cout << "            |                       " << endl;
                  cout << "            |                       " << endl;
                  cout << "        :''''''''''''''''''''''':   " << endl;
                  cout << "       :                         :  " << endl;
                  cout << "      :...........................: " << endl;
                  cout << "                                    " << endl;
     }   
}
void omvandla(char& gissning)
{
     switch (gissning)
     {
            case 'A':
                 gissning = 'a';
                 break;
            case 'B':
                 gissning = 'b';
                 break;
            case 'C':
                 gissning = 'c';
                 break;
            case 'D':
                 gissning = 'd';
                 break;
            case 'E':
                 gissning = 'e';
                 break;
            case 'F':
                 gissning = 'f';
                 break;
            case 'G':
                 gissning = 'g';
                 break;
            case 'H':
                 gissning = 'h';
                 break;
            case 'I':
                 gissning = 'i';
                 break;
            case 'J':
                 gissning = 'j';
                 break;
            case 'K':
                 gissning = 'k';
                 break;
            case 'L':
                 gissning = 'l';
                 break;
            case 'M':
                 gissning = 'm';
                 break;
            case 'N':
                 gissning = 'n';
                 break;
            case 'O':
                 gissning = 'o';
                 break;
            case 'P':
                 gissning = 'p';
                 break;
            case 'Q':
                 gissning = 'q';
                 break;
            case 'R':
                 gissning = 'r';
                 break;
            case 'S':
                 gissning = 's';
                 break;
            case 'T':
                 gissning = 't';
                 break;
            case 'U':
                 gissning = 'u';
                 break;
            case 'V':
                 gissning = 'v';
                 break;
            case 'X':
                 gissning = 'x';
                 break;
            case 'Y':
                 gissning = 'y';
                 break;
            case 'Z':
                 gissning = 'z';
                 break;
            case 'Å':
                 gissning = 'å';
                 break;
            case 'Ä':
                 gissning = 'ä';
                 break;
            case 'Ö':
                 gissning = 'ö';
                 break;
     }
}
void tillkalla(string ordetDolt, int langd)
{
    cout << "Ordet: ";
    for (int h = 0; h < langd; h++)
    {
        cout << ordetDolt[h];
    }
    cout << endl;
}

24 december 2009

20 september 2009

Inget kyrkoval för mig

Har bestämt mig. Ska inte rösta i kyrkovalet 2009. Har faktiskt viktigare saker för mig, typ övningsköra ner till stranden och springa. :)

19 september 2009

Kyrkoval imorgon och kyrkan är modernare än någonsin

Som sagt, kyrkoval imorgon. Vet inte riktigt om jag ska rösta. Hur stor påverkan har man egentligen, eller rättare sagt, vad är det man har påverkan om? Informationen är minst sagt bristfällig.
I alla fall så har kyrkan nu (eller egentligen för ganska länge sedan) infört att man kan be en bön på nätet och skicka den till en av domkyrkorna. man kan även läsa andas böner, prenumerera på dem, twittra om dem, osv...

Så ta en titt på svenskakyrkan.se/be eller se nedan vad folk ber om "sommar" just nu:

Saab väljer rätt låt igen

Inte nog med att Oh Laura, mer eller mindre, blev kända genom sin låt "Release Me" via Saabs reklam, nu kommer en ny hit. Reklamfilmen handlar om en man som via sitt ritblock upptäcker världen och kommer på något som inte bara är en bil, det är en Saab. :) Låten heter "The Time Is Now" och sjungs av Asha Ali.

Uppdatering:  Låten är just nu den näst mest nedladdade låten i Sverige via iTunes.

Länk till låten på Saabs webbplats

12 september 2009

Nervösa pojkar i Idol 2009

Eller, som låtsas vara det i alla fall. Men egentligen tycker jag det konstigaste i hela videon är när Laila Bagge i slutet bara knäcker fram:
- Kan man ta en chokladbollsbit?

Ehh?

4 september 2009

Nytt golv - svart och smakar soja



Visste du att aluminiumformen som omsluter Felix fullkornspajer har små hål i sig? Häll kinasoja i den och försök transportera sojan mellan två rum så kommer du att märka det…

2 september 2009

Down with Internet Explorer 6

Använder du fortfarande IE6? Sluta med det! Inte nog med att du stoppar utvecklingen av webbsidor som hela tiden måste göras bakåtkompatibla, du utsätter även din dator för säkerhetshål och surfar långsammare.

Trots att IE6 är två versioner gammal används webbläsaren fortfarande av hela  25,25% och har därmed störst andel på marknaden. För att minska dessa användning har flera kampanjer startats och IE6 No More är en av dem, som jag dessutom gått med i. IE6 No More lägger in en varningsruta längst upp på sidan när du besöker den i IE6 som säger att du bör uppgradera eller byta din webbläsare. Var vänlig och gör detta så Internet kan utvecklas vidare.

Eyeworks filmar - betalar i mjöl

När Eyeworks skulle filma SVT:s nya dokumentär "Den stora resan" i Afrika betalade de de namibiska medverkarna i majsmjöl. De fick mycket kritik mot detta och fick kommentarer som påstod att det var kolonialistiskt.
Men vad är egentligen mest kolonialistiskt! Att betala i mjöl eller att bestämma att någon inte ska ta emot betalningar i mjöl!?
(Jag har just börjat läsa filosofi.) :)


Källa: Ab

31 augusti 2009

Microsoft retuscherade bort svart man

När Microsoft skulle sätta upp reklam i Polen retuscherade de bort den svarta mannen i mitten och ersatte honom med en vit man! Sant.
















Källa: di