こういうダイエットアプリがほしい
誰かiPhoneアプリにして
##動機
今までのカロリー管理系ダイエットアプリ
一日の上限カロリーと食べたものの合計カロリーの差を表示
⇒夜食の誘惑
今何を食べて良いのかわからない
##解決策
一日の可能な取得カロリーを秒単位に分割、積み上げていく
今食べられる=使用可能な取得カロリー
次に食べたいものまでどれだけ我慢すればいいかも時間表示
# include <Siv3D.hpp>
int foodToTime(String food);
String nameEatableFood(double kcal);
String nameNextFood(double kcal);
String food_name[] = { L"松屋のプレミアム牛めし", L"マクドナルドのハンバーガー", L"マクドナルドのチキンクリスプ", L"水", L"日高屋の中華そば", L"クラッシュタイプの蒟蒻畑ライト ぶどう味" };
double food_kcal[] = { 962.0, 275.0, 366.0, -0.01, 669.0, 39.0};
int kakin = 0;
double allowed_kcal = 0.1;
double kcal_per_sec = 0.0307;
void Main()
{
const Font font(14);
while (System::Update())
{
String food_name = nameEatableFood(allowed_kcal);
kcal_per_sec = 0.0307 + 0.1*kakin*kakin;
allowed_kcal += kcal_per_sec/60;
font(L"今なら", food_name, L"が食べられます。").draw(0, 0);
food_name = nameNextFood(allowed_kcal);
int next_time = foodToTime(food_name);
font(food_name, L"\nが食べられるのは", next_time, L"秒後です。").draw(0, 100);
font(DecimalPlace(3), allowed_kcal , L"kcal").draw(80,200);
Circle(400, 300, 40).draw(Palette::Orange);
if (((Mouse::Pos().x - 400)^2 + (Mouse::Pos().y - 300)^2) < 100 && Input::MouseL.clicked){
kakin++;
}
font(kakin, L"課金").drawCenter({ 400, 280 });
font(kcal_per_sec, L"kcal/sec").drawCenter({ 400, 320 });
}
}
int foodToTime(String food){
for (int i = 0; i < sizeof(food_name) / sizeof(food_name[0]); i++){
if (food_name[i] == food){
return (food_kcal[i] - allowed_kcal) / kcal_per_sec;
}
}
return 0;
}
String nameEatableFood(double kcal){
double return_kcal = -1.0;
String return_name;
for (int i = 0; i < sizeof(food_name) / sizeof(food_name[0]); i++){
if (food_kcal[i]>return_kcal && food_kcal[i] < kcal){
return_kcal = food_kcal[i];
return_name = food_name[i];
}
}
return return_name;
}
String nameNextFood(double kcal){
double return_kcal = 99999;
String return_name;
for (int i = 0; i < sizeof(food_name) / sizeof(food_name[0]); i++){
if (food_kcal[i]<return_kcal && food_kcal[i] > kcal){
return_kcal = food_kcal[i];
return_name = food_name[i];
}
}
return return_name;
}