- •Оглавление
- •Введение
- •1.Теоретическая часть
- •1.1.Объектно-ориентированное программирование
- •1.2. Инкапсуляция
- •1.3. Полиморфизм
- •1.4.Наследование
- •1.5. Абстрагирование
- •1.6.Статические классы и методы
- •1.7.Виртуальные функции и чистые виртуальные функции
- •1.8. Множественное наследование. Интерфейсы
- •2. Практическая часть
- •2.1. Постановка задачи
- •2.2.Программирование задачи
- •2.3. Результаты работы
- •3.Заключение
- •Листинг программы Файл Form1.Cs
- •Файл Ships.Cs
- •Файл Places.Cs
- •Файл ShipAi.Cs
- •Список литературы
Файл Ships.Cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
public class Ships
{
Form1 form;
public int ships_leght;
public int coordX, coordY;
public Ships()
{
coordX = 0;
coordY = 0;
}
public Ships(int k)
{
ships_leght = k;
}
public virtual void fight_places(Places p)
{
int a = coordX;
int b = coordY;
for (int i = a; i < (a + 1); i++)
{
for (int j = b; j < b + ships_leght; j++)
{
p.map[i, j] = Convert.ToChar("X");
}
}
}
public virtual void vert(Places p)
{
int a = coordX;
int b = coordY;
for (int i = a; i < (a + 1); i++)
{
for (int j = b; j < b + ships_leght; j++)
{
p.map[j, i] = Convert.ToChar("X");
}
//else
//{
// MessageBox.Show("Нельзя так близко ставить корабли", "Близко!", MessageBoxButtons.OK, MessageBoxIcon.Error);
// //form.enter_coordinates(this);
//}
}
}
}
Файл Places.Cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
public class Places
{
public static int weight, height; // длина и ширина поля
static Places() // статический конструктор класса Places
{
weight = 11;
height = 11;
}
public char[,] map = new char[weight, height]; // поле для игры
public void create() // метод создания поля игры
{
for (int i = 1; i < weight; i++)
{
for (int j = 1; j < height; j++)
{
this.map[i, j] = Convert.ToChar("+");
}
}
}
}
Файл ShipAi.Cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace WindowsFormsApplication2
{
class ShipAI : Ships
{
Random rand = new Random();
public void enter()
{
coordX = rand.Next(1, 9);
coordY = rand.Next(1, 9);
}
public ShipAI(int k) : base(k)
{
}
public void placement()
{
int a = rand.Next(1, 2);
switch(a)
{
case 1: break;
case 2: break;
}
}
public override void fight_places(Places p)
{
enter();
int a = coordX;
int b = coordY;
for (int i = a; i < (a + 1); i++)
{
for (int j = b; j < b + ships_leght; j++)
{
// if ((p.map[i, j] != Convert.ToChar("X")) && (p.map[i, j + ships_leght] != Convert.ToChar("X")) && (p.map[i + 1, j] != Convert.ToChar("X")) && (p.map[i - 1, j] != Convert.ToChar("X")))
p.map[i, j] = Convert.ToChar("X");
}
}
}
public override void vert(Places p)
{
int a = coordY;
int b = coordX;
for (int i = a; i < (a + 1); i++)
{
for (int j = b; j < b + ships_leght; j++)
{
if ((p.map[i, j] != Convert.ToChar("X")) && (p.map[i + ships_leght, j] != Convert.ToChar("X")) && (p.map[i, j + 1] != Convert.ToChar("X")) && (p.map[i, j - 1] != Convert.ToChar("X")))
{ p.map[j, i] = Convert.ToChar("X"); }
}
}
}
}
}