TheDarkestRed TheDarkestRed

Новое окружение ⛰ 🌲 🌳 🎮

Rummy_Games Rummy_Games

Доброго субботнего вечера! Сегодня мы ходим поделиться наработками нашего 3D-моделлера в рамках #saturdayscreenshot. А также кратко делимся ЛОРом игры.

...
TheDarkestRed TheDarkestRed

Карта мира The Darkest Red 🎮 🐺 🤺 🌍 🗺 ⛰

TheDarkestRed TheDarkestRed

Обновили поведение камеры и механики боя 🎮 🤺 🧟 🎥

Rummy_Games Rummy_Games

Доброго субботнего вечера! Сегодня мы поделимся с вами видео процесса разработки одного из противников (“Роя”) в нашей игре, в рамках #saturdayscreenshot, а также кратко делимся ЛОРом игры.

...
mushroom_queen mushroom_queen

Jusper, спасибо за комментарий! старалась писать нескучно))

Jusper Jusper

Моя любимая фаза разработки любой игры!
Отлично написано, посмеялся местами от души. Спасибо!

Jusper Jusper

Мета-геймплей, конечно будет крыться в фишечках-рюшечках вроде уникальных корпусов и компонентов, которые позволят делать виражи на куражах.

Не вижу пока, как в такое управление впихнуть боевку.

Jusper Jusper

PallSwarrow
Что ж я поиграл. Пока это не игра про пиратов, а игра про навигацию парусами. Это скорее пока в плюс, потому что управление мне понравилось, но боюсь, что весь игровой фокус сейчас только в этом...

...
id44474404 id44474404

В Княжествах Онлайн снова появились анимации, они синхронизируются с сервером и работают реалистично, т.е. нанесение урона или получение ресурсов происходит в тот момент, когда это соответствует анимации...

...
TheDarkestRed TheDarkestRed

Экспериментируем с рэгдолами 🎮🧟🤺🐺

lehha95 lehha95

Открыли страницу в Steam! Добавляйте в список желаемого!

https://store.steampowered.com/app/1355780/

romandviski romandviski

Спасибо, добрый человек.

Rummy_Games Rummy_Games

Доброго субботнего вечера! Сегодня мы поделимся с вами видео процесса разработки одного из противников (“Роя”) в нашей игре, в рамках #saturdayscreenshot, а также кратко делимся ЛОРом игры.

...
id44474404 id44474404

Всем привет!
Функционал авторитарного сервера продолжает восстанавливаться до уровня, который был на фотон клауде. На этой неделе стало возможным убийство мобов, и получение с них опыта, и прокачка персонажа...

...
Jusper Jusper

В GMS сильно поменялась структура функционала, но не все корректно мигрируется из старых проектов. Если тебе не критичны новинки, то переходить на него стоит только с новым проектом.

Kazirath Kazirath

Насколько я понял проще установть последнюю версию перед 2.3 и продолжить работать под ней. Новинка не стоит свеч после переделки скриптов

Kazirath Kazirath

Это совсем не радостная новость. Меня вполне устраивал функционал старой работы скриптов и я даже выработал некоторую систему, которая позволяла через скрипты настраивать работу объектов и прочего. Принудительная же переделка в функции у меня не сработает из за структур некоторых скриптов...

...
alexprey alexprey

Учитывая то, что написано в данной статье обратно включить это не получится и придется действительно обернуть код скриптов в функции.

Кратко из документации:

  • Раньше скрипты были индивидуальными и изолированными
  • ...
  • ...
  • ...
  • ...
...
PallSwarrow PallSwarrow

Спасибо за комменты, оч приятно)
Про ссылку тупанул - пока разбираюсь с сайтом)

Логотип проекта Программирование

Крестики-нолики на C++

Не работает как надо, не выводит ничего на доску и игра заканчивается после первого хода. Пробовала всё из play перекинуть в main, но тогда выводятся только нолики. Уже даже не знаю как мне быть

#include <iostream>
#include <Windows.h>
using namespace std;

char board[9] = {'-','-', '-', '-', '-', '-', '-', '-', '-'};//массив поля

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 < 2; j++)
		{
			if (board[wins[i][j]] == player);
			count++;
			if (count==3)
				return true;
			else
				return false;
		}
	}

}

void print_board()//вывод поля
{
	cout << "Игровое поле\n";
	cout << "-" << board[6] << "-|-" << board[7] << "-|-" << board[8] << "-\n";
	cout << "-" << board[3] << "-|-" << board[4] << "-|-" << board[5] << "-\n";
	cout << "-" << board[0] << "-|-" << board[1] << "-|-" << board[2] << "-\n";
	cout << "Ваш ход:\n";
}

int get_move()
{
	system("cls");
	setlocale(0, "ru");
	//подсказка
	cout << "Управление\n";
	cout << "-7-|-8-|-9-\n";
	cout << "-4-|-5-|-6-\n";
	cout << "-1-|-2-|-3-\n";
	cout << endl;

	print_board();

	int move;
	cin >> move;
		while (move > 9 || move < 1 || board[move - 1] != '-') //проверка введённого числа
		{
			cout << "Ведите правильное число (1-9)\n";
			cin >> move;
		}
		return move;
	
}

char play()//игра и проверка комбинаций
{
	
	int turn = 0;
	while (!has_won('X') && !has_won('O'))
	{
		get_move();
		int move = get_move();
		for (int i = 0; i < 10; i++)
		{
			if (turn % 2 == 0)
			{
				board[move - 1] = 'X';
				if (has_won('X'))
				{
					cout << "Выиграл игрок 'X'!\n";
					return 'X';
				}
			}
			else
			{
				board[move - 1] = 'O';
				if (has_won('O'))
				{
					cout << "Выиграл игрок 'O'!\n";
					return 'O';
				}
			}

			turn++;
			if (turn == 9)
			{
				cout << "Ничья :(\n";
				return 'D';
			}
		}
	}

}

		void main()
		{
			system("Title TicTacToe");
			system("color 2");

			play();
		}

Ответ

turn++ делается в цикле который выполняется 10 раз после ввода, поэтому номер хода достигает числа 9 и т.к. проверка на win возвращает false выходит ничья

там где проверка на вин, всегда будет возвращать false потому что после первой же итерации (j=0) будет проверка что count==3, а он никак не может быть равен 3 на первой итерации. return false должен быть после обоих циклов for

#include <iostream>
using namespace std;

char board[9] = {'-','-', '-', '-', '-', '-', '-', '-', '-'};//массив поля

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 <= 2; j++)
		{
			if (board[wins[i][j]] == player)
				count++;
			if (count==3)
				return true;
		}
	}
	return false;
}

void print_board()//вывод поля
{
	cout << "Игровое поле\n";
	cout << "-" << board[6] << "-|-" << board[7] << "-|-" << board[8] << "-\n";
	cout << "-" << board[3] << "-|-" << board[4] << "-|-" << board[5] << "-\n";
	cout << "-" << board[0] << "-|-" << board[1] << "-|-" << board[2] << "-\n";
	cout << "Ваш ход:\n";
}

int get_move()
{
	system("cls");
	setlocale(0, "ru");
	//подсказка
	cout << "Управление\n";
	cout << "-7-|-8-|-9-\n";
	cout << "-4-|-5-|-6-\n";
	cout << "-1-|-2-|-3-\n";
	cout << endl;

	print_board();

	int move;
	cin >> move;
		while (move > 9 || move < 1 || board[move - 1] != '-') //проверка введённого числа
		{
			cout << "Ведите правильное число (1-9)\n";
			cin >> move;
		}
		return move;
	
}

char play()//игра и проверка комбинаций
{
	
	int turn = 0;
	while (!has_won('X') && !has_won('O') && turn < 9)
	{
		int move = get_move();
			if (turn % 2 == 0)
			{
				board[move - 1] = 'X';
				if (has_won('X'))
				{
					cout << "Выиграл игрок 'X'!\n";
					return 'X';
				}
			}
			else
			{
				board[move - 1] = 'O';
				if (has_won('O'))
				{
					cout << "Выиграл игрок 'O'!\n";
					return 'O';
				}
			}

			turn++;
	}
				cout << "Ничья :(\n";
				return 'D';
}

int _tmain(int argc, _TCHAR* argv[])
{
	system("Title TicTacToe");
	system("color 2");

	play();
	int a;
	cin >> a;
	return 0;
}

вроде работает как надо

Смотрите также:


Комментарии



  • 1
  • 2 (Текущая страница)

решение задачи 6-ти годичной давности ?

  • 1
  • 2 (Текущая страница)

Возможность добавлять комментарии была ограничена