Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
#1

Игра "Жизнь" и торообразный массив - C++

22.01.2013, 19:17. Просмотров 1059. Ответов 4
Метки нет (Все метки)

Подскажите, как можно реализовать торообразный (круговой) массив для игры "Жизнь".

есть только примитивный алгоритм, без учета перехода границ:
проверка клетки:
C++
1
2
3
4
5
6
7
8
                if(universe[x-1][y]) count++;
                if(universe[x+1][y]) count++;
                if(universe[x][y+1]) count++;
                ifuniverse[x][y-1]) count++;
                if(universe[x+1][y+1]) count++;
                if(universe[x+1][y-1]) count++;
                if(universe[x-1][y+1]) count++;
                if(universe[x-1][y-1]) count++;
Вот на питоне легче, т.к. индекс -1 равен последнему элементу:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> a = [1, 2, 3]
>>> a[-1]
3
 
def life_count(area, x, y, len_x, len_y):
    return area[x-1][y-1]+\
            area[x-1][y]+\
            area[x][y-1]+\
            area[(x+1)%len_x][(y+1)%len_y]+\
            area[x][(y+1)%len_y]+\
            area[(x+1)%len_x][y]+\
            area[x-1][(y+1)%len_y]+\
            area[(x+1)%len_x][y-1]
тогда, как можно сделать на си
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2013, 19:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Игра "Жизнь" и торообразный массив (C++):

Игра "Жизнь"; Нужно, чтобы первое поколение задавалось оператором (с клавиатуры) - C++
Нужна помощь с решением задачи "Жизнь" на с++ Есть код программы, которая задает первое поколение колонии случайным образом. Но мне...

Игра "Жизнь" с самым простым кодом - C++
Здравствуйте, нужна помощь по написанию кода для игры "Жизнь" только на простом уровне, так как еще очень мало разбираюсь в...

Игра "Борьба за жизнь". Цель игры – убрать с доски все шашки противника - C++
Здравствуйте! Помогите пожалуйста написать программу на с++. Два игрока имеют по n шашек и играют в поле m m клеток, делая ходы по...

Игра "жизнь" - разобраться в коде - C++
помогите разобраться в коде #define SIZE 20 int a,b; int chk(int x, int y) { int i=0; if (a==1) i++; if...

Игра "Жизнь" - C++
Пожалуйста скиньте кто нибуть код проги написаной на С++ console application, буду очень благодарен!!! мне нужен код игры "Жызнь"...

Игра "Жизнь" - C++
#include <iostream> #include <conio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <dos.h> #define...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
22.01.2013, 19:39 #2
jon_illien, там, где можно получить отрицательный индекс, добавляешь длину, потом берёшь остаток от деления.
C++
1
area[(x + len_x - 1) % len_x][(y + y_len - 1) % y_len]
1
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
22.01.2013, 19:54  [ТС] #3
понятно, а, если не отрицательный: size+1 ?
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
22.01.2013, 19:57 #4
jon_illien, (size + 1) % size, иначе будет выход за пределы массива.
1
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
23.01.2013, 02:09  [ТС] #5
спасибо, gray_fox. вроде вышло неплохо)) только работает медленно)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2013, 02:09
Привет! Вот еще темы с ответами:

игра "жизнь." - C++
Здравствуйте, форумчане, я новенький по этому возможно буду ошибаться и говорить глупости. Но надеюсь вы таки мне поможете в понимании...

Игра "Жизнь" - C++
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <WinCon.h> #include <conio.h> #include...

Игра "Жизнь" - C++
Игра "Жизнь" Игра моделирует жизнь поколений гипотетической колонии живых клеток, которые выживают, размножаются или погибают в...

Игра "Жизнь" - C++
Всем привет. Взялся за написание "Жизни", столкнулся с непонятными багами. Вот мой код (сначала хочу проверить алгоритм на небольших...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2013, 02:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru