Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 17:11   #1
Kamilius
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 23
Восклицание 2d массив. Попытка прорисовать через switch.

MS Visual Studio 2008, win32 console application.
Сегодня задали сделать игру "Крестики нолики". Возникла проблема на этапе прорисовки поля с использованием конструкции "switch". Уверен, что если сделаю то же, но с использованием If - всё получится, но интересует почему не работает именно этот код:
Код:
#include <iostream>
#include <windows.h>

using namespace std;

const int p=11;  //размер массива
int mas[p][p]=  
{
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}
}; // массив заполнен в виде игрового поля для крестиков и ноликов

void draw_field()  // функция прорисовки поля символами
{
	for (int i=0;i<p;i++)
		for (int j=0;j<p;j++)
		{
			switch(mas[i][j])  //попытка прорисовки поля конструкцией switch.
				case 0:
					cout << " ";
					break;
				case 1:
					cout << "|";
					break;
				case 2:
					cout << "-";
					break;
				case 3:
					cout << "+";
					break;
		}
			
}
void main ()
{
	draw_field();
}
Вовремя попытки компиляции выдает следующие ошибки:

Error 1 error C2046: illegal case - три штуки, относящиеся к строкам:
case 1:, case 2:, case 3:.

Помогите пожалуйста разобраться в поведении switch в данном случае. И почему обозначило ошибками кейсы с 1-3, а ноль - считает правильным?.
Kamilius вне форума Ответить с цитированием
Старый 01.03.2012, 17:21   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Код:
switch( expression )
{
[case constant-expression:]
. . . 
[statement]
. . . 
[default:
statement] 
}
Соблюдаем синтаксис.
EUGY вне форума Ответить с цитированием
Старый 01.03.2012, 17:24   #3
Kamilius
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Соблюдаем синтаксис.
Спасибо большое, недоглядел.
Kamilius вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Попытка чтения защищенной памяти Cannibal Общие вопросы C/C++ 1 06.11.2011 15:16
С# picturebox попытка№2 mactepmac Помощь студентам 3 11.10.2011 10:06
надо сделать дек через массив и через список. CHUCKe Помощь студентам 4 20.11.2010 17:23
переопределение методов. попытка 1 The Best Общие вопросы .NET 0 20.01.2010 18:21
обратиться к функции через " switch case " B@R@B@$HK@ Общие вопросы C/C++ 4 09.06.2009 19:15