русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Начало реализации класса game


Дата добавления: 2015-06-12; просмотров: 1899; Нарушение авторских прав


Класс gameбудет самым большим и сложным в проекте. В этом классе будет сосредоточено программирование логики игры и контроль над действиями пользователя. Перейдем на закладку game.java и добавим в самом верху уже знакомые нам пять библиотек:

// Для работы с событиями(мышь, таймер)

import java.awt.event.*;

// Для работы с окнами и кнопками

import javax.swing.*;

// Для работы с графикой

import java.awt.*;

// Для работы с картинками

import javax.imageio.*;

// Для работы с файлами

import java.io.*;

 

// Класс, реализующий логику игры - управление игрой

public class game { }

Эти же библиотеки добавлены в классе pole. Начнем со свойств класса game (переменных класса).В самом верху класса добавим необходимые свойства:

// Для работы с событиями(мышь, таймер)

import java.awt.event.*;

// Для работы с окнами и кнопками

import javax.swing.*;

// Для работы с графикой

import java.awt.*;

// Для работы с картинками

import javax.imageio.*;

// Для работы с файлами

import java.io.*;

// Класс, реализующий логику игры - управление игрой

public class game

{

// Изображение рубашки карты

public Image rubashka;

// Массив стопок карт

private stopka[] stopki;

// Признак первой выдачи карт из верхней

// левой стопки

private boolean pervVidacha;

// Признак окончания игры

public boolean endGame;

}

Это переменные, которые понадобятся для реализации первого уровня сложности игры. Первая переменная –это изображение рубашки карты. Это изображение будет передаваться в конструктор класса karta. Изображение будет общим для всех карт колоды расположенных рубашкой вверх:

// Изображение рубашки карты

public Image rubashka;

Вторая переменная–это массив,который будет хранить стопки карт игрового поля. Обратите внимание, что тип массива–stopka (класс, созданный на предыдущем этапе):



// Массив стопок карт

private stopka[] stopki;

Третья переменная–это признак первой выдачи карт из верхней левой колоды:

// Признак первой выдачи карт из верхней

// левой стопки

private boolean pervVidacha;

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

Рис. 4

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

Рис. 5

Когда все карты в верхней левой стопке закончатся –в перемешанном виде они будут находиться в правой от нее стопке(см. рис. 6).

Рис. 6

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

Четвертая переменная –это признак окончания игры:

// Признак окончания игры

public boolean endGame;

Под блоком переменных класса добавим методы класса game, но пока без программного кода. Только заголовки методов:

// Изображение рубашки карты

public Image rubashka;

// Массив стопок карт

private stopka[] stopki;

// Признак первой выдачи карт из верхней

// левой стопки

private boolean pervVidacha;

// Признак окончания игры

public boolean endGame;

//Конструктор класса

public game()

{

}

// При захвате карты мышью

public void mouseDragged(int mX, int mY)

{

}

// При одиночном нажатии левой кнопки мыши

public void mousePressed(int mX, int mY)

{

}

// При двойном щелчке левой клавишей мыши

public void mouseDoublePressed(int mX, int mY)

{

}

// При отпускании левой кнопки мыши

public void mouseReleased(int mX, int mY)

{

}

// Определение стопки на которую нажали мышью

private int getNomKolodaPress(int mX, int mY)

{

// Если курсор мыши не попал по стопке карт

return-1;

}

// Выдача карт из верхней левой стопки

private void vidacha()

{

}

// Старт игры - Новая игра

public void start()

{

}

// Загрузка изображений колоды

private void load()

{

}

 

// Метод отрисовки всех стопок карт

public void drawKoloda(Graphics gr)

{

}

Программный код внутри этих методов нам предстоит написать позднее. А пока рассмотрим их предназначение. Конструктор класса, как обычно, выполняет стартовые действия при создании объекта:

//Конструктор класса

public game()

Четыре метода, которые начинаются со слова mouse, будут вызываться при различных действиях мышью. Этим методам будут передаваться координаты курсора мыши.

Метод getNomKolodaPress()будет вычислять номер стопки, на которую нажал мышью пользователь. Вычисление будет производиться по координатам курсора мыши:

// Определение стопки на которую нажали мышью

private int getNomKolodaPress(int mX, int mY)

Метод vidacha() будет отвечать за выдачу карт из верхней левой стопки:

// Выдача карт из верхней левой стопки

private void vidacha()

Метод start()будет вызываться при запуске новой игры:

// Старт игры - Новая игра

public void start()

Метод load()будет загружать изображения карт:

// Загрузка изображений колоды

private void load()

И метод drawKoloda() будет выполнять отрисовку всех стопок карт:

// Метод отрисовки всех стопок карт

public void drawKoloda(Graphics gr)

К созданию программного кода методов класса game –мы приступим после реализации класса pole.



<== предыдущая лекция | следующая лекция ==>
Реализация класса stopka | Реализация класса pole


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.626 сек.