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

игра жизнь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ РАбочее окно http://www.cyberforum.ru/cpp-beginners/thread387545.html
Всем привет !!! Я програмирую на Dev C++ Хотелось бы узнать как можно создать рабочее окно для программы (не консольное ) ! может какойто другой кампилятор нужны ? подскажите .
C++ Вывести количество чисел в наборе, меньших K. Series14. Дано целое число K и набор ненулевых целых чисел; признак его за- вершения — число 0. Вывести количество чисел в наборе, меньших K. http://www.cyberforum.ru/cpp-beginners/thread387543.html
C++ Производительность операций
Не уверен в своих силах для самостоятельной оценки сабжа. Где можно найти информацию о производительности стандартных операций с++ (гуглением не справился, нашел только сравнение реализации на с++, джаве и на нескольких интерпретируемых языках)? То есть интересует информация плана << : * как 1:15 или <= : == как 25:24... То есть, чрезвычайно интересно знать, какие операции выбирать если есть...
Морзянка C++
Всем привет !! Написал программу которая переводит слова в морзянка. Теперь мне надо написать программу которая будет все делать наоборот переводить из морзянки в слова P.S. Моя программа работает только на компиляторах с настроенным русским языком !!!! void morza(char str, int str_len) { int i; for(i=0;i<str_len;i++) { switch(str) {
C++ Математическая функция http://www.cyberforum.ru/cpp-beginners/thread387507.html
Составить программу вычисления значения выражения: 1/3 +2 модуль(cos(x-Pi/6)) #include <iostream.h> #include <conio.h> #include <math.h> main() { float x; cout<<"x=";
C++ Секундомер с выводом на экран доброго времени суток. подскажите пожалуйста как сделать секундомер, что бы при нажатии кнопки он остановился пробывал так, оно не работает, та и мили секунды показывает не правильно почему то int ms=0,s=0,m=0,h=0,ch,hh=3600,mm=60,ss=1000; do { system("cls"); ms++; if (ms==ss) { подробнее

Показать сообщение отдельно
temperus
1 / 1 / 0
Регистрация: 02.03.2011
Сообщений: 42
20.11.2011, 07:53     игра жизнь
содержимое life.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Life.cpp: определяет точку входа для консольного приложения.
//
 
#include <iostream>
#include "stdafx.h"
#include "Life.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    Life test;
    while(1)
    {
        test.Generate();
        test.Print();
    }
    return 0;
}
содержимое life.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Life
{
    int cur[100][100], next[100][100];
    int gen;
public:
    Life();
    void Generate();
    int Check(int x, int y);
    void Print();
};
 
Life::Life()
{
    gen=0;
    for(int i=0; i<100; i++)
        for(int j=0; j<100; j++)
           cur[i][j]=next[i][j]=0;
    /* for(int i=0; i<100; i++)
        for(int j=0; j<100; j++)
            {   srand(time(NULL));
                cur[i][j]=rand()%2; } */
        cur[5][5]=1;
        cur[5][4]=1;
        cur[5][6]=1;
 
                
}
 
int Life::Check(int x, int y)
{
    int alive=0;
    int i=x, j=y;
    if (cur[i--][j--]) alive++;
    if (cur[i][j++]) alive++;
    if (cur[i][j++]) alive++;
    if (cur[i++][j]) alive++;
    if (cur[i][j-2]) alive++;
    if (cur[i++][j]) alive++;
    if (cur[i][j++]) alive++;
    if (cur[i][j++]) alive++;
    return alive;
}
 
void Life::Generate()
{
    int alive=0;
    gen++;
    for(int i=BEGIN; i<END; i++)
        for(int j=BEGIN; j<END; j++)
            if (!cur[i][j] && (((alive=Check(i,j))==2))) next[i][j]=1;
            else if ((cur[i][j] && (((alive=Check(i,j))>2)) || (cur[i][j] && (((alive=Check(i,j))<2))))) next[i][j]=0;
    for(int i=BEGIN; i<END; i++)
        for(int j=BEGIN; j<END; j++)
            cur[i][j]=next[i][j];
}
 
void Life::Print()
{
     HDC DC = GetDC(0);
    //printf("\nGeneration %d\n",gen);
    for(int i=BEGIN; i<END; i++)
         for(int j=BEGIN; j<END; j++)
            //   if (cur[i][j]) Rectangle(DC,i,j, 10+i,10+j);
                printf("cur[%d][%d]=%d\n",i,j,cur[i][j]);
    getch();
}
вопросы:
1) фигура из трех последовательных живых клеток должна быть стабильной и превращаться в вертикальную, а потом опять в горизонтальную. в качестве оси - центральная клетка.
не работает. отсюда вопрос - тут правильная математика сделана ?

2) как это можно графицировать? лучше использовать opengl, но как его использовать тут?

3) и как оптимизировать код? вроде можно использовать наследование... и хотелось бы, но нет идей что нужно наследовать.
нужна помощь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru