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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 18:57   #1
bobby2008
Пользователь
 
Аватар для bobby2008
 
Регистрация: 13.04.2009
Сообщений: 37
По умолчанию Игра "Быки и коровы"(Паскаль)

Здравствуйте, очень нужна консультация по поводу курсовой работы. Пока еще не начинал ее писать, потому что не знаю, как делать лучше. Задача курсовой работы заключается в следующем: написать игру "Быки и коровы". Алгоритм элементарный, то есть в обыкновенном текстовом режиме я его уже написал, НО нужно сделать меню(в нем должно быть несколько пунктов, типа новая игра, выход, правила и т.д.), и игру в графическом режиме. Не знаю как это реализовать. Нужно постоянно переходить из графического в текстовый и обратно?
bobby2008 вне форума Ответить с цитированием
Старый 04.05.2009, 19:06   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Например, во Free Pascal при переходе в графический режим открывается отдельное окно. А консоль остается.
Как в TP 7 не знаю, т.к. у меня там граф. режим не работает )

А вы не думали сделать игру в Делфи? Или нужно именно на паскале?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 19:12   #3
bobby2008
Пользователь
 
Аватар для bobby2008
 
Регистрация: 13.04.2009
Сообщений: 37
По умолчанию

Дело в том, что консоли как таковой не должно быть вообще, то есть запускаешь - имеешь менюшку, в которой выбираешь нужный пункт и в соответствии с этим получаешь другое окошко - начало игры, правила и т.д. А по поводу делфи, то я только начинаю программировать, и ничего кроме Паскаля не знаю(та и его я толком не знаю...) Поэтому все-таки нужно делать в Паскале...

Последний раз редактировалось bobby2008; 04.05.2009 в 19:14.
bobby2008 вне форума Ответить с цитированием
Старый 04.05.2009, 19:20   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А по поводу делфи, то я только начинаю программировать, и ничего кроме Паскаля не знаю(та и его я толком не знаю...)
Делфи похож на паскаль (из него, собственно, и появился).

А там разве нельзя прямо в графическом режиме писать readln(n)...и прочее?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 19:59   #5
bobby2008
Пользователь
 
Аватар для bobby2008
 
Регистрация: 13.04.2009
Сообщений: 37
По умолчанию

Да вроде как работает. Начал делать только, сразу вопрос возник - смотрите, можно ли так сделать: меню ---новая игра---начинается игра:пользователю пишет "Input your number"(где-то сверху) дальше пользователь вводит число, далее readln(n)и вывожу в определенное поле его число нарисованное в граф режиме;далее сравниваю n с заданным и вывожу нарисованную корову либо быка в зависимости от числа и так далее да выигрыша или проигрыша?
bobby2008 вне форума Ответить с цитированием
Старый 04.05.2009, 20:15   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Думаю, можно. Правда, не очень понял, в чем заключается сам вопрос )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 12:28   #7
bobby2008
Пользователь
 
Аватар для bobby2008
 
Регистрация: 13.04.2009
Сообщений: 37
По умолчанию

По ходу работы появляются дополнительные проблемы...Нужна ваша помощь.
1) Как сделать, чтобы при вводе чисел эти числа выводились только в нужную строчку, а не как у меня - в нужную строчку и левый верхний угол?
2) Как перевести стринг в интеджер и обратно? Просто ауттекстом выводит только стринги, поэтому и читаю стринг, а работать нужно с числами.
3) Есть у меня рисунок из пикселей(на листке в клетку нарисовал голову быка и корову). Как это нарисовать в паскале тоже разберусь, а вот чтобы оно двигалось, не знаю как сделать. Что можете посоветовать?
4) как обрабатывать ошибки вручную, то есть я ввожу символы, читаю число, как сделать, так, что когда пользователь вводил не цифры, а буквы, то программа не вылетала, а писала бы типа "неверный ввод"?

Заранее всем ОГРОМНОЕ СПАСИБО. Вот мой код:
Код:
Uses	Graph;
Var	Gd,Gm,i:Integer;
	s:string;

begin
Gd:=Detect;
InitGraph(Gd,Gm,'');


setbkcolor(green);
setcolor(blue);

setlinestyle(0,0,3);

line(1,1,1,getmaxy);
line(1,1,getmaxx,1);
line(getmaxx-1,1,getmaxx-1,getmaxy);
line(1,getmaxy-1,getmaxx-1,getmaxy-1);
setcolor(red);
line(5,5,5,getmaxy-5);
line(5,5,getmaxx-5,5);
line(getmaxx-5,5,getmaxx-5,getmaxy-5);
line(5,getmaxy-5,getmaxx-5,getmaxy-5);
setcolor(blue);
line(9,9,9,getmaxy-9);
line(9,9,getmaxx-9,9);
line(getmaxx-9,9,getmaxx-9,getmaxy-9);
line(9,getmaxy-9,getmaxx-9,getmaxy-9);
setcolor(red);
line(11,75,getmaxx-11,75);
moveto(15,15);
settextstyle(0,0,3);
outtext('Input your');
moveto(70,50);
outtext('number!');
line(300,11,300,getmaxy-11);



for i:=1 to 13 do
begin
readln(s);
setcolor(red);
moveto(75,50+30*i);
outtext(s);
setcolor(blue);
line(11,75+30*i,getmaxx-11,75+30*i);
end;



readln;
CloseGraph;
end.

Последний раз редактировалось bobby2008; 05.05.2009 в 13:11.
bobby2008 вне форума Ответить с цитированием
Старый 05.05.2009, 15:30   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
1) Как сделать, чтобы при вводе чисел эти числа выводились только в нужную строчку, а не как у меня - в нужную строчку и левый верхний угол?
Присмотритесь к процедуре OutTextXY - выводит текст в нужное место.
Цитата:
2) Как перевести стринг в интеджер и обратно? Просто ауттекстом выводит только стринги, поэтому и читаю стринг, а работать нужно с числами.
Есть процедуры Val и Str.
Цитата:
3) Есть у меня рисунок из пикселей(на листке в клетку нарисовал голову быка и корову). Как это нарисовать в паскале тоже разберусь, а вот чтобы оно двигалось, не знаю как сделать. Что можете посоветовать?
Задавайте координаты с помощью переменных. И изменяйте во времени.
Для задержки есть процедура Delay, но на современных компьютерах она работает непредсказуемо. Но если использовать Free Pascal, то все нормально.
То есть очищаете экран (cleardevice) -> рисуете -> задержка. И так в бесконечном (ну или как надо) цикле.
Цитата:
4) как обрабатывать ошибки вручную, то есть я ввожу символы, читаю число, как сделать, так, что когда пользователь вводил не цифры, а буквы, то программа не вылетала, а писала бы типа "неверный ввод"?
Можете читать число как строку. Потом проверять, являются ли введенные символы цифрами (по кодам символов) и потом уже переводить в число.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 17:10   #9
bobby2008
Пользователь
 
Аватар для bobby2008
 
Регистрация: 13.04.2009
Сообщений: 37
По умолчанию

Спасибо за советы, буду пробовать. Пожалуйста, скажите, похоже ли это на морду быка и корову?
Код:
Uses	Graph;
const bul:array [1..28,1..22]of integer=
((0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0),
 (0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0),
 (0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0),
 (0,0,0,0,1,1,0,0,0,7,7,7,7,0,0,0,1,1,0,0,0,0),
 (0,0,0,1,1,0,0,7,7,7,7,7,7,7,7,0,0,1,1,0,0,0),
 (0,0,1,1,1,0,0,7,7,7,7,7,7,7,7,0,0,1,1,1,0,0),
 (0,0,1,1,1,1,7,7,0,0,7,7,0,0,7,7,1,1,1,1,0,0),
 (0,0,0,1,1,1,7,7,0,0,7,7,0,0,7,7,1,1,1,0,0,0),
 (0,0,0,1,1,1,7,0,0,7,7,7,7,0,0,7,1,1,1,0,0,0),
 (0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0),
 (0,0,0,4,4,7,7,7,7,7,7,7,7,7,7,7,7,4,4,0,0,0),
 (0,0,4,4,4,7,7,7,7,7,7,7,7,7,7,7,7,4,4,4,0,0),
 (0,4,4,4,7,7,7,8,8,8,8,8,8,8,8,7,7,7,4,4,4,0),
 (4,4,0,0,7,8,8,8,8,8,8,8,8,8,8,8,8,7,0,0,4,4),
 (4,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,4),
 (0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0),
 (0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0),
 (8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8),
 (8,8,8,0,0,8,8,8,8,8,8,8,8,8,8,8,8,0,0,8,8,8),
 (8,8,8,0,0,8,8,8,8,8,8,8,8,8,8,8,8,0,0,8,8,8),
 (0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0),
 (0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0),
 (0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0),
 (0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0),
 (0,0,0,0,8,8,5,5,5,5,5,5,5,5,5,5,8,8,0,0,0,0),
 (0,0,0,0,0,8,8,5,5,5,5,5,5,5,5,8,8,0,0,0,0,0),
 (0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0),
 (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));

	cow:array[1..22,1..30] of integer=
((1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (0,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (0,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
 (1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0),
 (1,1,0,1,1,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4),
 (0,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,4),
 (0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,4),
 (0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0),
 (0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0),
 (0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0),
 (0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0),
 (0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0),
 (0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0),
 (0,0,0,0,0,0,3,3,0,3,3,0,0,0,0,0,0,4,4,4,4,4,0,3,3,3,0,0,0,0),
 (0,0,0,0,0,3,3,0,0,3,3,0,0,0,0,0,0,0,4,0,4,0,0,3,3,3,0,0,0,0),
 (0,0,0,0,0,3,3,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,0,0,0),
 (0,0,0,0,0,3,3,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,0,0,0),
 (0,0,0,0,3,3,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,3,3,0,0));

Var	Gd,Gm,i,j,n,k:Integer;
	c:char;
	s:string;

begin
Gd:=Detect;
InitGraph(Gd,Gm,'');


setbkcolor(green);
setcolor(blue);
{setviewport(10,10,(getmaxx)-10,(getmaxy)-10,clipon);}
setlinestyle(0,0,3);
{setbkcolor(red); }
line(1,1,1,getmaxy);
line(1,1,getmaxx,1);
line(getmaxx-1,1,getmaxx-1,getmaxy);
line(1,getmaxy-1,getmaxx-1,getmaxy-1);
setcolor(red);
line(5,5,5,getmaxy-5);
line(5,5,getmaxx-5,5);
line(getmaxx-5,5,getmaxx-5,getmaxy-5);
line(5,getmaxy-5,getmaxx-5,getmaxy-5);
setcolor(blue);
line(9,9,9,getmaxy-9);
line(9,9,getmaxx-9,9);
line(getmaxx-9,9,getmaxx-9,getmaxy-9);
line(9,getmaxy-9,getmaxx-9,getmaxy-9);
setcolor(red);
line(11,75,getmaxx-11,75);
moveto(15,15);
settextstyle(0,0,3);
outtext('Input your');
moveto(70,50);
outtext('number!');
line(300,11,300,getmaxy-11);

k:=2;
for i:=1 to 22*k do
  for j:=1 to 28*k do
   putpixel(100+i,100+j,bul[(j+k-1)div k,(i+k-1)div k]);
   k:=2;
for i:=1 to 30*k do
  for j:=1 to 22*k do
   putpixel(200+i,200+j,cow[(j+k-1)div k,(i+k-1)div k]);

readln;
CloseGraph;
end.
bobby2008 вне форума Ответить с цитированием
Старый 05.05.2009, 17:20   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
скажите, похоже ли это на морду быка и корову?

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

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быки и коровы Димарик Помощь студентам 5 01.12.2009 19:51
Игра "Поле чудес". Нужна trOid Фриланс 15 24.11.2008 18:03
Игра "Ghost Recon Advanced Warfighter 1"(GRAW) Air Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 27.07.2008 08:07
Игра "четный" "нечетный" bigcat Помощь студентам 1 01.03.2008 00:24