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

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

» Программирование
Не работает как надо, не выводит ничего на доску и игра заканчивается после первого хода. Пробовала всё из play перекинуть в main, но тогда выводятся только нолики. Уже даже не знаю как мне быть
""
#include <iostream>
#include <Windows.h>
using namespace std;

Читать далее...
Meddin #1 - 2 месяца назад 0
Doc, именно так и было. Мне лично удобнее сразу по ходу дебага записывать результаты и смотреть, проходит ли работа по задуманному мною сценарию. То есть по ходу работы программы я еще и сам просчитываю ее на листке, чтобы убедиться, что все в коде происходит верно. Если же нет, я помечаю для себя проблемное место, обдумываю как пофиксить, фикшу, снова дебажу и так до тех пор, пока моя программа не будет работать верно.
Doc #2 - 2 месяца назад 6
По-моему он все же имел в виду работу с дебаггером, а ручку с листочком только как вспомогательное.
nvc123 #3 - 2 месяца назад (отредактировано ) 0
Meddin, разжигать огонь можно изи с помощью трения палки об палку
вот только всё же лучше использовать зажигалку или спички
вариант листочек с ручкой в основном используют студенты в лабах когда надо сдать и забыть ибо лень учиться как делать по нормальному
или если в языке нету нормальных средств отлова ошибок для записи их в лог (например jass)
у большинства прогеров по умолчанию в дебаг версии включена запись лога
да и в релизной тоже
prog #4 - 2 месяца назад 6
biridius, раздел QA это не раздел "сделайте все за меня", а ты взял и все сделал сам вместо автора вопроса, не надо приучать людей к плохим привычкам! Достаточно было бы указать на проблемы, причем желательно по одной-две за раз, чтобы не перегружать информацией и дать автору шанс самостоятельно найти следующую проблему после решения предыдущей, а готовый код выложить только если это что-то совсем срочное и нет другого выбора.
biridius #5 - 2 месяца назад (отредактировано ) 2
turn++ делается в цикле который выполняется 10 раз после ввода, поэтому номер хода достигает числа 9 и т.к. проверка на win возвращает false выходит ничья
там где проверка на вин, всегда будет возвращать false потому что после первой же итерации (j=0) будет проверка что count==3, а он никак не может быть равен 3 на первой итерации. return false должен быть после обоих циклов for
» code
#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;
}
вроде работает как надо
Meddin #6 - 2 месяца назад 0
вообще подобные проблемы изи решаются без лога. просто дебаг и листочек с ручкой. поэтому мне и не охота жестко учить джасс потому что там нет адекватного дебага в отличие от нормальных яп. Считаю что логи необходимы в действительно замысловатых случаях например в рекурсивных функциях с множеством действий и с действительно большим вызовом рекурсии.
nvc123 #7 - 2 месяца назад 0
можно сделать дебаг
лучше писать в лог и кинуть его сюда
и у тебя get_move(); вызывается дважды
prog #8 - 2 месяца назад (отредактировано ) 2
Мышкоблудка, аналогичных мест в коде было больше одного... да, уже вижу, что все поправлены
upd: нашел еще одну проблему - лишний цикл, из-за которого один ход считается за 10
Мышкоблудка #9 - 2 месяца назад 0
prog, переделала, но всё равно ничего не изменилось, разве что теперь ничью выводит
prog #10 - 2 месяца назад (отредактировано ) 0
первое что бросается в глаза: get_move(); вызывается один раз до цикла, без обработки результата, это ок?
if (has_won('O'))
	cout << "Выиграл игрок 'O'!\n";
return 'O';
Это точно должно быть так? тут return вне ифа получается т.к. скобок нет
1

Joomla Меню с разными классами?

» Программирование
Как реализовать php условие для joomla 3
пример: если условие главное меню находится внутри позиции 1 то добавить ему класс Top-Menu
иначе добавить класс Sidebar
как такое реализовать?
или лучше через
функцию modChrome_ сделать?
Max_Pudge #1 - 9 месяцев назад 0
кто-нибудь подскажет код?
3

Joomla не правильно отображает футер

» Программирование
здравствуйте, я начинающий программист joomla, короче я создал footer, который отображается нормально во всех страницах, кроме страницы модуля com_content - главная страница меню со многими материалами которые имеют читать подробнее, там футер приподнимается вверх и клеется к последнему материалу из главной страницы?
и еще я умею писать и исправлять css, но в данной ситуации я ни че не нашел, уже голову ломаю как 12 часов?
alexprey #1 - 9 месяцев назад 0
логично, что проблема именно в том модуле, добавь в тот модуль margin-bottom
ssbbssc #2 - 9 месяцев назад 0
вопрос гугл писал походу
Max_Pudge #3 - 9 месяцев назад 0
забыл уточнить если поменять класс
.footer
{
на margin-top: 40px;
}
то footer на главной странице будет нормально отображатся, но это повлияет на всех других страниц футеров, а мне надо чтоб только на главной приподнималась футер на пару пикселей,
2

HTML+CSS

» Программирование
как создать всплывающее меню выпадающей окношкой? Еще при выделении текста, текст должнен полностью покраситься в например синий цвет...
AlexSan #2 - 11 месяцев назад 4
Я ничего не понял
4

Руководство Пользователя GLFW.Глава 1 и Глава 2.

» Программирование
Первая и вторая глава переведенного Руководства Пользователя GLFW

Читать далее...
LeikyS #3 - 1 год назад 0
aversilov:
Прошу прощения, а где архив с файлами, прикреплённый к статье?
Статья вышла три года назад, может когда-то и был прикреплённый архив
aversilov #4 - 1 год назад 0
Прошу прощения, а где архив с файлами, прикреплённый к статье?
6

Нужны ли статьи по C++/OpenGL

» Программирование
Нужны ли статьи по C++/OpenGL? Что-то типа основ C++ и простенькой 2D игры на OpenGL
WarSC #1 - 1 год назад 0
Валяй
Zahanc #2 - 1 год назад 3
Я бы почитал о многопоточности в C++ по новым стандартам
BrEd Pitt #3 - 1 год назад 1
Да
ELB359 #4 - 1 год назад 1
Определенно нужны!
LeikyS #5 - 1 год назад 5
PrincePhoenix:
Конечно нужны) По инету неудобно рыскать) А так бы в один ресурс
Ну раз нужны напишу :D Если найдутся люди которым это интересно.. А так я думаю, что статьи я напишу ближе к середине мая. Примерно в 15-25 числах
PrincePhoenix #6 - 1 год назад 1
Конечно нужны) По инету неудобно рыскать) А так бы в один ресурс
88

Главная страница

» Программирование
Данный проект ориентирован на публикацию статей по технологиям и алгоритмам, присущим программированию в целом, и относящимся не только к геймдеву (например, языки программирования)

Читать далее...
Oneiros #70 - 1 год назад (отредактировано ) 0
Тогда че умничаешь? :)
XD Просто так :P А вообще неплохой ресурс, для подтягивания начальной мат.части, которой многим спорщикам и не хватает. Другое дело, что они постоянно пополняют свои бесплатные курсы и видеокурсы, но мне они уже неактуальны и я за ними не слежу, т.к. ИНТУИТ полезен больше тем, кто начинает обучатся и знакомится со всем этим. А так смотрю они уже и по робототехнике и игрострою чего-то выложили )))
LeikyS #71 - 1 год назад 0
romandviski:
статьи по с++ надо -)9

Пфф.. Сразу без разбора OpenGL или DirectX
romandviski #72 - 1 год назад 0
статьи по с++ надо -)9
Mihahail #73 - 1 год назад 0
Годных статей там хватает.
А дэбилы есть везде.
Аудитория там хоть и специфичная, но более хорошая, чем тут, если мы говорим о сложных технических статьях.
GeneralElConsul #75 - 1 год назад 0
Praytic:
Devion:
Mihahail, в моих глазах хабр - это типа "пикабу", только для задротов.
Дрочка на карму - жесть.
Ну и что? Ресурс то сам по себе очень полезный, там уже куча полезный туториалов скопилось, материалов там всяких, которые можно загуглить при надобности. Лучше уж заливать туда свои статьи, чем в какой-то другой менее популярный ресурс, если хотите, чтобы его увидело как можно больше людей. Другой вопрос какой фидбек вы хотите получить от своей работы.
Ну это да, но на самом деле, когда тебе надо что-то сделать и ты начинаешь читать там ресурсы по теме, понимаешь, что некоторые статьи там, так скажем, сомнительные, недосказанные, где-то и копипаста вообще. Но в общем норм.
Praytic #76 - 1 год назад (отредактировано ) 0
Devion:
Mihahail, в моих глазах хабр - это типа "пикабу", только для задротов.
Дрочка на карму - жесть.
Ну и что? Ресурс то сам по себе очень полезный, там уже куча полезный туториалов скопилось, материалов там всяких, которые можно загуглить при надобности. Лучше уж заливать туда свои статьи, чем в какой-то другой менее популярный ресурс, если хотите, чтобы его увидело как можно больше людей. Другой вопрос какой фидбек вы хотите получить от своей работы.
Devion #77 - 1 год назад 0
А не проще просто давать попутно ссылки на тот же intuit, правда я уже давненько не заглядывал в их бесплатные лекции и не смогу точно поручится за наличие материала.
Тогда че умничаешь? :)
Oneiros #78 - 1 год назад 0
Беда в другом.
Есть темы про которые писать интересно, но чтобы о них написать нужно написать про овер9000 тривиальных тем, которые не интересны. Хотя помню так задрали по реляционным БД, что отправил читать Дейта и в догонку изучать системный структурный анализ - такой объем инфы уже неопишешь, т.к. это уже курсами назвать можно будет.
А не проще просто давать попутно ссылки на тот же intuit, правда я уже давненько не заглядывал в их бесплатные лекции и не смогу точно поручится за наличие материала.
Другой фактор что всегда появляются люди, которые начинают апеллировать к личности автора.
Ну и пусть катятся колбаской. Я честно в своё время больше забил писать что либо, по третей причине - народ привыкает к халяве и на тебя сваливают вообще всё.
Devion #79 - 1 год назад 1
Mihahail, в моих глазах хабр - это типа "пикабу", только для задротов.
Дрочка на карму - жесть.
Mihahail #80 - 1 год назад (отредактировано ) 0
Devion, но ведь это в том числе проблема аудитории.
Почему бы не писать всякие интересные штуки на хабр?
Devion #81 - 1 год назад 5
Беда в другом.
Есть темы про которые писать интересно, но чтобы о них написать нужно написать про овер9000 тривиальных тем, которые не интересны. Иначе твое чтиво никто не поймет, все равно что говорить со стеной.
"Был один" - очевидно ты про меня. Так вот я паблишу иногда всякую тривиальную штуковину.
Тяжелые темы как я сказал писать смысла нет. Например, я писал про нативную сериализацию (которая относительно проста и известна), но даже на нее в итоге людей унесло в другую сторону куда-то. Вот и вопрос, а хочется ли писать.
Другой фактор что всегда появляются люди, которые начинают апеллировать к личности автора. Из-за этого руки опускаются рассказывать даже про те темы, на которые хватает терпения.
alexprey #82 - 1 год назад 0
nvc123, вот ты попробуй статью написать. Сразу поймешь почему не пишут. Потому что это минимум дня 3-4 надо потратить.
Praytic #83 - 1 год назад 0
при чем тут не хотят? кто такую глупость сказал? на митапах все нормально делятся и вопросы им задавать можно (если по делу), просто у нормальных разрабов на эти статейки времени нет, да и зачем, если уже это давно написали по 100 раз.
nvc123 #84 - 1 год назад 0
вообще большинство хороших разрабов не хотят делится своими знаниями
и это обидно
хотя и понятно
если каждый нуб будет уметь то что умеет про то можно выгнать этого про и взять нуба за пол зарплаты
а это нафиг никому не надо
Praytic #85 - 1 год назад 0
Ну хорошо, можно посмотреть. Только у нас тут был уже один, как-то новый статей от него нет.
nvc123 #86 - 1 год назад 0
Praytic, пусть пишет про основы
как показывает практика те кто пишут про основы при попытке написать чтото посложнее пишут такой бред что лучше бы они писали основы
Praytic #87 - 1 год назад 0
Не стоит писать основы. Обычно, как показывает практика, на этом все и заканчивается. Этих основ в интернете завались по самую голову. Лучше сразу по делу.
LeikyS #88 - 1 год назад 0
Это хорошо.. Надеюсь вечерком уже можно будет статью прочитать
6

C# Для психов или извращенцев?

» Программирование
В данной статье автор начнет с основ C#, поведает о том какими различными способами консоль умеет здороваться, да и о самой консоли. Автор будет рад если ты прочтешь это безумие :D.

Читать далее...
VessTER #1 - 1 год назад 0
kano:
Простите, я может не совсем правильно понял, но какова суть статьи ? Обучение или своего рода насмешка над языком ?
Данная статья не обучающая, и не является насмешка над языком.
Я задумывал показать читателям какими способами можно вывести "Привет мир" на консоль. Но получился кратки обзор языка. (Да лапша это, я уже пилю вторую статью про классы, вот она для обучения будет годной)
Да способ подачи крайне сложен, но я красным уже написал.
kano #2 - 1 год назад 0
Простите, я может не совсем правильно понял, но какова суть статьи ? Обучение или своего рода насмешка над языком ?
LeikyS #3 - 1 год назад 1
VessTER:
Mihahail, Вы читаете мои мысли! У меня есть идея написать о наследование и как оно реализовано в C#, а эксперименты c "craziness" больше не будет.
Удачи. По больше пишите статей)
VessTER #4 - 1 год назад 0
Mihahail, Вы читаете мои мысли! У меня есть идея написать о наследование и как оно реализовано в C#, а эксперименты c "craziness" больше не будет.
Mihahail #5 - 1 год назад 2
Напиши лучше продолжение вот этого: xgm.guru/p/programms/very-fast-c-sharp-1
И лучше без этой показушной "craziness".
LeikyS #6 - 1 год назад 1
Для начинающих будет сложновато и даже я пару раз на несколько секунд притупил, но для начала пойдёт
Мда, а до меня и не доходили мысли типа
char[] CrazyWorld = new char[]
Надо будет запомнить :)
46

Полезная литература

» Программирование
Данная страница содержит полезную информацию для обучения разным языкам программирования и технологиям.
Страница обновляется путем выкриков в комментарии.

Читать далее...
Themis #46 - 1 год назад 0
Упомянутая книга Лафоре мне не понравилась. В каждой теме не написано что-то важное.
И для новичков и для середнячков я рекомендую начать с Эккель философия C++ ;
после нее читать Полный справочник по C++ (Шилдт Г.)
и Дьюхерст C++ священные знания.