Задача про "крестики-нолики"
Нужно написать все функции класса
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;
}
};
Задача про палочки
На столе 11 палочек. Играют двое. Ходят по-очереди.
Каждый может взять от одной трех палочек.
Ход пропускать нельзя. Проигрывает тот, кто взял последнюю палочку.
Придумать класс
Eleven и функции для него, чтобы играть в палочки
--
TatyanaOvsyannikova2011 - 16 Dec 2015