Раздел «Язык Си».ClassTictac:

REFACTOR Задача про "крестики-нолики"

Нужно написать все функции класса Tictac и запустить программу так, чтобы можно бфло играть вдвоем в "крестики-нолики" ("tic-tac")

#include <iostream>
#include <cstdlib>

using namespace std;
/*
 Игра крестики-нолики. 
Поле для игры:
. . .
. . .
. . .
Первый игрок ставит Х в любую клетку, второй ставит 0 в свободную клетку.
Первый ставит только Х, второй - только 0.
Ставить свой символ в занятую клетку нельзя.
Выигрывает тот, кто может поставить три символа подряд по горизонтали:
000 или ххх,
по вертикали:
0     х
0 или х
0     х
по диагонали
0           0     х          х
 0  или    0  или  х  или   х
  0       0         х      х

Программа должна:
1. приглашать игроков
2. получать номер клетки, в которую ставить символ
3. печатать поле после каждгого хода
4. проверять кто выиграл после каждого хода
5. позволить игрокам сделать 9 ходов, но если один игрок выиграл, пишет
   сообщение и прерывает игру.
*/
class Tictac{
/* 
поле для игры. Всместо 0 запоминаем -1, вместо х запоминаем 1,
пустая клетка - 0
*/
  int pole[9]; 
// номер игрока, который должен делать ход (1 или 2)
  int gamer;
// количество ходов
  int n;
public:
// начало игры: gamer=1, n=0
     Tictac();
// очищает поле для начала игры, gamer=1, n=0
     void start();
// печать поля: пустая клетка - . (точка), 
// поставленные символы: 0 и х 
     void printPole();
// проверяет выигрыш, если  выиграли х возвращает 1,
// если выиграли 0 возвращает -1, если ничья, 0, 
// если можно еще делать ходы, возвращает 10
     int checkWin();
//пишет приглашение игроку с нужным номером
// и считывает с клавиатуры номер клетки, 
// в которую ставить символ
// если такой клетки нет (номер меньше 1 и больше 9)
// или она уже занята
// возвращает 0
// если можно сделать ход, возвращает 1
     int getTurn();

};

Tictac::Tictac(){
  for(int i=0;i<9;i++)
    pole[i]=0;
   gamer=1;
   n=0;
};
void Tictac::start(){
  for(int i=0;i<9;i++)
    pole[i]=0;
   gamer=1;
   n=0;
};
void Tictac::printPole(){
// здесь нужно написать код
};
int Tictac::getTurn(){
// здесь нужно написать код
// Поле нужно печатать после каждого хода
};

int Tictac::checkWin(){
// здесь нужно написать код};

int main(){
  Tictac game; // игра
// печать поля

  game.printPole();
  int win;// переменная для победителя

// Играем пока checkWin() позволяет делать ход
  while((win=game.checkWin())==10){

//  проверка правильности хода 
    if(!game.getTurn()){
     cout<<" не туда"<<endl;
     
    }
  }

  cout<<"игра окончена,"<<endl;

// Проверка кто выиграл
  switch (win){
  case 1:cout<<" выиграл первый(Х)"<<endl; break;
  case -1:cout<<" выиграл второй(О)"<<endl; break;
  case 0: cout<<" ничья "<<endl;
  }
};

REFACTOR Задача про палочки

На столе 11 палочек. Играют двое. Ходят по-очереди. Каждый может взять от одной трех палочек. Ход пропускать нельзя. Проигрывает тот, кто взял последнюю палочку.

Придумать класс Eleven и функции для него, чтобы играть в палочки -- TatyanaOvsyannikova2011 - 16 Dec 2015