Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Андрей65
0 / 0 / 0
Регистрация: 01.11.2019
Сообщений: 1
1

Крестики-нолики

01.11.2019, 13:54. Просмотров 114. Ответов 3

Пытаюсь написать программу для крестиков-ноликов теми средствами, которые знаю, так как с паскалем я на "вы". Пока что сделал только программу, которая ставит на поле крестик по клику игрока. Сейчас пытаюсь сделать так, чтобы на то же самое поле нельзя было нажимать два раза, но ума не приложу, как это сделать. Решил закопаться в форумы. Подсобите пожалуйста)
Вот программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
uses GraphABC, Events;
procedure mousedown(x, y, m:integer);
begin
  setwindowwidth(600);
  setwindowheight(600);
    if (x<200) and (y<200) then
      begin
    line(0,0,200,200);
    line(200,0,0,200);
    end;
    if (x>200) and (y<200) and (x<400) then
      begin
    line(200,0,400,200);
    line(400,0,200,200);
    end;
    if (x>400) and (y<200) then
      begin
    line(400,0,600,200);
    line(600,0,400,200);
    end;
    if (x<200) and (y>200) and (y<400) then
      begin
    line(0,200,200,400);
    line(200,200,0,400);
    end;
    if (x>200) and (x<400) and (y>200) and (y<400) then
      begin
    line(200,200,400,400);
    line(400,200,200,400);
    end;
    if (x>400) and (y>200) and (y<400) then
      begin
    line(400,200,600,400);
    line(600,200,400,400);
    end;
    if (x<200) and (y>400) then
      begin
    line(0,400,200,600);
    line(200,400,0,600);
    end;
    if (x>200) and (x<400) and (y>400) then
      begin
    line(200,400,400,600);
    line(400,400,200,600);
    end;
    if (x>400) and (y>400) then
      begin
    line(400,400,600,600);
    line(600,400,400,600);
    end;
    end;
begin
  line(200,0,200,600);
  line(400,0,400,600);
  line(0,200,600,200);
  line(0,400,600,400);
  onmousedown:=mousedown;
end.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2019, 13:54
Ответы с готовыми решениями:

Крестики-нолики
Как сделать так, чтобы программа могла определять 3 в ряд в крестиках-ноликах?) Спасибо большое

Крестики-нолики
Написал крестики-нолики. Критику пожалуйста) uses GraphABC; var pole:array of integer; ...

Написать крестики-нолики
Написал программу игры крестики нолики на 1 игрока с машиной program krestikinoliki; uses crt;...

Написать крестики-нолики
Умоляю помогите мне с программой. Мой Дядя задал написать мне программу на PascalABC, при запуске...

Ошибка в игре крестики-нолики
есть код программы крестики нолики. иногда сразу при запуске пишет &quot;Ошибка: 3 - выход за границы...

3
Puporev
Модератор
58121 / 44212 / 30543
Регистрация: 18.05.2008
Сообщений: 105,877
01.11.2019, 14:08 2
Посмотрите хотя бы похожие темы внизу страницы.
0
mr-Crocodile
302 / 219 / 66
Регистрация: 19.03.2019
Сообщений: 735
01.11.2019, 14:19 3
Цитата Сообщение от Андрей65 Посмотреть сообщение
на то же самое поле нельзя было нажимать два раза, но ума не приложу, как это сделать.
ты делаешь большую ошибку - смешиваешь в кучу и игровое поле (графику), и ходы игроков и сам игровой процесс.
должно быть поле (это массив со значениями), должен быть метод, который отображает поле на экране и умеет отображать изменения в поле (ход игрока).
должна быть игровая логика - которая проверяет возможность хода, ходит за бота (ИИ), проверяет условия окончания/выигрыша и т.п.

а так да - стоит взять чужой код и разобрать его. Лучше от проверенных людей. Чтобы не нарваться на код от новичка.
0
JuriiMW
2846 / 1426 / 1771
Регистрация: 10.12.2014
Сообщений: 5,659
02.11.2019, 14:31 4
Андрей65, для начала копайте в сторону массивов.
0
02.11.2019, 14:31
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2019, 14:31

Игра в крестики-нолики с компьютером
Помогите написать простенькую программу) плиз) очень срочно надо) Заранее спасибо)

Крестики-нолики, написать условие выигрыша
uses GraphABC,Events; var i,j:integer; a:arrayof integer; ok,k:integer; ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.