IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Игра Болтянского на Pascal, Игра Болтянского на Pascal с графикой
NickolsoN
сообщение 3.12.2010 23:25
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: NickolsoN

Репутация: -  0  +


Помогите написать программу.
Решение задании должно садержать
1. Доказательство выигрышной стратегии для игроков
2. Реализацию игры на компьютере с соблюдением уловий
- одним игроком в игре должен быть компьютер
- начальное состояние игры, два тех игр, где оно явно не задано, должно формироваться случайным образом (случайное число выбирается из экстетического представления картинки на экране);
- после представления начального состояния, а игре должен быть запрос Кто будет ходить
первым?»;
- игра должна быть оформлена с помощью графических средств*
- игра должна иметь «Заставку» и Правила игры
- управление игрой должно осуществляться либо с помощью управляющих клавиш клавиатуры либо мышкой
- компьютер должен играть по выигрышной стратегии: либо вследствие начальных данных игры, либо, следя за ходом человека, перехватив инициативу из-за его ошибки

Игра Болтянского
Играют двое. Первый выбирает натуральное число от 2 до 9, Второй умножает это число на выбираемое натуральное число от 2 до 9, затем первый выбирает число и умножает результат на любое натуральное число от 2 до 9 и т.д. Выигрывает тот, у кого впервые получится произведение,
больше заданного положительного числа C
Выяснить при каких С существует выигрышная ситуация у первого игрока,
при каких - у второго.

помогите пожалуйста, можно и без графики

Сообщение отредактировано: NickolsoN - 3.12.2010 23:51
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
NickolsoN
сообщение 4.12.2010 17:36
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: NickolsoN

Репутация: -  0  +


короче с 5 вечера, до почти 1часа ночи пытался уловить, выйгрышную игру компа....без результатов, вот пока что получилось, комп выдает числа рандомом, и еще вывод сообщения о том кто именно выйграл кривоват. Lapp, помогите пожалуйста....

program boltyanskiyy;
uses crt;
var
a,b,c,p,d,winner:integer;
function isWinner(who,num,c,winner:integer):integer;
begin
if (winner = 0) and (num>=c) then begin
isWinner:=who; {1-chelovek 2-comp}
end
else begin 2
isWinner:=0;
end;
end;
begin
clrscr;
p:=1; {prisvaivaem proizvedeniuy 1}
d:=1;
randomize;
write('vvidite polozhitelnoe chislo C ( 0 - random C) = '); {zadaem C}
readln©;
if c=0 then
c:=random(1000);
writeln('chislo C = ',c);
write('kto hodit pervim?(1 - vi, 0 - komp) - '); {vibor pervogo hoda}
readln(a);
winner:=0;
if a=1 then
repeat
winner:=isWinner(1,p*d,c,winner);
writeln('vvedite chislo ot 2 do 9 - ');
read(b);
d:=random(7)+2;
p:=p*b*d;
winner:=isWinner(2,p,c,winner);
writeln('vi vveli - ',b ,', ya vvel - ',d,' proizvedenie - ',p);
until (p>=c)
else
repeat
winner:=isWinner(1,p*d,c,winner);
d:=random(7)+2;
writeln('ya vvel - ',d);
writeln('vvedite chislo ot 2 do 9 - ');
read(b);
p:=p*b*d;
winner:=isWinner(2,p,c,winner);
writeln('vi vveli - ',b,' proizvedenie - ',p);
until (p>=c);
writeln('pobedil - ',winner,',(1-chelovek, 2-komp) ');
while not keypressed do;
end.
.

Сообщение отредактировано: NickolsoN - 5.12.2010 0:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.12.2010 1:00
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(NickolsoN @ 4.12.2010 17:36) *
вот скелет проги написал
Хорошо, это совсем другой разговор! smile.gif

Так, во-первых, в игре тебе понадобится цикл (по ходам). И еще нужна булева переменная, чтобы понимать, чей сейчас ход. Если она FALSE - это значит, что сейчас ход компьютера, если TRUE - ход человека. Назови ее Player. Примерно так:
  writeln('kto hodit pervim?(1 - vi, 2 - komp)');
readln(a);
Player:= a=2;
- тут мы делаем НАОБОРОТ: если первым ходит комп, то p=TRU. Это потому, что мы сменим p при входе в цикл по ходам. Затем, перед входом в цикл мы должны присвоить начальное значение тому самому числу, которое умножается в игре. Начальное значение равно 1 (понятно, почему?) Потом в ходим в цикл. Сами ходы лучше всего оформить как подрограммы (ты с ними знаком?). Тогда описанный кусок кода будет выглядеть примерно так:
n:= 1;
repeat
Player:= not Player;
if p then m:= UserMove(n) else m:= CompMove(n);
WriteLn('Игрок ',PlayerName[Player],' сделал ход ',m,', новое число равно ',n)
until n>=c;
WriteLn(PlayerName[Player],' выиграл!')


Сделай пока программу UserMove, которая делает ручной ход, и поставь ее на оба места в операторе if, вот так:
  if p then m:= UserMove(n) else m:= UserMove(n);

Такая программа позволит играть юзеру за компьютер. Когда это будет готово, начнем разбираться со стратегией игры.

Давай, делай и приноси результат. Что непонятно - спрашивай. Не стесняйся даже глупых вопросов.
Успехов тебе.

Добавлено через 3 мин.
О, сколько ты наваял! )
все же сделай, как я просил.
Стратегия - после интерфейса. Всему свое время.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
NickolsoN   Игра Болтянского на Pascal   3.12.2010 23:25
Unconnected   И нафига тут графика вообще, интересно.. ну, обосн...   3.12.2010 23:31
NickolsoN   И нафига тут графика вообще, интересно.. ну, обос...   3.12.2010 23:52
Unconnected   Со стратегией наврал я.. наверное, выигрышная стра...   4.12.2010 0:14
Lapp   Игра Болтянского Играют двое. Первый выбирает нат...   4.12.2010 9:48
NickolsoN   Болтянский - хороший математик. Его самого я поч...   4.12.2010 10:04
Lapp   мне нужен не отткомпилированный файлик .pas,которы...   4.12.2010 11:20
-TarasBer-   > Со стратегией наврал я.. наверное, выигрышная...   4.12.2010 11:52
Unconnected   Почему бы и нет, наверное выиграю. Какая разница, ...   4.12.2010 11:56
RathaR   Lapp, а то что твоя прога разрешает умножать на ед...   4.12.2010 12:50
Lapp   Lapp, а то что твоя прога разрешает умножать на ед...   4.12.2010 13:01
Unconnected   Может, в этом секрет выигрышной стратегии :rolley...   4.12.2010 12:54
-TarasBer-   > Почему бы и нет, наверное выиграю. Какая разн...   4.12.2010 12:56
NickolsoN   короче с 5 вечера, до почти 1часа ночи пытался уло...   4.12.2010 17:36
Lapp   вот скелет проги написалХорошо, это совсем другой ...   5.12.2010 1:00
NickolsoN   вот щас подлатал прогу, вывод нормально работает и...   5.12.2010 15:12
Lapp   Хорошо. Ты сделал достаточно много, чтоб я убедил...   6.12.2010 5:18
Lapp   Так. Кажется, я придумал, как объяснить эту интуи...   7.12.2010 10:41
NickolsoN   Lapp, спасибо ВАМ !вот сидел алгоритм ваш пыта...   6.12.2010 21:49
Lapp   массиви строк, принимающие значение тру и фолс?Да....   7.12.2010 1:13
NickolsoN   Lapp, вы гений!! столь развернутый ответ д...   8.12.2010 18:29
Lapp   Lapp, вы гений!! столь развернутый ответ д...   9.12.2010 16:07
TarasBer   Кстати, известная идея - все возможные позиции раз...   9.12.2010 10:59
NickolsoN   Lapp, извините!в личке баловать больше не буду...   9.12.2010 16:19
Lapp   Какая тебе нужна графика? турбо-паскалевская? Ес...   9.12.2010 16:43


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 15:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"