• Главная
  • Блог
  • Пользователи
  • Форум
  • Литературное творчество
  • Музыкальное творчество
  • Научно-техническое творчество
  • Художественно-прикладное творчество

Проект «Распределение шахматистов на круговой турнир».

Опубликовано Подова Анна Николаевна вкл 29.05.2022 - 23:41
Автор: 
Келехсаев Илья Константинович, г. Владикавказ МАУ ДО Центр «Интеллект», ученик 6 класса, МБОУ СОШ №22

 

Цель моего проекта - написать программу «Распределение шахматистов на круговой турнир» для судей на шахматных турнирах, которая поможет им распределить шахматистов для игры между собой.

Задачи проекта:

  1. Научиться пользоваться объектами их свойствами и событиями языка программирования Дельфи;
  2. Научиться пользоваться StringGrid-ом;
  3. Облегчить работу судьям на шахматных турнирах.

Методы и приёмы, использованные в работе: наблюдение, компьютерный эксперимент, исследовательский  способ, изучение и анализ научной литературы,  моделирование, визуальная реализация данной темы.

Полученные данные: написанная программа поможет судьям по шахматам распределить участников.

 

Скачать:

ВложениеРазмер
Microsoft Office document icon raspredelenie_shahmatistov_na_turnir_kelehsaev_i._sosh22_chastno3_1.doc158 КБ

Предварительный просмотр:

Всероссийская научно-практическая конференция

«Человек-Земля-Вселенная»

Секция: информатика.

Тема:

Проект «Распределение шахматистов на круговой турнир».

                                 

Автор: Келехсаев Илья  Константинович, г. Владикавказ МАУ  ДО  Центр «Интеллект», ученик 6  класса, МБОУ СОШ №22

Научный руководитель:

Подова Анна Николаевна, педагог ДО МАУ ДО   Центр «Интеллект», учитель информатики МБОУ СОШ №22

 

г. Владикавказ

2019 г.

                                Содержание

Аннотация…………………………………………………………………….…………………..3

Введение………………………………………………………………………………………….4

Системы проведения шахматных турниров……………………….…………….......................4

Таблицы очереди игры в турнирах по круговой системе……………………………………..6

В процессе написания программы я научился ………………………………………………..9

Этапы работы программы…..…………………………………………………………………...9

Список литературы ……………………………………………………………….......................9

Листинг…...……………………………………………………………………………………..10

Приложение……………………………………………………………………………………..15

                                                        

                                              Аннотация

            Тема:  Проект  «Распределение шахматистов на круговой турнир»                                                                

Келехсаев Илья Константинович

Республика Северная Осетия  – Алания, г. Владикавказ,

МАУ ДОД «Интеллект»,  МБОУ СОШ №22 Им. Полного Кавалера Ордена Славы В.М.Коняева ,6 класс

Цель моего проекта - написать программу «Распределение шахматистов на круговой турнир» для судей на шахматных турнирах, которая поможет им распределить шахматистов для игры между собой.

Задачи проекта:

  1. Научиться пользоваться объектами их свойствами и событиями языка программирования Дельфи;
  2. Научиться пользоваться StringGrid-ом;
  3. Облегчить работу судьям на шахматных турнирах.

Методы и приёмы, использованные в работе: наблюдение, компьютерный эксперимент, исследовательский  способ, изучение и анализ научной литературы,  моделирование, визуальная реализация данной темы.

Полученные данные: написанная программа поможет судьям по шахматам распределить участников.

                                               Введение

Интерес к играм в шахматы возник давно. Я тоже увлекаюсь шахматами. Во время турниров, когда судья формирует таблицу туров, у него возникают проблемы с распределением игроков в  таблице.  И тогда у меня возникла мысль помочь судьям заменить процесс распределения игроков в таблице с помощью  программы.

Системы проведения шахматных турниров.

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

    Порядок встреч противников друг с другом при круговой системе не имеет большого значения. Но участники в паре очередного тура обычно определяются жребием.

Иногда же порядок встреч назначают так: присваивают каждому из участников соревнований порядковые номера от 1 до N. Если число участников четно , то записывают в правом столбце сверху вниз номера от 1 до К, а в левом столбце - номера от К + 1 до N снизу вверх. Участники, номера которых написаны напротив друг друга, встречаются в первом туре. Число встреч при круговой системе определяется по формуле: где N число команд (игроков).

   По результатам каждой игры участнику начисляют определенное количество очков. Например, в шахматах традиционно начисляют 1 очко за выигрыш, 0 очков за проигрыш и 0,5 очка за ничью. Очки, набранные участниками в течение всего турнира, суммируются. Места распределяются по убыванию количества набранных очков.

Достоинства круговой системы заключаются в максимальной, теоретически достижимой справедливости турнира: все сыграют со всеми, итоговый результат определяется соотношением сил всех пар соперников. Справедливо распределяются и места, занятые всеми участниками турнира.

Недостатки круговой системы - необходимость большого количества встреч.

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

Сточки зрения зрелищности (а значит, и источников финансирования) турнир проигрывает более динамичным схемам, если участники заметно различаются по силе. Значительная часть встреч проходит между соперниками явно несравнимой силы, результат оказывается предсказуемым.

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

Зачастую, проводя очередной турнир, тренера и судьи по шахматам не имеют под рукой программы для жеребьевки шахматных турниров, такой как например SWISS MANAGER или SWISS Master

Для этого на помощь в таких случаях воспользуйтесь такой таблицей:

Таблицы очереди игры в турнирах по круговой сист ри 9 или 10 участниках

 1 тур   1 - (10)  2 - 9   3 - 8   4 - 7   5 - 6

 2 тур  (10) - 6   7 - 5   8 - 4   9 - 3   1 - 2

 3 тур   2 - (10)  3 - 1   4 - 9   5 - 8   6 - 7

 4 тур  (10) - 7   8 - 6   9 - 5   1 - 4   2 - 3

 5 тур   3 - (10)  4 - 2   5 - 1   6 - 9   7 - 8

 6 тур  (10) - 8   9 - 7   1 - 6   2 - 5   3 - 4

 7 тур   4 - (10)  5 - 3   6 - 2   7 - 1   8 - 9

 8 тур  (10) - 9   1 - 8   2 - 7   3 - 6   4 - 5

 9 тур   5 - (10)  6 - 4   7 - 3   8 - 2   9 - 1

1 Тур

1____________    :    ____________8          2____________    :    ____________7

3____________    :    ____________6           4____________    :    ____________5

2 Тур

8____________    :    ____________5           6____________    :    ____________4

7____________    :    ____________3           1____________    :    ____________2

3 Тур

2____________    :    ____________8           3____________    :    ____________1

4____________    :    ____________7           5____________    :    ____________6

4 Тур

8____________    :    ____________6           7____________    :    ____________5

1____________    :    ____________4           2____________    :    ____________3

5 Тур

3____________    :    ____________8           4____________    :    ____________2

5____________    :    ____________1           6____________    :    ____________7

6 Тур

8____________    :    ____________7           1____________    :    ____________6

2____________    :    ____________5           3____________    :    ____________4

7 Тур

4____________    :    ____________8           5____________    :    ____________3

6____________    :    ____________2           7____________    :    ____________1

  1. Круговые турниры

Принцип таких турниров прост: каждый играет с каждым. Например, если в турнире играют 5 человек, то каждый должен будет сыграть 4 партии — по одной со всеми участниками турнира. Т.е. всего в этом турнире будет сыграно 10 партий. За каждую победу начисляется 1 очко, за ничью — 0,5 очка, за проигрыш 0 очков.

Турнир завершается вместе с окончанием последней партии турнира. В этот момент производится распределение мест.

2.Систематические турниры

3.Плей-офф (playoff)

Плей-офф (playoff) — система проведения турниров, при которой проигравший  выбывает  из  дальнейших  соревнований.

4.Швейцарская система

Швейцарская система — система проведения турниров. Впервые была применена в Цюрихе в 1895 году. Использование данной системы позволяет выявить победителей за меньшее количество партий, чем при круговой системе.

В процессе написания программы я научился:

  1. сортировать числа в порядке убывания или в порядке возрастания, а в месте с числами и буквенные переменные,
  2. научился работать со StringGrid-ом
  3. работать с файлами,
  4. написал прикладную программу для шахматных турниров.

Этапы работы программы

Инструкция по пользованию

1.Первое ввести имена в первый столбик самой большой таблицы.

2.По нажатию кнопки «Жеребьёвка» проходит жеребьёвка и номера записываются в правый столбик той же таблицы (см.Приложенеие2 и Приложение3).

3.По нажатию кнопки «Посмотреть пары на первый раунд» вы по данным из первой таблицы во второй таблице увидите пары на первый раунд (см.Приложенеие4).

4.Далее вам нужно по окончанию турнира вписать баллы участников на месте их номера по жеребьёвке и нажать на кнопку  «Выявить победителей» и увидим  (см.Приложенеие5)

Список литературы.

  1. Жуков А.  Изучаем Дельфи  //Издательский  дом Питер 2002 г
  2. Окулов С.М. О фундаментальных основах информатики. //Информатика и образование.- №1.- 2005.- С. 26-31.
  3. Book_Beginer_Delphi7/Index.html
  4. http://battle-chess.ru/index/pravila/game-regulations/
  5. https://ozlib.com/847261/sport/poryadok_provedeniya_turnira_shveytsarskoy_sistem

                                         Листинг:

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Grids;

type

  TForm1 = class(TForm)

    StringGrid1: TStringGrid;

    Label1: TLabel;

    Button1: TButton;

    StringGrid2: TStringGrid;

    Button2: TButton;

    Button3: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  a: array [1..32] of Integer;

  b: array [1..32] of String;

  i:Integer;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

  y:array[1..32]of Integer;

  c,j,p,k,l,g,n,f,z: Integer;

  u:Boolean;

  s:String;

begin

  n:=0;

  k:=32;

  g:=100000;

  s:='';

  p:=0;

  f:=0;

  z:=0;

  j:=0;

  l:=0;

  c:=0;

for i:=1 to 32 do

  begin

    repeat

      u:=false;

      n:=Random(33-1)+1;

      for z:=1 to 32 do

      if y[z]=n then u:=true;

    until u=false;

    y[i]:=n;

  end;

  for i:=1 to 32 do

    StringGrid1.Cells[2,i]:=inttostr(y[i]);

  for i:=1 to 32 do

    b[i]:=StringGrid1.Cells[1,i];

  for c:=1 to 32 do

    a[c]:=strtoint(StringGrid1.Cells[2,c]);

  while g>0 do

      begin

      For i:=1 to 31 do

          begin

          if a[i]>a[i+1] then

             begin

                  p:=0;

                  f:=a[i];

                  a[i]:=a[i+1];

                  a[i+1]:=f;

                  s:=b[i];

                  b[i]:=b[i+1];

                  b[i+1]:=s;

              end;

          end;

if p=1 then

p:=0

else

p:=1;

g:=g-1;

       end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

l,n:Integer;

begin

  n:=33;

  for l:=1 to 16 do

  begin

    n:=n-1;

    StringGrid2.Cells[1,l]:=b[l]+' '+inttostr(a[l]);

    StringGrid2.Cells[2,l]:=b[n]+' '+inttostr(a[n]);

  end;

end;

procedure TForm1.Button3Click(Sender: TObject);

var

  h,d:TextFile;

  q:String;

begin

AssignFile(h,'F:\Илья10\h.txt');

Rewrite(h);

for i:=1 to 32 do

Writeln(h,StringGrid1.Cells[1,i]);

CloseFile(h);

AssignFile(d,'F:\Илья10\d.txt');

Rewrite(d);

for i:=1 to 32 do

Writeln(d,StringGrid1.Cells[2,i]);

CloseFile(d);

Form3.Visible:=True;

end;

initialization

  Randomize;

end.

unit Unit3;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

type

  TForm3 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);

var

h,d:TextFile;

i,g,p,f:Integer;

s,y:String;

a: array [1..32] of Integer;

b: array [1..32] of String;

begin

p:=0;

i:=0;

g:=10000;

AssignFile(h,'F:\Илья10\h.txt');

Reset(h);

While  not eof(h) do

begin

i:=i+1;

Readln(h,b[i]);

end;

CloseFile(h);

AssignFile(d,'F:\Илья10\d.txt');

Reset(d);

i:=0;

While  not eof(d) do

begin

i:=i+1;

Readln(d,y);

a[i]:=strtoint(y);

y:='';

end;

CloseFile(d);

while g>0 do

  begin

    For i:=1 to 31 do

      begin

      if a[i]>a[i+1] then

         begin

          p:=0;

          f:=a[i];

          a[i]:=a[i+1];

          a[i+1]:=f;

          s:=b[i];

          b[i]:=b[i+1];

          b[i+1]:=s;

         end;

      end;

if p=1 then

p:=0

else

p:=1;

g:=g-1;

end;

Edit1.Text:=b[32];

Edit3.Text:=b[31];

Edit5.Text:=b[30];

Edit2.Text:=inttostr(a[32]);

Edit4.Text:=inttostr(a[31]);

Edit6.Text:=inttostr(a[30]);

end;

end.

Приложение 1

Приложение 2

Приложение 3

Приложение 4

Приложение 5


Поделиться:

Шелковая горка

Лиса и волк

Есть ли лёд на других планетах?

Лиса-охотница

Два плуга