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

Как работать с графикой? - C++

Восстановить пароль Регистрация
 
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
22.11.2012, 16:44     Как работать с графикой? #1
Здравствуйте, у меня есть программа игры в крестики-нолики. Как сделать графическую часть? Подскажите пожалуйста..
Работаю в Dev-C++
Вот программа
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
char board[9]={};
 
void clrscr()
{
     for( int i=0;i<40;i++)
     {
          std::cout<<std::endl;
          }
}          
 void clearboard
 {
      for(int i=0;i<9;i++)
      {
              board[i]='-';
              }
 }
 
 bool has_won(char player)
 {
      int wins[][3]={{0,1,2},{3,4,5},{6,7,8},{0,3,6},
                     {1,4,7},{2,5,8},{0,4,8},{2,4,6}};
      for( int i=0;i<8;i++)
      {int count=0;
           for( int j=0;j<3;j++)
           {if(board[wins[i][j]== player) count++;
            }
            if(count==3){return true;}
            }
            return false;
            }
                                       
void print_board(std::string indent)){
  std::cout<<" Game board: \n"<<std::endl;
  std::cout<<indent<< "-"<<board[6]<<"-|-"<<board[7]<<"-|-"<<board[8]<<"-\n";
  std::cout<<indent<< "-"<<board[3]<<"-|-"<<board[4]<<"-|-"<<board[5]<<"-\n";
  std::cout<<indent<< "-"<<board[0]<<"-|-"<<board[1]<<"-|-"<<board[2]<<"-\n";
}  
int get_move(){
  std::cout<<" Move option: \n";
  std::cout<<"-7-|-8-|-9-"<<std::endl;
  std::cout<<"-4-|-5-|-6-"<<std::endl;
  std::cout<<"-1-|-2-|-3-"<<std::endl;
  std::cout<<"\n\n";
  
 print_board("");
  std::cout<<"\n Your move: "; 
  
  int move;
  std::cin>>move;
  while( move>9||move<1||board[move-1]!='-')
 { 
         std::cout<<"Please enter a legal move (1-9): \n"; 
         std::cin>>move;
  }
  return move;
}
 
char play_and_get_winner()
{ int turn=1;
     while(!has_won('X')&&!has_won('0')
{    clrscr();
     int move=get_move();
      std::cout<<"The move you entered is: "<<move<<std::endl;
 if(turn%2==1)
 {
           board[move-1]='X';
           if (has_won('X'))
           { std::cout<<"Congratulations player X. You have won!\n";
           return 'X';
           }
           }
 else
 {
     board[move-1]='0';
       if (has_won('Y'))
           { std::cout<<"Congratulations player Y. You have won!\n";
           return '0';
           }
     }     
     turn++;
     if(turn==10)
     {std::cout<<"\t     It is a draw!\n";}
     }
     }
 
int main(int argc, char *argv[])
 
{    clearboard();
 char winner=play_and_get_winner();
      std::cout<<"\nThe final board layout is \n";
 print_board("\t");
   
    system("PAUSE");
    return EXIT_SUCCESS;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
22.11.2012, 17:02     Как работать с графикой? #2
ну если делать по человечески, то нужно использовать бесплатный графический движок OpenGL, например www.irrlicht.ru . Хотя его критикуют за тормознутость, но для новичков это не заметно. я понимаю что игра 2d но 3d движки адаптированы и под 2d графику.
Ну или просто Qt использовать.

Добавлено через 9 минут
Qt вроде попроще для понимания
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.11.2012, 17:03     Как работать с графикой? #3
Самое простое
winAPI/OpenGL(DirectX)
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
22.11.2012, 17:06  [ТС]     Как работать с графикой? #4
никогда не слышала о Qt надо разбираться..

Добавлено через 2 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Самое простое
winAPI/OpenGL(DirectX)
а где можно найти описание? функции, как и что писать, задавать?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
22.11.2012, 17:13     Как работать с графикой? #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Самое простое
winAPI/OpenGL(DirectX)
у меня на линухе итак игр мало, хотите меня ещё без крестиков-ноликов оставить?

имхо лучше Qt, она будет долго разбираться с winAPI/OpenGL
Логика приложения
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
22.11.2012, 17:15     Как работать с графикой? #6
В Dev: поиск библиотек, OpenGL. freeglut качайте, потом при создании проекта указывайте, что будете работать с графикой, конкретно с этой либой. А что да как посмотрите в туториалах для новичков в интернете, оных навалом.

Добавлено через 38 секунд
XRuZzz, кинуть тебе змейку?)
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
22.11.2012, 17:16     Как работать с графикой? #7
Видеозаписи с нашего Qt-тренинга для начинающих это я кинул ссылки из гугла по запросу крестики нолики Qt
вы смотрите внимательно там как раз урок про крестики нолики есть

Не по теме:

не ну у меня там 3 вида змейки стоит(даже в 3d есть)

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 17:24     Как работать с графикой?
Еще ссылки по теме:

Microsoft visual c++ как работать с графикой? C++
C++ Как работать с указателями и как работать с ссылками
C++ Как рисовать фрактальной графикой в консоли?

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

Или воспользуйтесь поиском по форуму:
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
22.11.2012, 17:24  [ТС]     Как работать с графикой? #8
Цитата Сообщение от XRuZzz Посмотреть сообщение
Видеозаписи с нашего Qt-тренинга для начинающих это я кинул ссылки из гугла по запросу крестики нолики Qt
вы смотрите внимательно там как раз урок про крестики нолики есть

Не по теме:

не ну у меня там 3 вида змейки стоит(даже в 3d есть)

Спасибо за ссылку)
Yandex
Объявления
22.11.2012, 17:24     Как работать с графикой?
Ответ Создать тему
Опции темы

Текущее время: 13:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru