GAME

Page created by Netrex
Main page
Privacy & security
Online test
Port list
C++
GPS
Soft
Downloads
News
Guest book
Photos
Online games
ICQ# 219-370-918

My ICQ status is

E-mail to me

Rambler's Top100 Rambler's Top100

Программа CONTROL. Простейшая игра. Работает таймер обратного отсчета. за это время Вы должны убегать своим квадратиком от квадратика компьютера, в то время как квадратик компьютера гонится за вами. Несколько раз вы можете перепрыгнуть с одной стороны экрана на другую. В игре есть два чита которые могут "облегчить вам жизнь".

СКАЧАТЬ!!!

Назад к оглавлению

#include <dos.h>
#include <bios.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>


void swap();
  //смена цвета при перескакивании нашего квадратика с одной стороны экрана на другую
void show();
  //перерисовка экрана
void move();
  //наш ход
void cpu();
  //ход компьютера
void info();
  //вывести на экран (обновить) счет

int count,win_limit,key,jump,cpu_c,human_c,a,row_speed,h,col_speed,b,x1,x2,y1,y2,col;

main()
{
randomize();
row_speed=2;col_speed=2,a=3;b=1;  //
задаем скорость передвижения и размееры квадрата
textmode(C80);
  //устонавливаем формат вывода текста 80Х25 символов
dima:
jump=5;
  //устонавливаем максимальное число перескоков с одной стороны экрана на другую
textattr(138);
clrscr();
window(30,12,80,12);
cprintf("press any key to start");
getch();
clrscr();
col=42;
x2=random(75);
  //произвольное расположение квадрата компьютера по оси Х
x2++;
y2=random(23);
 //произвольное расположение квадрата компьютера по оси Y
y2++;
textbackground(col);
x1=40;  //
наш квадрат располагаем в центре
y1=12;
count=0;h=1;win_limit=400;cpu_c=0;human_c=0;
  //обнуляем счетчики ходов, устанавливаем таймер на 400 милисекунд
while (key!=283)
  //повторяем до нажатия ESC
     {
     if (x1==x2&&y1==y2)  //
если координаты обоих квадратов совпадаю, то мы проиграли
          {
          window(30,12,80,12);
          textattr(140);
          cprintf("You lose!!!");
          sound(2500);
          delay(100);
          sound(2000);
          delay(100);
          sound(1500);
          delay(100);
          nosound();
          goto dima//
игра заново
          }
     if (count>=win_limit)
 //если таймер истек, то мы вайграли
          {
          window(30,12,80,12);
          textattr(137);
          cprintf("You win!!!");
          sound(1500);
          delay(100);
          sound(2000);
          delay(100);
          sound(2300);
          delay(100);
          sound(2500);
          delay(300);
          sound(2000);
          delay(100);
          sound(2500);
          delay(300);
          nosound();
          goto dima;
   //игра заново
          }
     delay(150);
     if (bioskey(1) != 0)
  //если клавиша нажата, то запускаем move() и передвигаем наш квадрат
          {
          move();
          }
     cpu();
 //ходит комьпьютер
     show();  //
отображаем все на мониторе
     info();
  //снизу ведем статистику
     count+
+ //начислем счетчик ходов
     }
nosound();
return 1;
}

void show()
  //перерисовка экрана
{
window(1,1,80,25);
textattr(0);
clrscr();
  //заливаем черным окно
//sound(sound1); //
если убрать это коментирование то при каждой перерисовки будет звучать динамик

textattr(col);
window(x1,y1,x1+a,y1+b);
clrscr();
cprintf("” ” ДД");
  //рисуем рожицу которой ходим мы
if (x1==x2&&y1==y2)
     {
     window(x2,y2,x2+a,y2+b);
     textattr(76);
     clrscr();
     cprintf("м__н ДД");
  //рисуем рожицу компьютера которая нас съела
     }
else
     {
     window(x2,y2,x2+a,y2+b);
     textattr(76);
     clrscr();
     cprintf("м н НН");
 //рисуем рожицу компьютера
     }
}

void swap()
 //смена цвета при перескоке
{
int check;
sound(1500);
delay(50);
nosound();
switch (col)
 //просто меняем последовательо цвета пропуская цвет фона и цвет противника
     {
     case 25: col=42;
     break;

     case 42: col=59;
     break;

     case 59: col=93;
     break;

     case 93: col=110;
     break;

     case 110: col=127;
     break;

     case 127: col=25;
     break;
     }
if (jump>0) jump--;
 //вычитаем число допустимых скачков
}

void move()
  //наш ход
{
int check;
human_c++;
  //начисляем счетчик наших ходов
key=bioskey(0);
 //считываем нажатую клавишу
sound(3500);
delay(20);
nosound();
switch (key)
 //перебираем все возможные варианты нажатия клавишы
     {
     case 14122: textattr(2);
 //актививизация чита №1
     window(60,22,80,25);
     clrscr();
     cprintf("cheat enabled!!!\r\njump left:");
     sound(2500);
     delay(500);
     nosound();
     cscanf("%d",&jump);
     break;

     case 10622: textattr(2);
  //актививизация чита №2
     window(60,22,80,25);
     clrscr();
     cprintf("cheat enabled!!!");
     sound(2500);
     delay(500);
     nosound();
     while (key!=10592)
  //прекращение действия чита
          {
          move();
          show();
          info();
          }
     break;

     case 18432: y1=y1-col_speed;
  //двигаемся вверх
     break;

     case 20480: y1=y1+col_speed;
  //двигаемся вниз
     break;

     case 19712: x1=x1+row_speed;
 //двигаемся направо
     break;

     case 19200: x1=x1-row_speed;
  //двигаемся налево

     }
check=0;
 //check создан для того, чтобы избежать бесконечного прыгания с одной стороны экрана на другую и обратно
if (x1<=a-1&&check==0)
  //нужно ли перескакивать по горизонтали или нет
     {
     if (jump==0)
          {
          swap();
          x1=x1+row_speed;
          }
     else
          {
          x1=80-a;
          check++;
          swap();
          }
     }
if (x1>=79-a&&check==0)
     {
     if (jump==0)
          {
          swap();
          x1=x1-row_speed;
          }
     else
          {
          x1=1;
          check++;
          swap();
          }
     }
if (y1<=1&&check==0)
  //нужно ли перескакивать по вертикли или нет
     {
     if (jump==0)
          {
          swap();
          y1=y1+col_speed;
          }
     else
          {
          y1=25-b;
          check++;
          swap();
          }
     }
if (y1>=25-b&&check==0)
     {
     if (jump==0)
          {
          swap();
          y1=y1-col_speed;
          y2=y2-col_speed;
          }
     else
          {
          y1=1;
          swap();
          }
     }
}

void cpu()
  //ход компьютера
{
int move,row,col,check_x,check_y;
cpu_c++;
  //начисляем счетчик хода компьютера
row=x1-x2;
 //алгаритм решения куда ходить, чтобы догнать нас
col=y1-y2;
if (row!=0) check_x=80/row;
if (col!=0) check_y=25/col;
move=0;
if (check_x>=check_y&&move==0||!row)
//непосредственно движение
     {
     if (y1>=y2)
          {
          y2++;
          }
     if (y1<y2)
          {
          y2--;
          }
     move++;
     }
if (check_x<check_y&&move==0||!col)
     {
     if (x1>=x2)
          {
          x2++;
          }
     if (x1<x2)
          {
          x2--;
          }
     move++;
     }
}

void info()
 //функция вывода на экран статистики
{
textattr(10);
window(1,22,20,25);
cprintf("human turn:%d\r\ncpu turn:%d\r\ntime:%d\r\njumps left:%d",human_c,cpu_c,win_limit-count,jump);
}

Hosted by uCoz