added double jump and sitting state
This commit is contained in:
		
							parent
							
								
									2e5c5a8dde
								
							
						
					
					
						commit
						90d07dde3f
					
				
					 148 changed files with 13050 additions and 0 deletions
				
			
		
							
								
								
									
										27
									
								
								term1/seminar04_templates/04_time/main.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								term1/seminar04_templates/04_time/main.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| #include <iostream> | ||||
| #include "time.h" | ||||
| #include <string_view> | ||||
| #include <string> | ||||
| #include <vector> | ||||
| 
 | ||||
| using std::cout, std::endl, std::string, std::string_view, std::vector; | ||||
| 
 | ||||
| int main() | ||||
| { | ||||
|     string t1s = "23:59:59"; | ||||
|     string_view t1sv = t1s; | ||||
|     string t2s = "23:59:59"; | ||||
|     string_view t2sv = t2s; | ||||
| 
 | ||||
|     Time t1 = t1sv; | ||||
|     Time t2 = t2sv; | ||||
|     cout << t1 + t2 << endl; | ||||
| 
 | ||||
|     string tss = "23:59:59 23:59:59 23:59:59"; | ||||
|     string_view tssv = tss; | ||||
|     vector < Time > tsv = getTimesFromString(tss); | ||||
|     for (int i = 0, size = tsv.size(); i < size; ++i) { | ||||
| 	cout << tsv[i] << endl; | ||||
|     } | ||||
|     cout << sumTimes(tsv) << endl; | ||||
| } | ||||
							
								
								
									
										78
									
								
								term1/seminar04_templates/04_time/time.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								term1/seminar04_templates/04_time/time.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,78 @@ | |||
| #include "time.h" | ||||
| #include <string> | ||||
| #include <iomanip> | ||||
| #include <vector> | ||||
| 
 | ||||
| using std::cout, std::endl, std::vector, std::string_view, std::string; | ||||
| 
 | ||||
| Time::Time(int hours, int minutes, int seconds) | ||||
| { | ||||
|     mHours = hours; | ||||
|     mMinutes = minutes; | ||||
|     mSeconds = seconds; | ||||
| } | ||||
| 
 | ||||
| Time::Time(string_view s) | ||||
| { | ||||
|     string buf; | ||||
|     buf = s.substr(0, 2); | ||||
|     mHours = stoi(buf); | ||||
|     buf = s.substr(3, 2); | ||||
|     mMinutes = stoi(buf); | ||||
|     buf = s.substr(6, 2); | ||||
|     mSeconds = stoi(buf); | ||||
| } | ||||
| 
 | ||||
| Time::Time():Time(0, 0, 0) | ||||
| { | ||||
| }; | ||||
| 
 | ||||
| Time Time::operator+(Time b) const | ||||
| { | ||||
|     return Time((mHours + b.mHours + (mMinutes + b.mMinutes) / 60) % 24, | ||||
| 		(mMinutes + b.mMinutes + | ||||
| 		 (mSeconds + b.mSeconds) / 60) % 60, | ||||
| 		(mSeconds + b.mSeconds) % 60); | ||||
| } | ||||
| 
 | ||||
| int Time::hours() const | ||||
| { | ||||
|     return mHours; | ||||
| } | ||||
| 
 | ||||
| int Time::minutes() const | ||||
| { | ||||
|     return mMinutes; | ||||
| } | ||||
| 
 | ||||
| int Time::seconds() const | ||||
| { | ||||
|     return mSeconds; | ||||
| } | ||||
| 
 | ||||
| vector < Time > getTimesFromString(string_view s) | ||||
| { | ||||
|     vector < Time > res; | ||||
|     for (int i = 0, size = s.size(); i < size; i += 9) { | ||||
| 	res.push_back(Time(s.substr(i, 9))); | ||||
|     } | ||||
|     return res; | ||||
| } | ||||
| 
 | ||||
| Time sumTimes(const vector < Time > &v) | ||||
| { | ||||
|     Time res; | ||||
|     for (int i = 0, size = v.size(); i < size; ++i) { | ||||
| 	res = res + v[i]; | ||||
|     } | ||||
|     return res; | ||||
| } | ||||
| 
 | ||||
| std::ostream & operator<<(std::ostream & out, Time t) | ||||
| { | ||||
|     out << std::setw(2) << std::setfill('0') << t.mHours | ||||
| 	<< ":" | ||||
| 	<< std::setw(2) << std::setfill('0') << t.mMinutes | ||||
| 	<< ":" << std::setw(2) << std::setfill('0') << t.mSeconds; | ||||
|     return out; | ||||
| } | ||||
							
								
								
									
										21
									
								
								term1/seminar04_templates/04_time/time.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								term1/seminar04_templates/04_time/time.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| #pragma once | ||||
| #include <string_view> | ||||
| #include <iostream> | ||||
| #include <vector> | ||||
| 
 | ||||
| using std::string_view, std::vector; | ||||
| 
 | ||||
| class Time { | ||||
| private: | ||||
|         int mHours = 0, mMinutes = 0, mSeconds = 0; | ||||
| public: | ||||
|         Time(int hours, int minutes, int seconds); | ||||
|         Time(); | ||||
|         Time(string_view s); | ||||
|         Time operator+(Time b) const; | ||||
|         int hours() const; int minutes() const; int seconds() const; | ||||
|         friend std::ostream& operator<<(std::ostream& out, Time t); | ||||
| }; | ||||
| 
 | ||||
| Time sumTimes(const vector<Time>& v); | ||||
| vector<Time> getTimesFromString(string_view s); | ||||
		Reference in a new issue