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

Крестики-нолики: как определить победителя? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамические массивы (вывести новую последовательность чисел C, где каждое из чисел C(i) = A(i) + B(N-1-i)) http://www.cyberforum.ru/cpp-beginners/thread723482.html
Пользователь вводит в программу через консоль две последовательности положительных целых чисел А и B, каждая из которых завершается нулем либо отрицательным числом. Программа выводит новую...
C++ Классы. Файлы. Топ файлов написать программу Создать класс File. Добавить метод, который считает сколько файлов на определённом диске. Создать метод Competition. Он показывает файлов какого типа больше всего, а также их кол-во. Метод... http://www.cyberforum.ru/cpp-beginners/thread723472.html
C++ Добавить RichEdit 2.0 в VS2012 (MFC)
Добавляю на диалоговое окно RichEdit 2.0 из списка компонентов - приложение после запуска сразу же закрывается. Проход по мейну идёт так буд-то бы я сразу нажал кнопку завершения приложения!...
C++ Dev C++
Подскажите с советом. Если программа написанно на Visual Studio 2012, а нужно открыть в Dev C++, подскажите, что поменять нужно чтоб работала
C++ Работа со структурами http://www.cyberforum.ru/cpp-beginners/thread723455.html
Есть код программы,к сожалению не мой,пытаюсь его понять но не все понятно. #include <iostream> #include <string.h> #include <iomanip> using namespace std; const int MAX_TRIPS = 10; struct...
C++ объясните пожалуйста эту программу #include <conio.h> #include <iostream> struct STUDENT { char fio; /* фамилия и.о. */ char oc; /* 5 оценок + '\n' + '\0' */ }; void main() { setlocale (LC_ALL, "Russian_Russia.1251");... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
08.12.2012, 19:41
Цитата Сообщение от owned Посмотреть сообщение
ValeryS, я тебя не сильно понял,
чавой ты не понял???
обнуление поля
C++
1
2
3
4
5
6
void clearPole()
{
for(int i=0;i<3;i++)
  for(int j=0;j<3;j++)
    pole[i][j]=10;
}
поставить крестик
C++
1
2
3
4
void SetCross(int i, int j)
 {
  pole[i][j]=1;
 }
поставить нолик
C++
1
2
3
4
void SetNull(int i, int j)
 {
  pole[i][j]=0;
 }
ну и так далее

Добавлено через 8 минут
Цитата Сообщение от owned Посмотреть сообщение
вот это .
а это просто мысли вслух
я не правильно привел пример возможна кореляция
вот так правильней лучше в шеснадсатеричке
0х0010 0х0020 0х0040
0х0100 0х0200 0х0400
0х1000 0х2000 0х4000
например у нас свободна 1(0х10) третья(0х40) пятая(0х200) и девятая(0х4000) ячейка
тогда сумма будет 0х4250
проверяем первую ячейку
if(summ&0x0010) не равно 0 свободна
вторую
if(summ&0x0020) равно 0 занято
третью
if(summ&0x0040) не равно 0 свободна
и так по всем 9

Добавлено через 5 минут
даже не так
0х0010 0х0020 0х0040
0х0080 0х0100 0х0200
0х0400 0х0800 0х1000
тогда заполнение
C++
1
2
3
4
5
6
void clearPole()
{
for(int i=0;i<3;i++)
  for(int j=0;j<3;j++)
    pole[i][j]=0x10<<(i+j*3);
}
Добавлено через 7 минут
проверка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int summ=0;
for(int i=0;i<3;i++)
  for(int j=0;j<3;j++)
    summ+=pole[0][i];
 if(summ&0x1FF==0)
     return -1;// нет пустых клеток
 if(summ&0x0070)// в первой строчке есть пустая клетка
      {
          if(summ&0x0010) 
                   // клетка 1
           if(summ&0x0020) 
                  // клетка 2
           if(summ&0x0040) 
                 // клетка 3
      }
..........................
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.