Создание программы "EuroBasket"

Список переменных и типов данных. Программное и аппаратное обеспечение программы. Программирование игры в среде C# про чемпионат Европы по баскетболу среди мужских команд с определением места в группах по наибольшему числу трехочковых попаданий в группе.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.10.2012
Размер файла 35,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

  • Введение

Основная цель курсовой работы - усовершенствование навыков работы в среде C#.

При изучении предметной области, выяснилось, что «EuroBasket» на первый взгляд простая игра, но для ее реализации необходимо обратится практически ко всем разделам программирования в среде C#.

Суть самой игры заключается в следующем: В чемпионате Европы по баскетболу среди мужских команд участвуют 24 сборных, разбитых на 6 групп. Места в группах в случае равенства очков у двух и более команд определяются следующим образом:

а) по результатам игр между собой;

б) по лучшей разнице заброшенных и пропущенных мячей;

в) по наибольшему числу 3-х очковых попаданий за все игры в группе.

Сборные, занявшие 1 места в группах, выходят в 1/4 финала. Кроме того, в 1/4 финала выходят 2 сборные из числа команд, занявших 2 места в группах, имеющие лучшие показатели по набранным очкам, а в случае их равенства:

а) по лучшей разнице заброшенных и пропущенных мячей;

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

1. Назначение и область применения

Данная программа может быть использована в качестве развлечения.

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

2. Постановка задачи

Целью данной курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере. Курсовая работа выполнена в среде C#.

В курсовой работе используются основные возможности языка в работе со структурами, файлами.

В данной игре предполагалось создание:

1. легко осваиваемого интерфейса;

2. графическое окно, удобным расположением кнопок и вкладок;

3. доступного для понимания руководства пользователя;

4. Возможность в любой момент покинуть игру.

3. Используемые методы

В данной программе использовались следующие разделы C#:

- Управляющие структуры (условие, циклы);

- Массивы (одномерные, двумерные);

- Символы и строки;

- Процедуры;

- Работа с файлами;

В итоги получилась программа - игра, в которой использовались основные возможности среды C#.

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

Класс Form1

Имя переменной

Тип данных

Описание

Teams

Team[]

Начальный массив команд

TM

Новый массив команд (чтоб не смешать старый)

TC

Массив команд в полуфинальных играх

index_step

int

Индекс текущего этапа

Number_group

Номер группы

Count_teams

Количество команд

Group_count

Счёт в группе

Output_data

DataGridViev

Таблица команд по группам

Класс Championship

Наименование

Тип данных

Описание

Games

Int[,]

Игровая сетка в группах

Класс Team

Наименование

Тип данных

Описание

Name

String

Переменная для хранения имён участников

Country

Переменная для хранения стран участников

All_Scores

int

Переменная для хранения суммы забитых мячей

All_Lose_Points

Переменная для хранения суммы пропущенных мячей

Difference

Переменная для хранения разницы между забитыми и пропущенными мячами

Three_Points

Переменная для хранения количества 3-х очковых

4. Описание алгоритма программы

Текстовый алгоритм

1. Начало

2. Вводим названия сборных и соответствующих им стран

Цикл пока i < числа команд

Массив команд[i] = Новая команда (Таблица1 [1, i].значение. ToString(),

Таблица2 [2, i].значение. ToString());

Следующий шаг i

3. Строим групповую таблицу для N-й группы

Групповая_таблица (Таблица2, 24/6, индекс_этапа)

4. Строим игровую сетку

Игровая_сетка = Новая игровая_сетка();

Игровая_сетка. Игра = новая int [24, 24, 6]

5. Заполняем игровую сетку для текущей группы

Цикл пока i < Таблицы2. СтрокаСтолбец

Цикл пока p < 4*индекс_этапа+4

Если Таблица2 [1, i].Значение. ToString()==Массив_команд[p].имя

Массив_команд[p].Сумма_забитых_очков += Convert. NoInt32 (Таблица2 [2, i].Значение);

Массив_команд[p].Сумма_пропущенных_очков += Convert. NoInt32 (Таблица2 [2, i+1].Значение);

Массив_команд[p].Сумма_3-х_очковых += Convert. NoInt32 (Таблица2 [3, i+1].Значение);

Цикл m< 4*индекс_этапа+4

Если Таблица2 [1, i+1].Значение. ToString()==Массив_команд[m].имя

Массив_команд[m].Сумма_забитых_очков += Convert. NoInt32 (Таблица2 [2, i+1].Значение);

Массив_команд[m].Сумма_пропущенных_очков += Convert. NoInt32 (Таблица2 [2, i].Значение);

Массив_команд[m].Сумма_3-х_очковых += Convert. NoInt32 (Таблица2 [3, i].Значение);

Игровая_сетка. Игра [p, m, индекс_этапа]= Convert. NoInt32 (Таблица2 [2, i].Значение);

Игровая_сетка. Игра [p, m, индекс_этапа]= Convert. NoInt32 (Таблица2 [2, i+1].Значение);

Следующий шаг i

Следующий шаг p

Следующий шаг m

6. Считываем данные с таблицы и сортируем

Цикл i<4

Цикл o=4*номер_группы, p=4*номер_группы+1 p<4*номер_группы+4

Если Массив_команд[o].Сумма забитых< Массив_команд[p].Сумма забитых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_команд[o].Сумма забитых=Массив_команд[p].Сумма забитых

Если Игровая_сетка. Игра [o, p, Номер_группы]< Игровая_сетка. Игра [p, o, Номер_группы]

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Игровая_сетка. Игра [o, p, Номер_группы] = Игровая_сетка. Игра [p, o, Номер_группы

Если Массив_чемпионата[o].Разница> Массив_чемпионата[p].Разница

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_чемпионата[o].Разница = Массив_чемпионата[p].Разница

Если Массив_чемпионата[o].Сумма_3-х_очковых< Массив_чемпионата[p]. Сумма_3-х_очковых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Следующий шаг i

Следующий шаг o

Следующий шаг p

7. Выводим Результаты

Цикл i=0, k= 4*номер_группы; i<4

Таблица_вывода [0, i].Значение=i+1;

Таблица_вывода [1, i].Значение=Массив_команд[k].Имя;

Таблица_вывода [2, i].Значение=Массив_команд[k].Сумма_пропушенны;

Таблица_вывода [3, i].Значение=Массив_команд[k].Сумма_забитых;

Таблица_вывода [4, i].Значение=Массив_команд[k].Сумма_3-х_оковых;

Следующий шаг i

Следующий шаг k

8. Выводим команды вышедшие в 1/4

А) Занявшие первые места в группах

Цикл i<6

Таблица4 [0, i].Значение=i+1;

Таблица4 [1, i].Значение=Массив_команд [i*4].Страна;

Таблица4 [2, i].Значение=Массив_команд [i*4].Имя;

Таблица4 [3, i].Значение=Массив_команд [i*4].Сумма_пропушенны;

Таблица4 [4, i].Значение=Массив_команд [i*4].Сумма_забитых;

Таблица4 [5, i].Значение=Массив_команд [i*4].Сумма_3-х_оковых;

Следующий шаг i

Б) сортируем и выводим 2 команды занявшие 2-е места

Цикл o=0, p=1 p<6-i

Если Массив_команд[o].Сумма забитых< Массив_команд[p].Сумма забитых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_команд[o].Сумма забитых=Массив_команд[p].Сумма забитых

Если Массив_чемпионата[o].Разница< Массив_чемпионата[p].Разница

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Иначе Если Массив_чемпионата[o].Разница = Массив_чемпионата[p].Разница

Если Массив_чемпионата[o].Сумма_3-х_очковых< Массив_чемпионата[p]. Сумма_3-х_очковых

Обмен (Массив_чемпионата[o], Массив_чемпионата[p])

Следующий шаг o

Следующий шаг p

Таблица4 [0, 6].Значение=7;

Таблица4 [1, 6].Значение=Массив_команд [i*4].Страна;

Таблица4 [2, 6].Значение=Массив_команд [i*4].Имя;

Таблица4 [3, 6].Значение=Массив_команд [i*4].Сумма_пропушенны;

Таблица4 [4, 6].Значение=Массив_команд [i*4].Сумма_забитых;

Таблица4 [5, 6].Значение=Массив_команд [i*4].Сумма_3-х_оковых;

Таблица4 [0, 7].Значение=8;

Таблица4 [1, 7].Значение=Массив_команд [i*4].Страна;

Таблица4 [2, 7].Значение=Массив_команд [i*4].Имя;

Таблица4 [3, 7].Значение=Массив_команд [i*4].Сумма_пропушенны;

Таблица4 [4, 7].Значение=Массив_команд [i*4].Сумма_забитых;

Таблица4 [5, 7].Значение=Массив_команд [i*4].Сумма_3-х_оковых;

9. Строим таблицу игр 1/4 и заполняем результаты

10. Сортируем результаты и выводим команды вышедшие в полуфинал

Цикл i < 4

Если Массив полуфинала[i].Сумма_забитых< Массив полуфинала [i+1].Сумма_забитых

Обмен (Массив полуфинала[i], Массив полуфинала [i+1])

Иначе Если Массив полуфинала[i].Сумма_забитых= Массив полуфинала [i+1].Сумма_забитых

Если Массив полуфинала[i].Сумма_3-х_очковых= Массив полуфинала [i+1].Сумма_3-х_очковых

Обмен (Массив полуфинала[i], Массив полуфинала [i+1])

Следующий шаг i

11. Вводим результаты 1/2

12. Выводим команды вышедшие в финал и заполняем результаты

GroupBox1. Текст=Массив полуфинала[0].Имя

GroupBox2. Текст=Массив полуфинала[2].Имя

13. Выводим победителя чемпионата

Если numericUpDown1. Значение> numericUpDown3. Значение

Label3. Текст= GroupBox1. Текст+ «Победитель чемпионата»

Иначе Если numericUpDown1. Значение< numericUpDown3. Значение

Label3. Текст= GroupBox2. Текст+ «Победитель чемпионата»

Иначе Если numericUpDown2. Значение> numericUpDown4. Значение

Label3. Текст= GroupBox1. Текст+ «Победитель чемпионата»

Иначе

Label3. Текст= GroupBox2. Текст+ «Победитель чемпионата»

Sort_In_Group (DataGridView OutPutData, Team[] Teams, int number_group)

5. Описание входных и выходных данных

Ниже в таблице описываются входные и выходные данные, которые выстроены примерно в том порядке, в котором они должны взаимодействовать с пользователем.

Описание входных и выходных данных

Входные

Выходные

2. Выбор раздела в Главном меню программы

4. Ввод при помощи клавиатуры название команд и стран, либо при помощи кнопки случайно, случайно заполняем таблицу.

5. Ввод при помощи клавиатуры очков за забитые голы команд в Игре 1/8, либо при помощи кнопки случайно, случайно заполняем таблицу.

8. Ввод при помощи клавиатуры очков за забитые голы команд в Игре 1/4, либо при помощи кнопки случайно, случайно заполняем таблицу.

10. Ввод при помощи клавиатуры очков за забитые голы команд в Игре 1/2, либо при помощи кнопки случайно, случайно заполняем таблицу.

12. Ввод при помощи клавиатуры очков за забитые голы команд в Финале, либо при помощи кнопки случайно, случайно заполняем таблицу.

1. Отображение на экране Главного меню

3. Вывод на экран ранее выбранного раздела:

- Ввод команды - вывод на экран окна Ввод команды

- Игры 1/8 - вывод на экран окна Игры 1/8

- Игры 1/4 - вывод на экран окна Игры 1/4

- Команды вышедшие в 1/2 - вывод на экран окна Команды вышедшие в 1/2

- Игры 1/2 - вывод на экран окна Игры 1/2

- Финал - вывод на экран окна Финал

- Поздравление - Вывод на экран окна Поздравление

6. Вывод на экран окна Результаты.

7. Вывод на экран окна Команды вышедшие в 1/4.

9. Вывод на экран окна Команды вышедшие в 1/2.

11. Вывод на экран окна Команды вышедшие в финал.

14. Вывод на экран окна Поздравление.

6. Программное и аппаратное обеспечение программы

Для запуска игры достаточно любого компьютера, на котором установлена хоть какая-нибудь операционная система, семейство Windows.

7. Руководство пользователя

1. Запустите файл «EuroBasket.exe». На экране появится стартовая страница.

2. Нажмите клавишу «Начать» и вы перейдёте ко вкладке ввода команд. Здесь в соответствующие столбцы вводим названия сборных и стран.

3. Нажмите «Далее».

Теперь перед вами таблица игр 1-й группы в 1/8. Таблицу, необходимо заполнить следующими данными: Очки, 3-очковые.

4. Нажмите «Далее» и вы перейдёте к таблице результатов, где увидите

распределение команд группы по местам, сумму очков, количество пропущенных мячей и сумму 3-х очковых.

5. Повторите действия 3-4 ещё 5 раз (пока все группы не сыграют в 1/8).

6. Нажмите «Далее» и вы перейдёте на вкладку, где увидите список команд, вышедших в 1/4 финала.

7. Нажмите «Далее» и на соответствующей вкладке введите результаты 1/4.

8. Нажмите «Далее», и увидите список команд, вышедших в 1/2.

9. Нажмите «Далее» и введите результаты полуфинальной игры.

10. Нажмите «Далее» и вы узнаете, какие команды вышли в финал.

Введите результаты финальной игры.

11. Нажмите «Далее» и радуйтесь за победителя чемпионате Европы по баскетболу среди мужских команд.

Заключение

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

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

- Четко построенный алгоритм;

- Интуитивно понятный интерфейс;

- Удобное управление;

- Простота в использовании;

- Вполне понятное руководство пользователя;

- Отсутствие лишних дополнений.

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

1. Герберт Шилдт «Полный справочник по С#».: Пер. с англ. - М.: Издательский дом «Вильямс», 2004. - 740 с.: ил. - Парал. тит. англ.

2. Ч. Петцольд «Программирование для Windows на C#», «Москва», 2002.

3. Троелсен Э. «С# и платформа.NET. Библиотека программиста» - СПб.: Питер, 2004. - 796 с.: ил.

4. Г. Шилдт «C#. Учебный курс», «Питер», 2003.

Приложение 1

Листинг программы.

ь Form1.cs

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Text;

using System. Windows. Forms;

namespace EuroBasket

{

public partial class Form1: Form

{

private Team[] Teams; // Начальный массив команд

private Team[] TM;

private Team[] TC; // Массив команд в полуфинальных играх

private Championship championship; // Чемпионат содержит всю игровую сетку по группам

public Form1 ()

{

InitializeComponent();

}

int index_step = 0; // Индекс текущего этапа

private void Exchange (Team one, Team two)

{

Team TC = new Team(«», «»);

TC. All_Lose_Points = one. All_Lose_Points;

TC. All_Scores = one. All_Scores;

TC. Country = one. Country;

TC. Name = one. Name;

TC. Three_Points = one. Three_Points;

one. Three_Points = two. Three_Points;

one. Name = two. Name;

one. All_Lose_Points = two. All_Lose_Points;

one. All_Scores = two. All_Scores;

one. Country = two. Country;

two. All_Lose_Points = TC. All_Lose_Points;

two. All_Scores = TC. All_Scores;

two. Country = TC. Country;

two. Name = TC. Name;

two. Three_Points = TC. Three_Points;

} // Метод для обмена команд

private void Sort_In_Group (DataGridView OutPutData, Team[] Teams, int number_group) // Метод сортировки в группах

{

OutPutData. RowCount = 4;

for (int k = 4 * number_group; k < 4 * number_group + 4; k++) // Копируем нужную часть массива Teams[] в массив TM[] чтобы не перемешивать массив Teams[]

{

TM[k] = new Team (Teams[k].Name, Teams[k].Country);

TM[k].All_Lose_Points = Teams[k].All_Lose_Points;

TM[k].All_Scores = Teams[k].All_Scores;

TM[k].Three_Points = Teams[k].Three_Points;

}

for (int i = 0; i < 4; i++) // Сортируем

{

for (int o = 4 * number_group, p = 4 * number_group + 1; p < 4 * number_group + 4; o++, p++)

{

if (TM[o].All_Scores < TM[p].All_Scores) // По забитым мячам

{

Exchange (TM[o], TM[p]);

}

else

{

if (TM[o].All_Scores == TM[p].All_Scores) // Если равны

{

if (championship. Games [o, p, number_group] < championship. Games [p, o, number_group]) // По играм друг с другам

{

Exchange (TM[o], TM[p]);

}

else

{

if (championship. Games [o, p, number_group] == championship. Games [p, o, number_group]) // Если равны

{

if (TM[o].Difference > TM[p].Difference)

{

Exchange (TM[o], TM[p]);

}

else

{

if (TM[o].Difference == TM[p].Difference) // По разнице забитых и пропущенных

{

if (TM[o].Three_Points < TM[p].Three_Points)

{

Exchange (TM[o], TM[p]);

}

}

}

}

}

}

}

}

}

for (int i = 0, k = 4 * number_group; i < 4; i++, k++) // Выводим в таблицу

{

OutPutData [0, i].Value = i + 1;

OutPutData [1, i].Value = TM[k].Name;

OutPutData [3, i].Value = TM[k].All_Lose_Points;

OutPutData [2, i].Value = TM[k].All_Scores;

OutPutData [4, i].Value = TM[k].Three_Points;

}

}

private class Championship // Класс чемпионат

{

public int[,] Games; // Игровая сетка в группах

}

private class Team // Класс команда

{

public string Name; // Имя

public string Country; // Страна

public int All_Scores; // Сумма забитых

public int All_Lose_Points; // Сумма пропущенных

public int Three_Points; // 3-х очковые

public int Difference // Разница забитых и пропущенных

{

get

{

return All_Scores - All_Lose_Points;

}

}

public Team (string Name, string Country) // Конструктор

{

this. Name = Name;

this. Country = Country;

}

}

private void Build_Table (DataGridView output_data, int count_teams, int group_count)

{

output_data. RowCount = 12;

for (int i = count_teams * group_count, irows = 0; i < count_teams * group_count + count_teams - 1; i++)

{

for (int k = i + 1; k < count_teams * group_count + count_teams; k++)

{

output_data [1, irows].Value = Teams[i].Name;

if (irows% 2 == 0 & irows!= 0)

{

output_data [0, irows].Value = Convert. ToInt32 (output_data [0, irows - 2].Value) + 1;

}

else

{

output_data [0, 0].Value = 1;

}

irows++;

output_data [1, irows].Value = Teams[k].Name;

irows++;

}

}

}

private void button1_Click (object sender, EventArgs e) // Кнопка Начать

{

dataGridView1. RowCount = 24; // Присвоить число строк

for (int i = 0; i < 24; i++)

{

dataGridView1 [0, i].Value = (i + 1).ToString(); // Присвоить ячейке по адресу [столбец, строка] значение

}

tabControl1. SelectedIndex++; // Перейти на следующую вкладку

button1_Next. Visible = true; // Показать кнопку далее

}

private void button1_Next_Click (object sender, EventArgs e) // Кнопка далее

{

try // Если не введены данные в какую либо таблицу, чтобы не вылетали ошибки

{

switch (tabControl1. SelectedIndex) // В зависимости от текущей вкладки

{

case 1:// Присваиваем командам имена и страны

{

index_step = 0;

Teams = new Team [dataGridView1. RowCount];

TM = new Team [dataGridView1. RowCount];

for (int i = 0; i < Teams. Length; i++)

{

Teams[i] = new Team (dataGridView1 [1, i].Value. ToString(), dataGridView1 [2, i].Value. ToString());

}

tabControl1. SelectedIndex++;

tabControl2. SelectedIndex = 0;

Build_Table (dataGridView2, 24 / 6, index_step); // Строим групповую таблицу

break;

}

case 2:

{

switch (tabControl2. SelectedIndex) //

{

case 0:

{

championship = new Championship();

championship. Games = new int [24, 24, 6];

for (int i = 0; i < dataGridView2. RowCount; i += 2) // Заполняем игровую сетку для текущей группы

{

for (int p = 4 * index_step; p < 4 * index_step + 4; p++)

{

if (dataGridView2 [1, i].Value. ToString() == Teams[p].Name)

{

Teams[p].All_Scores += Convert. ToInt32 (dataGridView2 [2, i].Value);

Teams[p].All_Lose_Points += Convert. ToInt32 (dataGridView2 [2, i + 1].Value);

Teams[p].Three_Points += Convert. ToInt32 (dataGridView2 [3, i].Value);

for (int m = 4 * index_step; m < 4 * index_step + 4; m++)

{

if (dataGridView2 [1, i + 1].Value. ToString() == Teams[m].Name)

{

Teams[m].All_Scores += Convert. ToInt32 (dataGridView2 [2, i + 1].Value);

Teams[m].All_Lose_Points+= Convert. ToInt32 (dataGridView2 [2, i].Value);

Teams[m].Three_Points += Convert. ToInt32 (dataGridView2 [3, i + 1].Value);

championship. Games [p, m, index_step] = Convert. ToInt32 (dataGridView2 [2, i].Value);

championship. Games [m, p, index_step] = Convert. ToInt32 (dataGridView2 [2, i + 1].Value);

}

}

}

}

}

Sort_In_Group (dataGridView3, Teams, index_step); // Сортируем

tabControl2. SelectedIndex++; // Переходим к результатам

break;

}

case 1:

{

index_step++; // Индекс этап + 1

if (index_step < 6) // Если прошли не все этапы

{

tabControl2. SelectedIndex = 0;

for (int i = 0; i < dataGridView2. RowCount; i++)

{

dataGridView2 [2, i].Value = «»;

dataGridView2 [3, i].Value = «»;

}

Build_Table (dataGridView2, 24 / 6, index_step);

}

else // Если все выводим командв прошедшие в 1 / 4

{

tabControl2. SelectedIndex++;

dataGridView4. RowCount = 8;

for (int i = 0; i < 6; i++)

{

dataGridView4 [0, i].Value = i + 1;

dataGridView4 [1, i].Value = this.TM [i * 4].Country;

dataGridView4 [2, i].Value = this.TM [i * 4].Name;

dataGridView4 [3, i].Value = this.TM [i * 4].All_Scores;

dataGridView4 [4, i].Value = this.TM [i * 4].All_Lose_Points;

dataGridView4 [5, i].Value = this.TM [i * 4].Three_Points;

}

Team[] TM = new Team[6];

for (int i = 0; i < 6; i++)

{

TM[i] = new Team (this.TM [i * 4 + 1].Name, this.TM [i * 4 + 1].Country);

TM[i].All_Lose_Points = this.TM [i * 4 + 1].All_Lose_Points;

TM[i].All_Scores = this.TM [i * 4 + 1].All_Scores;

TM[i].Three_Points = this.TM [i * 4 + 1].Three_Points;

}

for (int i = 0; i < 6; i++) // Сортировка 2 мест в группах

{

for (int o = 0, p = 1; p < 6 - i; o++, p++)

{

if (TM[o].All_Scores < TM[p].All_Scores)

{

Exchange (TM[o], TM[p]);

}

else

{

if (TM[o].All_Scores == TM[p].All_Scores)

{

if (TM[o].Difference < TM[p].Difference)

{

Exchange (TM[o], TM[p]);

}

else

{

if (TM[o].Difference == TM[p].Difference)

{

if (TM[o].Three_Points < TM[p].Three_Points)

{

Exchange (TM[o], TM[p]);

}

}

}

}

}

}

}

 // Вывод 2-х мест

dataGridView4 [0, 6].Value = 7;

dataGridView4 [1, 6].Value = TM[0].Country;

dataGridView4 [2, 6].Value = TM[0].Name;

dataGridView4 [3, 6].Value = TM[0].All_Scores;

dataGridView4 [4, 6].Value = TM[0].All_Lose_Points;

dataGridView4 [5, 6].Value = TM[0].Three_Points;

dataGridView4 [0, 7].Value = 8;

dataGridView4 [1, 7].Value = TM[1].Country;

dataGridView4 [2, 7].Value = TM[1].Name;

dataGridView4 [3, 7].Value = TM[1].All_Scores;

dataGridView4 [4, 7].Value = TM[1].All_Lose_Points;

dataGridView4 [5, 7].Value = TM[1].Three_Points;

 // Полученные команды из таблицы в новый масив

this.TM = new Team[8];

dataGridView5. RowCount = 8;

for (int i = 0; i < 8; i++)

{

this.TM[i] = new Team (dataGridView4 [2, i].Value. ToString(), dataGridView4 [1, i].Value. ToString());

this.TM[i].All_Lose_Points = Convert. ToInt32 (dataGridView4 [4, i].Value);

this.TM[i].All_Scores = Convert. ToInt32 (dataGridView4 [3, i].Value);

this.TM[i].Three_Points = Convert. ToInt32 (dataGridView4 [5, i].Value);

dataGridView5 [1, i].Value = this.TM[i].Name;

}

for (int i = 0, k = 1; i < 8; i += 2, k++)

{

dataGridView5 [0, i].Value = k;

}

}

break;

}

case 2:// Переходим к 1 / 4

{

tabControl1. SelectedIndex++;

break;

}

}

break;

}

case 3:// 1 / 4

{

dataGridView6. RowCount = 4;

TC = new Team[4];

for (int i = 0, k = 0; i < 8; i += 2, k++) // Считывание данных из таблицы

{

this.TM[i].All_Scores = 0;

this.TM[i].All_Lose_Points = 0;

this.TM[i].Three_Points = 0;

this.TM [i + 1].All_Scores = 0;

this.TM [i + 1].All_Lose_Points = 0;

this.TM [i + 1].Three_Points = 0;

this.TM[i].All_Scores = Convert. ToInt32 (dataGridView5 [2, i].Value);

this.TM[i].All_Lose_Points = Convert. ToInt32 (dataGridView5 [2, i + 1].Value);

this.TM[i].Three_Points = Convert. ToInt32 (dataGridView5 [3, i].Value);

this.TM [i + 1].All_Scores = Convert. ToInt32 (dataGridView5 [2, i + 1].Value);

this.TM [i + 1].All_Lose_Points = Convert. ToInt32 (dataGridView5 [2, i].Value);

this.TM [i + 1].Three_Points = Convert. ToInt32 (dataGridView5 [3, i + 1].Value);

if (this.TM[i].All_Scores > this.TM [i + 1].All_Scores) // Тут же сортировка

{

TC[k] = new Team (TM[i].Name, TM[i].Country);

TC[k].All_Lose_Points = TM[i].All_Lose_Points;

TC[k].All_Scores = TM[i].All_Scores;

TC[k].Three_Points = TM[i].Three_Points;

}

else

{

if (this.TM[i].All_Scores < this.TM [i + 1].All_Scores)

{

TC[k] = new Team (TM[i + 1].Name, TM [i + 1].Country);

TC[k].All_Lose_Points = TM [i + 1].All_Lose_Points;

TC[k].All_Scores = TM [i + 1].All_Scores;

TC[k].Three_Points = TM [i + 1].Three_Points;

}

else

{

if (this.TM[i].All_Scores == this.TM [i + 1].All_Scores)

{

if (this.TM[i].Three_Points > TM [i + 1].Three_Points)

{

TC[k] = new Team (TM[i].Name, TM[i].Country);

TC[k].All_Lose_Points = TM[i].All_Lose_Points;

TC[k].All_Scores = TM[i].All_Scores;

TC[k].Three_Points = TM[i].Three_Points;

}

else

{

TC[k] = new Team (TM[i + 1].Name, TM [i + 1].Country);

TC[k].All_Lose_Points = TM [i + 1].All_Lose_Points;

TC[k].All_Scores = TM [i + 1].All_Scores;

TC[k].Three_Points = TM [i + 1].Three_Points;

}

}

}

}

}

for (int i = 0; i < 4; i++) // Вывод Результатов 1 / 4

{

dataGridView6 [0, i].Value = i + 1;

dataGridView6 [1, i].Value = TC[i].Country;

dataGridView6 [2, i].Value = TC[i].Name;

dataGridView6 [3, i].Value = TC[i].All_Scores;

dataGridView6 [4, i].Value = TC[i].All_Lose_Points;

dataGridView6 [5, i].Value = TC[i].Three_Points;

}

tabControl1. SelectedIndex++; // Показываем результаты

break;

}

case 4:// Строим 1 / 2 сетку игр

{

dataGridView7. RowCount = 4;

for (int i = 0, k = 1; i < 4; i++)

{

if (i% 2 == 0)

{

dataGridView7 [0, i].Value = k;

k++;

}

dataGridView7 [1, i].Value = TC[i].Name;

}

tabControl1. SelectedIndex++;

break;

}

case 5:

{

for (int i = 0; i < 4; i += 2) // Считываем данные 1 / 2

{

this.TC[i].All_Scores = 0;

this.TC[i].All_Lose_Points = 0;

this.TC[i].Three_Points = 0;

this.TC [i + 1].All_Scores = 0;

this.TC [i + 1].All_Lose_Points = 0;

this.TC [i + 1].Three_Points = 0;

this.TC[i].Name = dataGridView7 [1, i].Value. ToString();

this.TC[i].All_Scores = Convert. ToInt32 (dataGridView7 [2, i].Value);

this.TC[i].Three_Points = Convert. ToInt32 (dataGridView7 [3, i].Value);

this.TC [i + 1].Name = dataGridView7 [1, i + 1].Value. ToString();

this.TC [i + 1].All_Scores = Convert. ToInt32 (dataGridView7 [2, i + 1].Value);

this.TC [i + 1].Three_Points = Convert. ToInt32 (dataGridView7 [3, i + 1].Value);

if (this.TC[i].All_Scores < this.TC [i + 1].All_Scores) // Сортируем

{

Exchange (TC[i], TC [i + 1]);

}

else

{

if (TC[i].All_Scores == TC [i + 1].All_Scores)

{

if (TC[i].Three_Points < TC [i + 1].Three_Points)

{

Exchange (TC[i], TC [i + 1]);

}

}

}

}

 // Выводим финалистов

groupBox1. Text = TC[0].Name;

groupBox2. Text = TC[2].Name;

tabControl1. SelectedIndex++;

break;

}

case 6:

{

if (numericUpDown1. Value > numericUpDown3. Value) // Выбор победителя

{

label3. Text = groupBox1. Text + «победитель чемпионата!!!»;

}

else

{

if (numericUpDown1. Value < numericUpDown3. Value)

{

label3. Text = groupBox2. Text + «победитель чемпионата!!!»;

}

else

{

if (numericUpDown2. Value > numericUpDown4. Value)

{

label3. Text = groupBox1. Text + «победитель чемпионата!!!»;

}

else

{

label3. Text = groupBox2. Text + «победитель чемпионата!!!»;

}

}

}

tabControl1. SelectedIndex++;

break;

}

}

}

catch {MessageBox. Show («В таблицу введены не все данные, или они введены некорректно», «Информация», MessageBoxButtons.OK, MessageBoxIcon. Information);}

}

private void tabControl1_TabIndexChanged (object sender, EventArgs e)

{

button1_Next_Click (sender, e);

}}}

игра баскетбол программирование eurobasket

Размещено на Allbest.ru


Подобные документы

  • Особенности разработки компьютерной игры, в которой проводится чемпионат по волейболу. Список переменных и типов данных. Разработка текстового и графического алгоритма. Разбор основных этапов игры на примере. Основные положения руководства пользователя.

    курсовая работа [976,9 K], добавлен 09.06.2016

  • Группировка атрибутов в отношениях, их нормализация. Характеристика сжатых типов таблиц. Создание базы данных MS Access. Построение сценария работы программы. Создание кнопочной формы, запросов и отчетов. Минимальное аппаратное и программное обеспечение.

    курсовая работа [1,3 M], добавлен 20.04.2015

  • "Пятнашки" на первый взгляд простая игра, но для ее реализации необходимо обратится ко всем разделам программирования в среде Турбо Паскаль. Назначение и область применения. Описание алгоритма программы. Программное и аппаратное обеспечение программы.

    курсовая работа [308,0 K], добавлен 04.07.2008

  • Формирование на экране меню для выбора функций. Элементы пользовательского интерфейса. Описание внутренних переменных, входных и выходных данных языка программирования Си. Выбор пользователем функции. Создание программы "Список коммерческих банков".

    курсовая работа [491,9 K], добавлен 17.03.2015

  • Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.

    курсовая работа [711,4 K], добавлен 27.07.2014

  • Назначение и состав системного блока компьютера. Виды и применение системных программ. Основные возможности Word: способы выполнения команд, запуск программы, открытие документа и завершение работы. Функционирование информационно-вычислительной сети.

    контрольная работа [541,2 K], добавлен 27.08.2013

  • Рассмотрение основ работы в Microsoft Visual Studio 2010 с языком программирования С#. Реализация программы обработки данных авиапассажиров. Выбор метода ввода данных из текстового файла. Создание фильтра для обработки списка по определенным критериям.

    курсовая работа [1,4 M], добавлен 17.01.2016

  • Анализ предметной области. Проектирование и разработка базы данных и интерфейса в виде набора Web-страниц для отображения, создания, удаления и редактирования записей базы данных. Аппаратное и программное обеспечение системы. Алгоритм работы программы.

    курсовая работа [3,0 M], добавлен 12.01.2016

  • Разработка игры "Экзамен" с применением объектно-ориентированного программирования и языка Java (в среде Eclipse Helios). Структура программы и алгоритм решения задачи. Описание методов и переменных. Экспериментальное тестирование и оценка программы.

    курсовая работа [122,5 K], добавлен 19.05.2011

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.