Цель моего проекта - написать программу «Распределение шахматистов на круговой турнир» для судей на шахматных турнирах, которая поможет им распределить шахматистов для игры между собой.
Задачи проекта:
Методы и приёмы, использованные в работе: наблюдение, компьютерный эксперимент, исследовательский способ, изучение и анализ научной литературы, моделирование, визуальная реализация данной темы.
Полученные данные: написанная программа поможет судьям по шахматам распределить участников.
Вложение | Размер |
---|---|
raspredelenie_shahmatistov_na_turnir_kelehsaev_i._sosh22_chastno3_1.doc | 158 КБ |
Всероссийская научно-практическая конференция
«Человек-Земля-Вселенная»
Секция: информатика.
Тема:
Проект «Распределение шахматистов на круговой турнир».
Автор: Келехсаев Илья Константинович, г. Владикавказ МАУ ДО Центр «Интеллект», ученик 6 класса, МБОУ СОШ №22
Научный руководитель:
Подова Анна Николаевна, педагог ДО МАУ ДО Центр «Интеллект», учитель информатики МБОУ СОШ №22
г. Владикавказ
2019 г.
Содержание
Аннотация…………………………………………………………………….…………………..3
Введение………………………………………………………………………………………….4
Системы проведения шахматных турниров……………………….…………….......................4
Таблицы очереди игры в турнирах по круговой системе……………………………………..6
В процессе написания программы я научился ………………………………………………..9
Этапы работы программы…..…………………………………………………………………...9
Список литературы ……………………………………………………………….......................9
Листинг…...……………………………………………………………………………………..10
Приложение……………………………………………………………………………………..15
Аннотация
Тема: Проект «Распределение шахматистов на круговой турнир»
Келехсаев Илья Константинович
Республика Северная Осетия – Алания, г. Владикавказ,
МАУ ДОД «Интеллект», МБОУ СОШ №22 Им. Полного Кавалера Ордена Славы В.М.Коняева ,6 класс
Цель моего проекта - написать программу «Распределение шахматистов на круговой турнир» для судей на шахматных турнирах, которая поможет им распределить шахматистов для игры между собой.
Задачи проекта:
Методы и приёмы, использованные в работе: наблюдение, компьютерный эксперимент, исследовательский способ, изучение и анализ научной литературы, моделирование, визуальная реализация данной темы.
Полученные данные: написанная программа поможет судьям по шахматам распределить участников.
Введение
Интерес к играм в шахматы возник давно. Я тоже увлекаюсь шахматами. Во время турниров, когда судья формирует таблицу туров, у него возникают проблемы с распределением игроков в таблице. И тогда у меня возникла мысль помочь судьям заменить процесс распределения игроков в таблице с помощью программы.
Системы проведения шахматных турниров.
Круговая система - это соревнования, в которых каждый участник турнира играет с каждым в ходе тура или раунда, популярна в игровых видах спорта (футбол, волейбол, баскетбол). Считается наиболее справедливой, но при этом требует наибольшего числа игр для распределения мест, по сравнению с другими турнирными системами.
Порядок встреч противников друг с другом при круговой системе не имеет большого значения. Но участники в паре очередного тура обычно определяются жребием.
Иногда же порядок встреч назначают так: присваивают каждому из участников соревнований порядковые номера от 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
Принцип таких турниров прост: каждый играет с каждым. Например, если в турнире играют 5 человек, то каждый должен будет сыграть 4 партии — по одной со всеми участниками турнира. Т.е. всего в этом турнире будет сыграно 10 партий. За каждую победу начисляется 1 очко, за ничью — 0,5 очка, за проигрыш 0 очков.
Турнир завершается вместе с окончанием последней партии турнира. В этот момент производится распределение мест.
2.Систематические турниры
3.Плей-офф (playoff)
Плей-офф (playoff) — система проведения турниров, при которой проигравший выбывает из дальнейших соревнований.
4.Швейцарская система
Швейцарская система — система проведения турниров. Впервые была применена в Цюрихе в 1895 году. Использование данной системы позволяет выявить победителей за меньшее количество партий, чем при круговой системе.
В процессе написания программы я научился:
Этапы работы программы
Инструкция по пользованию
1.Первое ввести имена в первый столбик самой большой таблицы.
2.По нажатию кнопки «Жеребьёвка» проходит жеребьёвка и номера записываются в правый столбик той же таблицы (см.Приложенеие2 и Приложение3).
3.По нажатию кнопки «Посмотреть пары на первый раунд» вы по данным из первой таблицы во второй таблице увидите пары на первый раунд (см.Приложенеие4).
4.Далее вам нужно по окончанию турнира вписать баллы участников на месте их номера по жеребьёвке и нажать на кнопку «Выявить победителей» и увидим (см.Приложенеие5)
Список литературы.
Листинг:
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
Большое - маленькое
Ручей и камень
Учимся рисовать горный пейзаж акварелью
Нора Аргунова. Щенята
Простые новогодние шары из бумаги