#1 07-06-2012 12:08:17

krzotr

Truje dupe, ale jestem

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

[SOLVED] Gra skoczek

Kod:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <fstream>
#include <string.h>

using namespace std;

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

void akcja( char imie[10], int & pos, char plansza[100], int krok, int ilosc_pol, int & ilosc_zakonczonych_graczy )
{
    cout << setw( 10 ) << imie << " - " << setw(2) << ( pos + 1 ) << "; +" << krok << "; ";

    pos += krok;

    switch( plansza[ pos ] )
    {
        case 'o':
            cout << "wraca na poczatek\n";
            break;
        case 'p':
            cout << "pies zjadl plyte z programem, cofa sie o 10 pol\n";
            pos -= 10;
            break;
        case 'c':
            cout << "wygral(a) 5 punktow i przesuwa sie o 5 pol do przodu\n";
            pos += 5;
            break;
        case 'd':
            cout << "przesuwa sie o 10 pol do przodu\n";
            pos += 10;
            break;
        case 'r':
            cout << "rzuca jeszcze raz\n";
            akcja( imie, pos, plansza, krok, ilosc_pol, ilosc_zakonczonych_graczy );
            break;
        case 't':
            cout << "wyslal(a) program nie testujac go, cofa sie o 20 pol\n";
            pos -= 20;
            break;
        case 'u':
            cout << "zgubil(a) buta, cofa sie o 5 pol\n";
            pos -= 5;
            break;
        default:
            cout << "leci dalej\n";
    }

    if( pos < 1 )
    {
        pos = 1;
    }
    else if( pos >= ilosc_pol )
    {
        pos = ilosc_pol;
        ilosc_zakonczonych_graczy++;
        cout << setw( 10 ) << imie << " - wygral(a) !!!\n";
    }
}

int main()
{
    srand( time( NULL ) );

    ifstream p( "plansza.txt" );

    if( ! p.is_open() )
    {
        cout << "Nie mozna otworzyc pliku 'plansza.txt'\n";
        system( "pause" );
        exit( 1 );
    }

    char plansza[100] = {0};
    char gracze[10][10] = {0};
    int pozycja_graczy[10] = {0};
    int ilosc_pol = 0;
    int ilosc_graczy = 0;
    int ilosc_zakonczonych_graczy = 0;
    char data[100];


    p >> plansza;

    int i = 0;

    for( ; ; )
    {
        p >> data;

        if( strcmp( data, ".end" ) == 0 )
        {
            break;
        }

        strcpy( gracze[ i ], data );

        i++;
    }
    ilosc_graczy = i;

    cout << "Lista graczy:\n";
    for( i = 0; i < ilosc_graczy; i++ )
    {
        cout << " " << ( i + 1 ) << " - " << gracze[ i ] << "\n";
    }

    cout << "\nWczytana plansza: "<< plansza;

    i = -1;
    do
    {
        i++;
    }
    while( plansza[ i ] );
    ilosc_pol = i;
    cout << "\nDlugosc planszy: " << ilosc_pol << "\n";

    p.close();

    do
    {
        for( int i = 0; i < ilosc_graczy; i++ )
        {
            if( ilosc_graczy - 2 < ilosc_zakonczonych_graczy )
            {
                break;
            }

            if( pozycja_graczy[ i ] == ilosc_pol )
            {
                continue;
            }

            akcja( gracze[ i ], pozycja_graczy[ i ], plansza, losuj(), ilosc_pol, ilosc_zakonczonych_graczy );
        }
    }
    while( ilosc_zakonczonych_graczy < ilosc_graczy - 1 );


    system( "pause" );
    return 0;
}

plansza.txt:

Kod:

zczzzrzzzczzpzzczzuzdzztzzzczozzzpzztczz
Patrycja
Bozenka
Razor
Ania
.end

Offline

 

Stopka forum

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

[ Generated in 0.052 seconds, 7 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.mythwaronline.pun.pl www.zdhbratnieslowo.pun.pl www.szkolapodzaglami.pun.pl www.papierosy.pun.pl www.obpu.pun.pl