Компьютерный тренажер памяти на си

10 февраля 2020 - Администратор

Компьютер тренажер зрительного внимания на си


В этой статье мы разберем алгоритм и его реализацию на си тренажера зрительной памяти. На экран выводятся фигуры разного цвета, необходимо за короткое время подсчитать количество фигур заданного цвета. Разберем алгоритм тренажера зрительной памяти.
В теле глобального цикла for для каждой игры рассчитываем количество клеток и столбцов.  Подробно о циклах for  в Си. С увеличением номера игры увеличивается количество фигур на экране. Нужный цвет задаётся случайным образом. Далее в двух вложенных циклах for рисуем фигуры, цвет которых также определяется случайным образом в виде таблицы. Если цвет фигуры совпадает с нужным, то мы увеличиваем счётчик нужных фигур на 1. После этого у пользователя спрашивается, сколько фигур нужного цвета он смог увидеть. Ответ пользователя вводится и проверяется. Если ответ неправильный, на экран выводится информация о правильном ответе. Если же ответ правильный, увеличивается счётчик правильных ответов. Когда кончается последняя игра, выводится статистика о игре, количество правильных ответов.    
В программе компьютерного тренажера зрительного внимания используются следующие переменные
Переменная  k отвечает за текущее количество строк и столбцов фигур
Переменная size отвечает за размер фигуры
Переменная  n отвечает за  количество фигур заданного цвета.
В переменная cr содержит номер нужного цвета
В переменную p записывается количество правильных ответов
Иллюстрация работы программы тренажер зрительного внимания

компьютерный тренажер зрительной памяти на си
На экран выводится орнамент из разноцветных фигур, внизу орнамента выводится нужный цвет фигуры, который необходимо посчитать. Через паузу экран стирается и пользователю нужно ввести число фигур заданного цвета. С каждым уровнем увеличивается число фигур и меняется их форма с квадратов на круги.
Программа компьютерного тренажера зрительного внимания на си
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include <iostream.h>
//  Выдаёт секунды.
int sec()
{
time_t t;
struct tm *t_m;
t=time(NULL);
t_m=localtime(&t);
return t_m->tm_sec;
}
//  Основная программа.
main()
{
    setlocale(LC_ALL, "Russian");
int i,j,g;//  Переменные для циклов.
int k=7;//  Количество строк и столбцов.
int size;//  Размер.
int color=0;//  Цвет.
int n=0;//  Подсчитываем количество квадратов заданного цвета.
int cr=0;//  Цвет квадрата который нужно угадывать.
int a=0;
int p=0;//  Количество правильных ответов.
int ki=10;//  Количество игр.
int ans;//  Переменная отвечающая за продолжение теста.
// Пробегаемся по играм.
ans=1;
while(ans==1){
k=7;
for(g=1;g<ki;g++){
initwindow(800,800);//  Создаём графическое окно размером 600 на 600.
size=600/k;//  Рассчитываем размер квадрата.
n=0;
cr=(rand()+sec())%15+1;
if (g<5){
setfillstyle(1,cr);
bar(350,650,350+size,650+size);}
if (g>=5){
setfillstyle(1,cr);
setcolor(cr);
circle(350,720,size/4);
floodfill(350,720,cr);}
// Пробегаемся по строкам.
for(i=0;i<=k;i++)
{
//  Пробегаемся по всем столбцам.
for(j=0;j<=k;j++)
{
// Определяем случайным образом цвет квадратов.
color=(rand()+2*sec())%15+1;
if(color==cr){
n=n+1;}
if (g<5){
// Задаём заполнение цветом.
setfillstyle(1,color);
//  Рисуем закрашенный квадрат в столбце и в строке размером size.
bar(j*size,i*size,(j+1)*size,(i+1)*size);}
if (g>=5){
   // Задаём заполнение цветом.
setfillstyle(1,color);
setcolor(color);
//  Рисуем закрашенный квадрат в столбце и в строке размером size.
circle((j+1)*size,(i+1)*size,size/4);
floodfill((j+1)*size,(i+1)*size,color);       
          }
}
}
delay(5000);
closegraph();
printf("Сколько нужных?\n");
scanf("%d",&a);
if(a==n){
printf("Молодец, правильно!\n");
p=p+1;
}
else{
printf("Неправильно!\n");}
printf("Количество нужных %d\n",n);
delay(1000);
}
k=k+1;
printf("Количество игр %d\n",ki);
printf("Количество правильных ответов %d",p);
printf("Хотите продолжить проверку? 1-да, 2-нет\n");
scanf("%d",&ans);
}
}

Полезно почитать по теме графика в си
Графика в Си
Вернуться к содержанию практикума

Поделиться:

 
 
Комментарии (0)

Нет комментариев. Ваш будет первым!