Запись и компиляция программы C под Windows XP?

Итак, после небольшого обзора вашей игры я обнаружил ошибку, что мяч «прилипнет» к лопатке с левой стороны, и, как вы сказали, скорость не сбрасывает каждый счет. Я исправил это в нескольких местах, и это, кажется, значительно улучшилось.

Сначала я сбрасывал скорость каждый раз, когда набирался счет:

if ball.xcor() > 390:
    ball.goto(0, 0)
    ball.dx = 1 / 5 # reset to initial speed
    score_a += 1
    pen.clear()
    pen.write("Player A: {}  Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))

if ball.xcor() < -390:
    ball.goto(0, 0)
    ball.dx = 1 / 5 # reset to initial speed
    ball.dx *= -1
    score_b += 1
    pen.clear()
    pen.write("Player A: {}  Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))

Я думаю, что это можно улучшить, если иметь переменную вверху, например initial_speed = 1/5, а затем вы можете поставить ball.dx = initial_speed везде это сбрасывает. Это позволяет вам изменять только один номер в верхней части вашей программы, и он будет регулировать скорость повсюду, предотвращая необходимость выслеживать везде, где вы сбрасываете его каждый раз! бит

if (ball.xcor() > 340 and ball.xcor() < 350) and (ball.ycor() < paddle_b.ycor() + 50 and ball.ycor() > paddle_b.ycor() -40):
    ball.setx(340)
    ball.dx *= -1 # flip direction first
    ball.dx -=1 # speed it up

if (ball.xcor() < -340 and ball.xcor() > -350) and (ball.ycor() < paddle_a.ycor() + 50 and ball.ycor() > paddle_a.ycor() -40):
    ball.setx(-340)
    ball.dx *= -1
    ball.dx +=1

Опять же, это можно улучшить, создав переменную speed_up_by = 1, а затем используя ball.dx += speed_up_by, чтобы легко настроить ее. Я думаю, что 1 - слишком большое число, и вы не сможете получить более 5 попаданий (если вам повезет). Чтобы ответить на ваш комментарий о том, почему один ball.dx +=1, а другой - ball.dx -=1, я призываю вас подумать об этом в цифрах. Начальная скорость равна .2 (или 1/5), а затем после того, как она ударяет по правой стороне, вы должны повернуть ее вспять (до -2 и теперь она движется влево), а затем увеличить ее скорость (минус 1 -> - 1.2). Теперь, когда он попадает на другую сторону, вы снова поворачиваете его (до 1,2), а затем увеличиваете его скорость (добавляя 1 -> 2,2). Вы можете видеть, что, хотя мы вычитаем из скорости, она на самом деле увеличивает величину скорости !! Я думаю, это также показывает, что увеличение скорости на 1 при каждом ударе безумно велико. После первого удара мяч движется в 6 раз с начальной скоростью !!! После 2 попаданий он будет 11 раз начальной скорости !!! Вы, вероятно, хотите увеличить величину скорости на 0,1 каждый раз. Это делает так, что после 1 удара скорость только в 1,5 раза превышает начальную скорость. После 2 попаданий скорость вдвое превышает начальную скорость ... и т. Д.

6
задан JDelage 15 May 2009 в 15:10
поделиться

10 ответов

Вы должны уметь писать C в Visual Studio. Вы, конечно, могли бы это сделать в более старых версиях IDE. Просто создайте исходные файлы с расширением .c.

Вы должны иметь возможность собирать и запускать код из Visual Studio.

6
ответ дан 8 December 2019 в 03:11
поделиться

Сохраните его как файл .c. И вы можете использовать компилятор MinGW для компиляции файла в файл .exe. Но поскольку у вас есть Visual Studio, вам следует использовать этот компилятор.

9
ответ дан 8 December 2019 в 03:11
поделиться

Если вы только учитесь программировать, я бы не рекомендовал начинать с C. C все еще имеет свое место сегодня, но есть гораздо более простые языки, с помощью которых можно изучить базовый синтаксис и технику. Насколько я понимаю, нанятых начинающих программистов на языке C не так уж и много. Однако вы можете быть нанятым начинающим программистом на Java, C #, VB, ruby ​​или python, и люди будут платить вам за обучение. Затем, когда у вас будет прочный фундамент по структуре и технике, вы сможете приблизиться к металлу с помощью C.

Всего лишь два цента, даже если это не совсем ответ на ваш вопрос.

5
ответ дан 8 December 2019 в 03:11
поделиться

Если вы НЕ хотите использовать Visual-Studio, вы можете попробовать что-то вроде codeblocks , что позволяет использовать компилятор VS ... это намного проще + легкий, если вы только начинаете.

3
ответ дан 8 December 2019 в 03:11
поделиться

Как отмечали другие авторы, Visual Studio может быть немного ошеломляющей для новичка - множество вариантов и много лишних хлопот требуется, чтобы выпустить простой «Hello World».

Я лично рекомендую среду разработки Bloodshed Dev-C ++ для начинающих. Над ним больше не работают (так что получите стабильную, а не бета-версию), но перейти от ввода вашей первой программы к ее компиляции и запуску очень просто. Если вы придерживаетесь Windows, в конце концов вы перейдете на Visual Studio, но Dev - хорошее место для начала на востоке.

Вы можете редактировать файлы в Visual Studio (это IDE, интегрированная среда разработки, которая должна содержать абсолютно все, что вам нужно для написания программы), но вы заметите, что большинство программистов используют внешние редакторы, такие как Notepad ++, поскольку они предлагают некоторые полезные функции, которых обычно нет во встроенной среде IDE. На данный момент не беспокойтесь об этом, но попробуйте внешний редактор, например n ++, когда вы более знакомы с остальной частью процесса.

Ох, и C в никоим образом не может быть описан как «изложение ключевых принципов на малом языке». Он определенно охватывает «ключевые принципы» - он использовался для всего, что есть под солнцем, но он абсолютно огромен. Подходит ли это для новичка в наши дни, является предметом споров; это определенно даст вам хороший опыт, но не будет самым простым способом начать.

Изменить: CodeBlocks более современный и все еще находится в стадии разработки, поэтому может быть лучше для начала, чем DevC ++ http: //en.wikipedia. org / wiki / Codeblocks

2
ответ дан 8 December 2019 в 03:11
поделиться

Если вы копируете код из K&R, вам нужно добавить систему ("пауза"); перед завершением main () и убедитесь, что вы сохранили файл с помощью .c

int main ()
{
printf ("Привет, мир \ n");

system ("пауза");
возврат 0;
}
Я тоже новичок, надеюсь, это поможет.

2
ответ дан 8 December 2019 в 03:11
поделиться

Для начала я бы рекомендовал создать свой проект, редактировать и компилировать прямо в VC. Затем начните исследовать, какие команды VC на самом деле выполняет под своими оболочками (я полагаю, это будет что-то вроде вкладки «вывод»). Все это можно сделать в командной строке, хотя Windows не самая удобная для программистов среда.

1
ответ дан 8 December 2019 в 03:11
поделиться

на случай, если вы еще не поняли, например, Visual Studio, код: : blocks также имеет встроенный редактор. вам не нужно писать в блокноте ++ (если, конечно, вы не предпочитаете npp как редактор)

1
ответ дан 8 December 2019 в 03:11
поделиться

Вот мнение человека, который годами использовал C в биомедицинских исследованиях: обработка изображений, обработка данных. ИМХО, язык Си - это крупное интеллектуальное достижение, возможно, лучшее воплощение намерения в синтаксисе. Я бы выучил C снова сейчас, если бы я только начинал, даже если бы просто с целью научиться думать.

Тем не менее, я никогда даже не пытался программировать на C на MS. (Вся моя работа была связана с Sun и SGI.) Чтобы избежать накладных расходов, упомянутых в других ответах, я переключился на Python на MS XP / cygwin. Однако я довольно часто скучаю по лаконичному выразительному синтаксису языка Си и скучаю по работе с битами и значениями, хранящимися в памяти. Обратите внимание, что даже в Python серверная часть - это C, а пользовательские расширения кодируются на C. Таким образом, если бы я захотел переделать свой код обработки изображений для Python, я, вероятно, все-таки написал бы C.

Извините, что MS возлагает такое бремя на то, чтобы писать о самом простом языке, который когда-либо был изобретен. (Кстати, что касается редакторов, мой личный выбор - vim (как gvim), а не IDE.) (Думали ли вы о настройке Linux-системы? В наши дни об этом можно много сказать: UNIX без затрат на рабочие станции.)

1
ответ дан 8 December 2019 в 03:11
поделиться

Попробуйте какой-нибудь более простой компилятор, например * nix gcc. Visual Studio C ++ добавляет множество расширений MS к файлам кода.

0
ответ дан 8 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: