- 倚天屠龙记游戏v0.1
1.1. bug001:血量小于100时,游戏没有结束。
1.2. 游戏暂停功能的实现。
1.3. 要注重用户体验,界面优化。system("pause");
1.4. 技能1、2、3 - 乾坤大挪移第一式看if()与for()
- for()的注意事项
3.1. 什么是边界
3.2. 测试工程师的工作
3.3. 区间的表示
3.3.1. [1,99)的含义是大于等于1且小于99的所有实数。
3.3.2. []表示数轴上的实心点,()表示数轴上的空心点。
3.4. 计数器的功能实现i = i + 1 ;
3.5. 累加器的功能实现
sum = sum + i ;
3.6. 边界的分析过程
- 乾坤大挪移第二式。
4.1. 暴破法解3位数的密码。
4.2. 百鸡卖百钱,百钱买百鸡
4.2.1. 三元一次方程
x+y+z = 100
5x+3y+z/3 = 100
0<=x<=100
0<=y<=100
0<=z<=100
三重循暴力破解法:注意k%3==0
for( int i = 0 ; i <=100 ; i++) {
for( int j = 0 ; j <=100 ; j++) {
for( int k = 0 ; k<=100 ; k++) {
if( (5*i+3*j+k/3 == 100)&&(k%3==0)&&(i+j+k)==100) {
cout << "公鸡: " << i << " 母鸡: " << j << " 小鸡: " << k << endl;
cout << endl ;
}
counter ++ ;
}
}
}
三重循环优化:满足循环的条件和为100
for( int i = 0 ; i <=100 ; i++) {
for( int j = 0 ; (i+j) <=100 ; j++) {
for( int k = 0 ; (i+j+k)<=100 ; k++) {
if( (5*i+3*j+k/3 == 100)&&(k%3==0)&&(i+j+k)==100) {
cout << "公鸡: " << i << " 母鸡: " << j << " 小鸡: " << k << endl;
cout << endl ;
}
counter ++ ;
}
}
}
4.2.2. 消元法化解三元一次方程为解二元一次方程
14x+8y = 200
二重循环
for( int i = 0 ; i <=100 ; i++) {
for( int j = 0 ; j <=100 ; j++) {
if( (14*i+8*j == 200)) {
cout << "公鸡: " << i
<< " 母鸡: " << j
<< " 小鸡: " << 100-i-j
<< endl;
}
}
}
二重循环优化,满足循环的条件和为100
for( int i = 0 ; i <=100 ; i++) {
for( int j = 0 ; (i+j)<=100 ; j++) {
counter ++ ;
if( (14*i+8*j == 200)) {
cout << "公鸡: " << i
<< " 母鸡: " << j
<< " 小鸡: " << 100-i-j
<< endl;
}
}
}
4.2.3. 考虑公鸡的范围、母鸡的范围
for( int i = 0 ; i <=25 ; i++) {
for( int j = 0 ; j<=33 ; j++) {
counter ++ ;
if( (14*i+8*j == 200)) {
cout << "公鸡: " << i
<< " 母鸡: " << j
<< " 小鸡: " << 100-i-j
<< endl;
}
}
}
4.2.4. 进一步分析必须有小鸡参和在里面
4.2.5. 公鸡数对小鸡数影响比母鸡比公鸡数的影响大
假设没有公鸡,只有母鸡+小鸡,则(三元一次变二元一次方程)母鸡25,小鸡75刚好。
假设有公鸡,则小鸡的个数必然大于75且小鸡为3的整数倍。
4.2.6. 思考小鸡最少有多少只?
4.2.7. 思考为了小鸡的数最少。价格摊平到一块一只。公鸡多一点还是母鸡多一点?
4.2.6.+4.2.7公鸡为0时,小鸡最少(y=25,z=75)
75<= 6x+3y=z <100
25<= 2x+y=z/3 <33
2x+y的范围有了[25,33),只需要从25到33试验。
2x+y=25 && x+y=100-75 x =0 y = 25
2x+y=26 && x+y=100-78 x = 4 y= 18
2x+y=27 && x+y=100-81 x = 8 y= 11
2x+y=28 && x+y=100-84 x = 12 y= 4
2x+y=29 && x+y=100-87 x = 16 y= -3
... ...
#include <iostream>
using namespace std ;
int main() {
int counter = 0 ;
for( int i = 0 ; i <=25 ; i++) {
for( int j = 0 ; j<=33; j++) {
if ((25>(2*i+j)) || ((2*i+j)>33)) continue ;
counter ++ ;
if( (7*i+4*j == 100)) {
cout << "公鸡: " << i
<< " 母鸡: " << j
<< " 小鸡: " << 100-i-j
<< endl;
}
}
}
cout << "counter:"<< counter << endl ;
return 100 ;
}
多项式
P(x) = ax^3+bx^2+cx^1+d
^表示右上角标,上面的表达式等价于下面的表达式
n元n次方程
n元1次方程,一般情况下至少需要列n个方程等式才能求出方程的唯一解。
方程式个数不够的时候,考虑暴力破解。-
命令行定制字体大小、字体颜色、命令行背景颜色
image.png
- 动画基础
8.1. 动画的原理:1秒播放24帧图片
向右位移效果的实现
#include <iostream>
#include <windows.h>
using namespace std ;
int main() {
string person = "@" ;
for( int i = 0 ; i <=25 ; i++) {
system("cls") ;
person = " "+ person ;
cout << person ;
Sleep(100);
}
return 100 ;
}
8.2. 高清电影的原理:1张图片有4096(4K)×2160个点。
作业1.百鸡卖百钱用双循环求解。
作业2.实现左右位移的动画效果
作业3.实现上下位移的动画效果