Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Какие клавиши в коде обозначаются кодом 13, 72 и 80 https://www.cyberforum.ru/ c-beginners/ thread597287.html
Подскажите, кто знает, какие клавиши в коде обозначаются кодом 13, 72 и 80?
C (СИ) Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Перед строкой матрицы с номером K вставить строку из нулей
Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Перед строкой матрицы с номером K вставить строку из нуле не получается можете помочь?
C (СИ) Наличие в строке символов, не являющихся цифрами В функции main() объявляется символьный массив A и инициализируется некоторой строкой символов. Написать функцию Simvol(...), которой адрес массива А передается в качестве параметра и которая проверяет записанную в массиве А строку символов на наличие в ней символов, не являющихся цифрами. Функция Simvol(...) подсчитывает количество таких символов и возвращает результат подсчета в функцию main(),... https://www.cyberforum.ru/ c-beginners/ thread597142.html C (СИ) Подсчет цифр в последовательности https://www.cyberforum.ru/ c-beginners/ thread597119.html
Здравствуйте. Задача такая: Дана последовательность натуральных чисел от 1 до n. Написать программу, которая подсчитывает, сколько раз каждая цифра повторяется в этой последовательности. Помогите пожалуйста, совсем нет мыслей :( #include <stdio.h> #include <stdlib.h> int main() { int n; printf("Vvedite n:\n"); scanf("%d",&n);
Расчет всех квадратных чисел от 1 до 10 C (СИ)
Такая задачка: Напишите функцию, которая вычисляет квадратные числа от 1 до заданного числа. Функция должна возвращать массив к расчетному квадратному числу. Пример: Расчет всех квадратных чисел от 1 до 10 Означает, что передача от 10 до функции Возвращает массив с 10 и содержание { 1,2,4,9,16,25,36,49,64,81,100} Примечание: размер возвращаемого массива не фиксируется ...
C (СИ) Файловый ввод/вывод структуры https://www.cyberforum.ru/ c-beginners/ thread597069.html
Написал прогу со структурами, помогите сделать файловый ввод вывод, поправьте точнее сказать: необходимо создать структуры для хранения сведений об объектах индивидуального задания, ввод и вывод информации осуществлять с помощью функций файловой системы ввода-вывода. 1. Входные данные необходимо хранить в файле input.txt. При первичном вводе данные необходимо считывать с клавиатуры и...
C (СИ) Последовательность многочленов https://www.cyberforum.ru/ c-beginners/ thread597025.html
Помогите решить задачи по программированию на языке Си. Задача 1. Последовательность многочленов G0(x), G1(x), … определяется следующим образом: G0(x)=1, G1(x)= x – 1, Gk(x) = (x –2k+1) , Gk – 1((x) – (k – 1)^2) , Gk – 2(x) (k = 2, 3, …). Выполнить для G0(x), G1(x) задание: ---> Дано действительное число a. Вычислить G0(a)+…+ G6(a). Задача 2. Изобразить на экране отрезок, вращающийся...
Программы на СИ C (СИ)
Доброго времени суток! Необходимо сделать программы на СИ. Желательно сегодня к ночи - завтра с утра. Задание: освоить структуры в языке Си (с обязательным применением функций). Исходные данные или результат или и то и другое должно размещаться в текстовом файле: 1. Создать структуру, содержащую поля "Фамилия", "Имя", "Отчество", "Пол", "Возраст". Отсортировать список по возрасту, возраст...
C (СИ) Удалить первый столбец матрицы, содержащий только положительные элементы https://www.cyberforum.ru/ c-beginners/ thread596703.html
Дана матрица размера M × N. Удалить ее первый столбец, содержащий только положительные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений. Вот сделал, только удаляет столбец где встретит первый положительный элемент. Например: -1 2 3 -1 -2 3 -1 -2 3 Выводит -1 3 -1 3 -1 3
C (СИ) Удалить заданный символ в каждой из двух строк Даны две строки длиной до 80 символов. Необходимо: Удалить заданный символ в каждой строке. Описать в виде отдельной функции удаление заданного символа в заданной строке: https://www.cyberforum.ru/ c-beginners/ thread596676.html
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Подчеркнуть все гласные буквы в строке C (СИ)
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Подчеркнуть все гласные буквы в строке.
C (СИ) Измените программу, чтобы выводился список только тех студентов, у которых только хорошие и отличные оценки Измените программу, чтобы выводился список только тех студентов, у которых в) только хорошие и отличные оценки; Добавьте определение среднего балла группы. https://www.cyberforum.ru/ c-beginners/ thread596674.html
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
09.06.2012, 13:14 0

Змейка - как улучшить код - C (СИ) - Ответ 3144964

09.06.2012, 13:14. Показов 2673. Ответов 6
Метки (Все метки)

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

aram_gyumri, слишком много switch'ей. Это нехорошо

1. Здесь я думаю, можно выполнять 'prev_dir = direct', независимо от 'case', код будет выглядеть несколько чище, а производительность не упадет Ну или хотя бы сделать функцию 'update_direct', и вызывать ее в каждом 'case'.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
switch (getch())
{
case 'a':
    prev_dir=direct;
    direct=DIR_LEFT;
    break;
case 'd':
    prev_dir=direct;
    direct=DIR_RIGHT;
    break;
case 's':
        prev_dir=direct;
        direct=DIR_DOWN;
        break;
case 'w':
        prev_dir=direct;
        direct=DIR_UP;
    break;
case 'x':
        running=0;
        break;
default:
        return;
        break;
2. 80 и 25 - magic numbers, встречаются в коде несколько раз.
C
1
2
3
4
5
6
void apples()
{
    srand(time(NULL));
    ax=rand()%80;
    ay=rand()%25;
}
3. Саму "змею" лучше выделить как отдельную сущеность. Например, в структуру. И каждый подобный цикл выделить в функцию snake_move_left(snake), snake_move_right(snake) или же snake_move(snake, RIGHT), etc.

C
1
2
3
4
5
6
7
if (snake[0].X+1<80)
{
    for (i=len-1;i>0;i--)
            snake[i]=snake[i-1];
    snake[0].X++;
    eat_himself();
}
Не стесняйтесь создавать функции

Вернуться к обсуждению:
Змейка - как улучшить код C (СИ)
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2012, 13:14
Готовые ответы и решения:

Ввод целого числа (улучшить код)
Помогите улучшить мой быдлокод: #include &lt;stdio.h&gt; int decpow(int a) { int pow=1;...

Как улучшить работу программы
Ув. эксперты помогите улучшить работу программы.... #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...

Как улучшить код
Может у кого есть иде как улучшить данный код . В формы и классы не закидывать , просто сделать...

Как улучшить код?!
Написал код к заданию: Дан целочисленный массив размера N. Если он является перестановкой, то есть...

6
09.06.2012, 13:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2012, 13:14
Помогаю со студенческими работами здесь

Как улучшить код?
Как улучшить? static double Power(double x, int y) { double b = x; ...

Как улучшить код?
В Main() код для вызова функции У меня есть много классов которые должны работать через Thread...

Как улучшить код?
код новичка, подскажите как улучшить исправив ошибки &lt;?php session_start(); $_SESSION =...

Как улучшить код
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru