Компьютерный тренажер памяти на си
Компьютер тренажер зрительного внимания на си
В этой статье мы разберем алгоритм и его реализацию на си тренажера зрительной памяти. На экран выводятся фигуры разного цвета, необходимо за короткое время подсчитать количество фигур заданного цвета. Разберем алгоритм тренажера зрительной памяти.
В теле глобального цикла 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);
}
}
Полезно почитать по теме графика в си
Графика в Си
Вернуться к содержанию практикума
Поделиться:
Нет комментариев. Ваш будет первым!