#1 07-06-2012 10:24:48

krzotr

Truje dupe, ale jestem

Zarejestrowany: 20-11-2011
Posty: 22
Punktów :   

[SOLVED] Wyścig żółwia i zająca

Kod:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>

#define N 70

using namespace std;

void zolw( int & pozycja_zolw, int krok )
{
    switch( krok )
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            pozycja_zolw += 3;
            break;
        case 6:
        case 7:
        case 8:
            pozycja_zolw += 1;
            break;
        default:
            pozycja_zolw -= 6;
    }

    if( pozycja_zolw > N || pozycja_zolw < 1 )
    {
        pozycja_zolw = 1;
    }
}

void zajac( int & pozycja_zajac, int krok )
{
    switch( krok )
    {
        case 1:
        case 2:
            break;
        case 3:
        case 4:
            pozycja_zajac += 9;
            break;
        case 5:
        case 6:
        case 7:
            pozycja_zajac += 1;
            break;
        case 8:
            pozycja_zajac -= 12;
            break;
        default:
            pozycja_zajac -= 2;
    }

    if( pozycja_zajac > N || pozycja_zajac < 1 )
    {
        pozycja_zajac = 1;
    }
}

int losuj()
{
    return rand()%( 10-1+1 )+1;
}

void trasa( int pozycja_zolw, int pozycja_zajac )
{
    cout << "[";
    if( pozycja_zolw == pozycja_zajac )
    {
        cout << "Oj, boli !!!" << setw( N-11 );
    }
    else
    {
        for( int i = 1; i < N; i++ )
        {
            if( i == pozycja_zolw )
            {
                cout << "X";
            }
            else if( i == pozycja_zajac )
            {
                cout << "@";
            }
            else
            {
                cout << "-";
            }
        }
    }
    cout << "]\n";
}

int main()
{

    srand( time( NULL ) );

    int pozycja_zolw = 1;
    int pozycja_zajac = 1;
    int krok;

    int i = 0;

    do
    {
        zajac( pozycja_zajac, losuj() );
        zolw( pozycja_zolw, losuj() );

        trasa( pozycja_zolw, pozycja_zajac );

        i++;
    }
    while( pozycja_zolw != N && pozycja_zajac != N );

    cout << "Zwyciezyl: " << ( pozycja_zolw == N ? "ZOLW" : "ZAJAC" ) << "\n";
    cout << "Ilosc potrzebnych krokow: " << i << "\n";


    system( "pause" );
    return 0;
}

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi

[ Generated in 0.057 seconds, 10 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.szkolapodzaglami.pun.pl www.analityka-med.pun.pl www.papierosy.pun.pl www.obpu.pun.pl www.zdhbratnieslowo.pun.pl