Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск

Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

[ Посмотреть весь список ]


Больше всего посетителей (7) здесь было Сб Июн 17, 2017 3:57 pm
Самые активные пользователи за неделю


Скелеты. Динамические массивы

Предыдущая тема Следующая тема Перейти вниз

Скелеты. Динамические массивы

Сообщение автор Ярослав в Сб Мар 25, 2017 1:22 pm

Код:
#include <iostream>
#include <time.h>

using namespace std;

const int SIZE = 10;

int *skelX = nullptr, *skelY = nullptr;
int skels = 0;
int score = 0;

bool isSkeletonHere (int y, int x) {
    for (int i = 0; i < skels; i++)
        if (skelX[i] == x && skelY[i] == y)
            return true;
    return false;
}

void addSkeleton () {
    int *temp = new int[skels + 1];
    memcpy (temp, skelX, sizeof (int) * skels);
    delete[] skelX;
    skelX = temp;

    temp = new int[skels + 1];
    memcpy (temp, skelY, sizeof (int) * skels);
    delete[] skelY;
    skelY = temp;

    // 0 ... skels + 1 - 1
    skelX[skels] = rand () % SIZE;
    skelY[skels] = rand () % SIZE;
    skels++;
}
void removeSkeleton (int y, int x) {
    int i;
    for (i = 0; i < skels; i++)
        if (skelX[i] == x && skelY[i] == y)
            break;
    if (i == skels)
        return;
    for (int j = i; j + 1 < skels; j++) {
        skelX[j] = skelX[j + 1];
        skelY[j] = skelY[j + 1];
    }
    skels--;
    score++;
}

int main () {
    srand (unsigned (time (nullptr)));

    while (true) {
        for (int i = 0, n = rand () % 20; i < n; i++)
            addSkeleton ();

        for (int j = 0; j < SIZE; j++)
            cout << j;
        cout << endl;
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++)
                if (isSkeletonHere (i, j))
                    cout << 's';
                else
                    cout << '.';
            cout << endl;
        }
        cout << "Score: " << score << endl;
        cout << "Enter column number (0-9): ";
        int col;
        cin >> col;
        for (int i = 0; i < SIZE; i++)
            removeSkeleton (i, col);
    }
       
}
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения