на тему «Online-компиляторы и игры»




Практическая работа №1

ПО «МДК»

на тему «Online-компиляторы и игры»

 

 

ВЫПОЛНИЛ:

Студент группы ИСП-О-19

Жохов А.С.

 

ПРОВЕРИЛ:

Семенов.Д.В

 

Оценка:___________________

 

п. Электроизолятор

2020 г

Online-компиляторы

Цель данной работы познакомиться с онлайн-компиляторами и научиться с ними работать.

Задание 1

1. Koding.com — не является онлайн-компилятором в привычном смысле. Каждый пользователь сервиса может создать в облаке несколько полноценных виртуальных машин под управлением Ubuntu 14.04, на которых может сделать всё, что пожелает, в том числе — скомпилировать код.

2. IdeOne — это онлайн компилятор, а также инструмент отладки, который позволяет прямо в браузере выполнять код на более чем 60 языках программирования и их конкретных версиях.

3. JDoodle — есть возможность совместной работы — просто требется отправить ссылку на вашу текущую сессию

4. CodePad — минималистичный сервис, в котором можно хранить код, делиться им и запускать с последующим выводом результатов его выполнения. На выбор предоставляется несколько наиболее распространённых языков, но, к сожалению, без выбора конкретных версий интерпретаторов или компиляторов.

5. GCC GodBolt — интерактивный компилятор языка С++. Имеет простой интерфейс, а также большое количество настроек

6-7 SandBox, и PHPFiddle позволяют в один клик запустить PHP код и следом получить его вывод. PHPFiddle имеет более удобный и современный дизайн, на нём установлена актуальная версия PHP.SandBox же, кроме использования самой последней версии языка, даёт пользователю возможность выбрать версию самостоятельно.

8. jsFiddle создан не только для JavaScript. Этот онлайн-редактор для фронтенда позволяет проверить любое сочетание JavaScript, HTML и CSS.

9. Python Fiddle

Онлайн-среда для проектирования на Python. Поддерживает внешние Python-библиотеки. Есть стандартная подсветка кода и возможность импорта по url c внешних ресурсов.

10. SQL Fiddle

Инструмент для онлайн-тестирования и совместного использования баз данных. Возможно использование различных версий MySql, SQLite, PostgreSQL, Oracle и MS SQL Server 2008 и 2014.

 

Вывод: Я нашел код для игр Змейка и Крестики нолики, научился пользоваться онлайн-компиляторами узнал какие они бывают, так же делаю для себя вывод что хочу сам написать код для игры

 

Крестики нолики

#include <stdio.h>

#include <conio.h>

 

int a[3][3];// объявляем текущее поле 3 строки и 3 столбца. если нет ничего то поле 0, если нолик, то 1, если крестик то 2

 

// обнуление поля

 

void nul()

{ int i,j;

 

// пробегаем по всем строкам

for(i=1; i<=3; i++)

{

// пробегаем по всем столбцам

for (j=1;j<=3;j++)

{

a[i][j]=0;

}

}

}

 

// вывод поля на экран

 

void visual()

{

int i,j;

printf (" 1 2 3\n");

 

// пробегаем по всем строкам

for(i=1; i<=3; i++)

{

printf ("%d", i);

// пробегаем по всем столбцам

for (j=1;j<=3;j++)

{

if (a[i][j]==0){printf("| ");};

if (a[i][j]==1){printf("|O");};

if (a[i][j]==2){printf("|X");};

}

 

// переходим на следующую строку

 

printf ("|\n");

printf ("________\n");

}

}

 

// Ход игрока n - номер игрока На выходе: 0 -

 

void hod (int n)

{

int hi;// ход игрока

int sto; // номер столбца в ходе

int str; // номер строки в ходе

int ver=0; // проверка на корректность хода, если нельзя сделать такой ход то 0, если можно то 1

// запрашиваем ход, пока не будет введен корректный ход

 

while (ver==0)

{

// ввод хода

printf ("Ваш ход. Введите номер строки и столбца. \n");

scanf("%d", &hi);

 

// определяем номер столбца - это последняя цифра в ходе

sto=hi%10;

 

// определяем номер строки хода - это первая цифра

str=(hi-sto)/10;

 

// проверка корректности хода, клетка должна быть пуста и номер должен быть один из номеров таблицы 3 на 3

if (a[str][sto]==0 && (hi==11 || hi==12 || hi==13 || hi==21 || hi==22 || hi==23 || hi==31 || hi==32 || hi==33)) (ver=1);

}

 

// если ходил игрок 1 то поле хода 1

if (n==1) {a[str][sto]=1;}

// если ходил игрок 2 то поле хода 2

if (n==2) {a[str][sto]=2;}

}

 

// Проверка Если ни один игрок не выиграл то 0, если выиграл нолик то 1 если выиграл крестик то 2

int proverka()

{ int i;

int res; // значение функции. Если ни один игрок не выиграл то 0, если выиграл нолик то 1 если выиграл крестик то 2

res=0;

// проверяем выигрыш первого игрока

 

// пробегаем по всем строкам

for (i=1; i<=3; i++)

{

// проверка все ли в строке нолики

if (a[i][1]==1 && a[i][2]==1 && a[i][3]==1) {res=1;}

}

 

// пробегаем по всем столбцам

for (i=1; i<=3; i++)

{

// проверка все ли в столбце нолики

if (a[1][i]==1 && a[2][i]==1 && a[3][i]==1) {res=1;}

}

 

// проверка диагоналей

if (a[1][1]==1 && a[2][2]==1 && a[3][3]==1) {res=1;}

if (a[1][3]==1 && a[2][2]==1 && a[3][1]==1) {res=1;}

 

// проверяем выигрыш второго игрока

// пробегаем по всем строкам

for (i=1; i<=3; i++)

{

// проверка все ли в строке крестики

if (a[i][1]==2 && a[i][2]==2 && a[i][3]==2) {res=2;}

}

 

// пробегаем по всем столбцам

for (i=1; i<=3; i++)

{

// проверка все ли в столбце крестики

if (a[1][i]==2 && a[2][i]==2 && a[3][i]==2) {res=2;}

}

 

// проверка диагоналей

if (a[1][1]==2 && a[2][2]==2 && a[3][3]==2) {res=2;}

if (a[1][3]==2 && a[2][2]==2 && a[3][1]==2) {res=2;}

return res;

}

 

main()

{

int igra;// состояние игры если победил нолик то 1, если победил крестик то 2 если никто пока не победил то 0

// обнуляем очищаем поле

nul();

// отображаем игровое поле

visual();

igra=0;

 

// пока никто не победил продолжается игра

 

while (igra==0)

{

// ход 1 го игрока нолика

hod(1);

// отображаем игровое поле

visual();

// проверка на победу первого игрока

igra=proverka();

// если первый игрок не победил, то ходит второй игрок

 

if (igra==0)

{

// ход второго игрока

hod(2);

// отображаем игровое поле

visual();

// проверка на победу второго игрока

igra=proverka();}

 

}

 

// отображение результатов игры

if (igra==1){printf ("Победил нолик\n");};

if (igra==2){printf ("Победил крестик\n");};

getch();

}

Змейка #include <time.h>

#include <string.h>

#include <stdlib.h>

#include <curses.h>

 

#define putxy(c, x, y) do { move(y, x); addch(c); } while (0);

#define CPS CLOCKS_PER_SEC

 

int main() {

struct { int x; int y; } sc[2001];

int l = 5, dx = 1, dy = 0, bx = -1, by = -1, b = 1, score = 0, c, run = 1, g = 0;

clock_t mt, bt;

 

initscr(); noecho(); curs_set(0); keypad(stdscr, 1); nodelay(stdscr, 1);

 

for (c = 0; c < l; ++c) {

putxy('#', c, 0);

sc[l - c - 1].x = c; sc[l - c - 1].y = 0;

}

 

mt = bt = clock();

 

while (run) {

switch (getch()) {

case KEY_UP: dx = 0; dy = -1; break;

case KEY_DOWN: dx = 0; dy = 1; break;

case KEY_LEFT: dx = -1; dy = 0; break;

case KEY_RIGHT: dx = 1; dy = 0; break;

case 27: run = 0; break;

}

 

if (clock() - mt >= CPS * 0.1) { // пришло время передвижения

int x = sc[0].x + dx, y = sc[0].y + dy;

if (x == bx && y == by) {

score += b * 10;

bx = -1; by = -1;

g = 10;

}

putxy('#', x, y);

putxy(' ', sc[l - 1].x, sc[l - 1].y);

memmove(sc + 1, sc, l * sizeof(sc[0]));

sc[0].x = x; sc[0].y = y;

 

if (g) --g, ++l;

 

if (x > 79 || x < 0 || y > 24 || y < 0) run = 0;

for (c = 1; c < l; ++c) if (x == sc[c].x && y == sc[c].y) run = 0;

mt += CPS * 0.1;

}

 

if (clock() - bt >= CPS) { // пришло время глянуть, шо там с бонусом

if (!(--b)) {

int cf = 1;

putxy(' ', bx, by);

while (cf) {

bx = rand() % 80; by = rand() % 25;

cf = 0;

for (c = 0; c < l; ++c) if (bx == sc[c].x && by == sc[c].y) cf = 1;

}

putxy('*', bx, by);

b = 10;

}

bt += CPS;

}

// сюда можно вставить sleep

}

clear(); nodelay(stdscr, 0);

printw("game over!\nyou score: %d\npress any key...", score);

getch(); endwin();

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: