Pascal的飞镖计划

时间:2018-01-26 19:29:38

标签: pascal

我想创建一个飞镖程序,我走到了一个问题。

s1 := Form1.Edit1.Text;
s2 := Form1.Edit2.Text;
s3 := Form1.Edit3.Text;
x1 := StrToFloat(s1);
x2 := StrToFloat(s2);
x3 := StrToFloat(s3);
score1 := (score1 - x1 - x2 - x3);
ss1 := FloatToStr(score1);
Form1.Edit7.Text := ss1;

得分1在开始时应该是501并且倒计时,所以得分1在开始501,你填写3个数字,它应该是501-1-1-1(例如),然后下一次它应该是498 -1-1-1

我该怎么做?

我没有任何问题或错误,我只是不知道该怎么做。

我用lazarus来编写程序。

我希望我能够很好地解释这一点。

1 个答案:

答案 0 :(得分:0)

好的,我将概述您如何做到这一点,但请将编码留给您。

首先,您需要了解编程循环 - 例如参见

https://www.tutorialspoint.com/pascal/pascal_loops.htm

通常,对于这样的任务,首先要在循环首次执行之前设置一些初始条件。在您的情况下,我认为从那里略微回溯并为您的score变量选择更好的名称会更好。就个人而言,我会将名称基于Target,实际上有两个变量Target,您在循环之前初始化(到501)和初始化为RunningTarget Target在循环之前,每次循环更新(如score1 := (score1 - x1 - x2 - x3)

循环的类型 - 请参阅文章 - 取决于您。它需要一个terminating condition来解码是继续循环还是停止。再一次,这是你决定和编码。

最后,你需要考虑为什么你觉得需要调用FloatToStr以及你想要实现的目标 - 在RunningTotal的所有值都是一个整数之后,赢了不是吗?

玩得开心!

顺便说一句,我之所以考虑使用不同的变量名称的原因是你应该始终在脑海中记住它是否会在6个月内对你意味着同样的事情 - 或者是另一个读者。对我而言,“得分”听起来应该是值增加,而你的代码将完全相反。