浏览代码

Updated: card count works better.

Redraw doesn't show us the next card now.  ;)
Steve Thielemann 3 年之前
父节点
当前提交
753c7b9a1f
共有 1 个文件被更改,包括 26 次插入32 次删除
  1. 26 32
      main.cpp

+ 26 - 32
main.cpp

@@ -39,7 +39,7 @@ std::function<std::ofstream &(void)> get_logger;
 unsigned long score = 0;
 unsigned long score = 0;
 int hand = 1;
 int hand = 1;
 int total_hands = 3;
 int total_hands = 3;
-int card_number = 29;
+int card_number = 28;
 int current_streak = 0;
 int current_streak = 0;
 int best_streak = 0;
 int best_streak = 0;
 std::chrono::_V2::system_clock::time_point play_day;
 std::chrono::_V2::system_clock::time_point play_day;
@@ -991,8 +991,11 @@ int play_cards(door::Door &door, DBData &db, std::mt19937 &rng) {
     if ((r < 0x1000) and (r > 0)) {
     if ((r < 0x1000) and (r > 0)) {
       r = std::toupper(r);
       r = std::toupper(r);
       if (r == ' ') {
       if (r == ' ') {
-        if (card_number < 51)
+        if (card_number < 51) {
           card_number++;
           card_number++;
+          // ok, we would redraw just that card here...
+          // only "exit" and redo the drawing loop when "R" redraw is used!
+        }
       }
       }
     }
     }
   }
   }
@@ -1000,17 +1003,18 @@ int play_cards(door::Door &door, DBData &db, std::mt19937 &rng) {
 }
 }
 
 
 door::Panel make_about(void) {
 door::Panel make_about(void) {
-  door::Panel about(60);
+  const int W = 60;
+  door::Panel about(W);
   about.setStyle(door::BorderStyle::DOUBLE_SINGLE);
   about.setStyle(door::BorderStyle::DOUBLE_SINGLE);
   about.setColor(door::ANSIColor(door::COLOR::YELLOW, door::COLOR::BLUE,
   about.setColor(door::ANSIColor(door::COLOR::YELLOW, door::COLOR::BLUE,
                                  door::ATTR::BOLD));
                                  door::ATTR::BOLD));
 
 
-  about.addLine(std::make_unique<door::Line>("About This Door", 60));
+  about.addLine(std::make_unique<door::Line>("About This Door", W));
   about.addLine(std::make_unique<door::Line>(
   about.addLine(std::make_unique<door::Line>(
-      "---------------------------------", 60,
+      "---------------------------------", W,
       door::ANSIColor(door::COLOR::CYAN, door::COLOR::BLUE, door::ATTR::BOLD)));
       door::ANSIColor(door::COLOR::CYAN, door::COLOR::BLUE, door::ATTR::BOLD)));
   /*
   /*
-  123456789012345678901234567890123456789012345678901234567890
+  123456789012345678901234567890123456789012345678901234567890-60
   This door was written by Bugz.
   This door was written by Bugz.
 
 
   It is written in c++, only supports Linux, and replaces
   It is written in c++, only supports Linux, and replaces
@@ -1021,24 +1025,20 @@ door::Panel make_about(void) {
 
 
    */
    */
   about.addLine(
   about.addLine(
-      std::make_unique<door::Line>(SPACEACE " v" SPACEACE_VERSION, 60));
+      std::make_unique<door::Line>(SPACEACE " v" SPACEACE_VERSION, W));
   std::string copyright = SPACEACE_COPYRIGHT;
   std::string copyright = SPACEACE_COPYRIGHT;
   if (door::unicode) {
   if (door::unicode) {
-    /*
-    std::string textcp = "(C)";
-    std::string utf8cp = "\u00a9";
-    replace(copyright, textcp, utf8cp);*/
     replace(copyright, "(C)", "\u00a9");
     replace(copyright, "(C)", "\u00a9");
   }
   }
 
 
-  about.addLine(std::make_unique<door::Line>(copyright, 60));
-  about.addLine(std::make_unique<door::Line>("", 60));
+  about.addLine(std::make_unique<door::Line>(copyright, W));
+  about.addLine(std::make_unique<door::Line>("", W));
   about.addLine(
   about.addLine(
-      std::make_unique<door::Line>("This door was written by Bugz.", 60));
-  about.addLine(std::make_unique<door::Line>("", 60));
+      std::make_unique<door::Line>("This door was written by Bugz.", W));
+  about.addLine(std::make_unique<door::Line>("", W));
   about.addLine(std::make_unique<door::Line>(
   about.addLine(std::make_unique<door::Line>(
-      "It is written in c++, only support Linux, and replaces", 60));
-  about.addLine(std::make_unique<door::Line>("opendoors.", 60));
+      "It is written in c++, only support Linux, and replaces", W));
+  about.addLine(std::make_unique<door::Line>("opendoors.", W));
 
 
   /*
   /*
     door::updateFunction updater = [](void) -> std::string {
     door::updateFunction updater = [](void) -> std::string {
@@ -1056,19 +1056,6 @@ door::Panel make_about(void) {
     about.addLine(std::make_unique<door::Line>(active));
     about.addLine(std::make_unique<door::Line>(active));
   */
   */
 
 
-  /*
-    about.addLine(std::make_unique<door::Line>(
-        "Status: blue", 60,
-        statusValue(door::ANSIColor(door::COLOR::GREEN, door::ATTR::BOLD),
-                    door::ANSIColor(door::COLOR::MAGENTA,
-    door::ATTR::BLINK)))); about.addLine(std::make_unique<door::Line>("Name:
-    BUGZ", 60, rStatus)); about.addLine(std::make_unique<door::Line>( "Size:
-    10240", 60, statusValue(door::ANSIColor(door::COLOR::GREEN,
-    door::COLOR::BLUE, door::ATTR::BOLD), door::ANSIColor(door::COLOR::YELLOW,
-    door::COLOR::BLUE, door::ATTR::BOLD, door::ATTR::BLINK))));
-    about.addLine(std::make_unique<door::Line>("Bugz is here.", 60, rStatus));
-  */
-
   return about;
   return about;
 }
 }
 
 
@@ -1182,6 +1169,7 @@ int main(int argc, char *argv[]) {
     int hours = chrono::duration_cast<chrono::hours>(delta).count();
     int hours = chrono::duration_cast<chrono::hours>(delta).count();
     int days = hours / 24;
     int days = hours / 24;
     int minutes = chrono::duration_cast<chrono::minutes>(delta).count();
     int minutes = chrono::duration_cast<chrono::minutes>(delta).count();
+    int secs = chrono::duration_cast<chrono::seconds>(delta).count();
 
 
     if (days > 1) {
     if (days > 1) {
       door << "It's been " << days << " days since you last played."
       door << "It's been " << days << " days since you last played."
@@ -1191,8 +1179,14 @@ int main(int argc, char *argv[]) {
         door << "It's been " << hours << " hours since you last played."
         door << "It's been " << hours << " hours since you last played."
              << door::nl;
              << door::nl;
       } else {
       } else {
-        door << "It's been " << minutes << " minutes since you last played."
-             << door::nl;
+        if (minutes > 1) {
+          door << "It's been " << minutes << " minutes since you last played."
+               << door::nl;
+        } else {
+          door << "It's been " << secs << " seconds since you last played."
+               << door::nl;
+          door << "It's like you never left." << door::nl;
+        }
       }
       }
     }
     }
     press_a_key(door);
     press_a_key(door);