need_for_type 0.1.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -5
- data/assets/texts/text-1.txt +1 -0
- data/assets/texts/text-10.txt +1 -0
- data/assets/texts/text-100.txt +1 -0
- data/assets/texts/text-101.txt +1 -0
- data/assets/texts/text-102.txt +1 -0
- data/assets/texts/text-103.txt +1 -0
- data/assets/texts/text-104.txt +1 -0
- data/assets/texts/text-105.txt +1 -0
- data/assets/texts/text-106.txt +1 -0
- data/assets/texts/text-107.txt +1 -0
- data/assets/texts/text-108.txt +1 -0
- data/assets/texts/text-109.txt +1 -0
- data/assets/texts/text-11.txt +1 -0
- data/assets/texts/text-110.txt +1 -0
- data/assets/texts/text-111.txt +1 -0
- data/assets/texts/text-112.txt +1 -0
- data/assets/texts/text-113.txt +1 -0
- data/assets/texts/text-114.txt +1 -0
- data/assets/texts/text-115.txt +1 -0
- data/assets/texts/text-116.txt +1 -0
- data/assets/texts/text-117.txt +6 -0
- data/assets/texts/text-118.txt +1 -0
- data/assets/texts/text-119.txt +1 -0
- data/assets/texts/text-12.txt +1 -0
- data/assets/texts/text-120.txt +1 -0
- data/assets/texts/text-121.txt +1 -0
- data/assets/texts/text-122.txt +1 -0
- data/assets/texts/text-123.txt +1 -0
- data/assets/texts/text-124.txt +7 -0
- data/assets/texts/text-125.txt +1 -0
- data/assets/texts/text-126.txt +1 -0
- data/assets/texts/text-127.txt +1 -0
- data/assets/texts/text-128.txt +1 -0
- data/assets/texts/text-129.txt +1 -0
- data/assets/texts/text-13.txt +1 -0
- data/assets/texts/text-130.txt +1 -0
- data/assets/texts/text-131.txt +1 -0
- data/assets/texts/text-132.txt +1 -0
- data/assets/texts/text-133.txt +7 -0
- data/assets/texts/text-134.txt +1 -0
- data/assets/texts/text-135.txt +1 -0
- data/assets/texts/text-136.txt +1 -0
- data/assets/texts/text-137.txt +1 -0
- data/assets/texts/text-138.txt +1 -0
- data/assets/texts/text-139.txt +1 -0
- data/assets/texts/text-14.txt +1 -0
- data/assets/texts/text-140.txt +1 -0
- data/assets/texts/text-141.txt +1 -0
- data/assets/texts/text-142.txt +1 -0
- data/assets/texts/text-143.txt +1 -0
- data/assets/texts/text-144.txt +1 -0
- data/assets/texts/text-145.txt +1 -0
- data/assets/texts/text-146.txt +1 -0
- data/assets/texts/text-147.txt +1 -0
- data/assets/texts/text-148.txt +1 -0
- data/assets/texts/text-149.txt +1 -0
- data/assets/texts/text-15.txt +1 -0
- data/assets/texts/text-150.txt +1 -0
- data/assets/texts/text-151.txt +6 -0
- data/assets/texts/text-152.txt +1 -0
- data/assets/texts/text-153.txt +1 -0
- data/assets/texts/text-154.txt +1 -0
- data/assets/texts/text-155.txt +1 -0
- data/assets/texts/text-156.txt +1 -0
- data/assets/texts/text-157.txt +1 -0
- data/assets/texts/text-158.txt +1 -0
- data/assets/texts/text-159.txt +1 -0
- data/assets/texts/text-16.txt +1 -0
- data/assets/texts/text-160.txt +1 -0
- data/assets/texts/text-161.txt +1 -0
- data/assets/texts/text-162.txt +1 -0
- data/assets/texts/text-163.txt +5 -0
- data/assets/texts/text-164.txt +1 -0
- data/assets/texts/text-165.txt +1 -0
- data/assets/texts/text-166.txt +1 -0
- data/assets/texts/text-167.txt +1 -0
- data/assets/texts/text-168.txt +1 -0
- data/assets/texts/text-169.txt +1 -0
- data/assets/texts/text-17.txt +6 -0
- data/assets/texts/text-170.txt +1 -0
- data/assets/texts/text-171.txt +1 -0
- data/assets/texts/text-172.txt +1 -0
- data/assets/texts/text-173.txt +1 -0
- data/assets/texts/text-174.txt +1 -0
- data/assets/texts/text-175.txt +1 -0
- data/assets/texts/text-176.txt +1 -0
- data/assets/texts/text-177.txt +1 -0
- data/assets/texts/text-178.txt +1 -0
- data/assets/texts/text-179.txt +1 -0
- data/assets/texts/text-18.txt +1 -0
- data/assets/texts/text-180.txt +1 -0
- data/assets/texts/text-181.txt +1 -0
- data/assets/texts/text-182.txt +1 -0
- data/assets/texts/text-183.txt +1 -0
- data/assets/texts/text-184.txt +1 -0
- data/assets/texts/text-185.txt +1 -0
- data/assets/texts/text-186.txt +1 -0
- data/assets/texts/text-187.txt +1 -0
- data/assets/texts/text-188.txt +1 -0
- data/assets/texts/text-189.txt +1 -0
- data/assets/texts/text-19.txt +1 -0
- data/assets/texts/text-190.txt +5 -0
- data/assets/texts/text-191.txt +1 -0
- data/assets/texts/text-192.txt +1 -0
- data/assets/texts/text-193.txt +1 -0
- data/assets/texts/text-194.txt +1 -0
- data/assets/texts/text-195.txt +1 -0
- data/assets/texts/text-196.txt +1 -0
- data/assets/texts/text-197.txt +1 -0
- data/assets/texts/text-198.txt +1 -0
- data/assets/texts/text-199.txt +1 -0
- data/assets/texts/text-2.txt +1 -0
- data/assets/texts/text-20.txt +6 -0
- data/assets/texts/text-200.txt +1 -0
- data/assets/texts/text-201.txt +1 -0
- data/assets/texts/text-202.txt +1 -0
- data/assets/texts/text-203.txt +1 -0
- data/assets/texts/text-204.txt +1 -0
- data/assets/texts/text-205.txt +1 -0
- data/assets/texts/text-206.txt +1 -0
- data/assets/texts/text-207.txt +5 -0
- data/assets/texts/text-208.txt +1 -0
- data/assets/texts/text-209.txt +1 -0
- data/assets/texts/text-21.txt +1 -0
- data/assets/texts/text-210.txt +1 -0
- data/assets/texts/text-211.txt +1 -0
- data/assets/texts/text-212.txt +1 -0
- data/assets/texts/text-213.txt +1 -0
- data/assets/texts/text-214.txt +1 -0
- data/assets/texts/text-215.txt +6 -0
- data/assets/texts/text-216.txt +1 -0
- data/assets/texts/text-217.txt +1 -0
- data/assets/texts/text-218.txt +1 -0
- data/assets/texts/text-219.txt +1 -0
- data/assets/texts/text-22.txt +1 -0
- data/assets/texts/text-220.txt +1 -0
- data/assets/texts/text-221.txt +1 -0
- data/assets/texts/text-222.txt +1 -0
- data/assets/texts/text-223.txt +1 -0
- data/assets/texts/text-224.txt +1 -0
- data/assets/texts/text-225.txt +1 -0
- data/assets/texts/text-226.txt +1 -0
- data/assets/texts/text-227.txt +1 -0
- data/assets/texts/text-228.txt +5 -0
- data/assets/texts/text-229.txt +5 -0
- data/assets/texts/text-23.txt +1 -0
- data/assets/texts/text-230.txt +1 -0
- data/assets/texts/text-231.txt +1 -0
- data/assets/texts/text-232.txt +1 -0
- data/assets/texts/text-233.txt +1 -0
- data/assets/texts/text-234.txt +1 -0
- data/assets/texts/text-235.txt +1 -0
- data/assets/texts/text-236.txt +1 -0
- data/assets/texts/text-237.txt +1 -0
- data/assets/texts/text-238.txt +1 -0
- data/assets/texts/text-239.txt +1 -0
- data/assets/texts/text-24.txt +5 -0
- data/assets/texts/text-240.txt +1 -0
- data/assets/texts/text-241.txt +5 -0
- data/assets/texts/text-242.txt +1 -0
- data/assets/texts/text-243.txt +1 -0
- data/assets/texts/text-244.txt +1 -0
- data/assets/texts/text-245.txt +1 -0
- data/assets/texts/text-246.txt +1 -0
- data/assets/texts/text-247.txt +1 -0
- data/assets/texts/text-248.txt +1 -0
- data/assets/texts/text-249.txt +1 -0
- data/assets/texts/text-25.txt +1 -0
- data/assets/texts/text-250.txt +1 -0
- data/assets/texts/text-251.txt +1 -0
- data/assets/texts/text-252.txt +1 -0
- data/assets/texts/text-253.txt +1 -0
- data/assets/texts/text-254.txt +1 -0
- data/assets/texts/text-255.txt +1 -0
- data/assets/texts/text-256.txt +1 -0
- data/assets/texts/text-257.txt +1 -0
- data/assets/texts/text-258.txt +1 -0
- data/assets/texts/text-259.txt +1 -0
- data/assets/texts/text-26.txt +6 -0
- data/assets/texts/text-260.txt +1 -0
- data/assets/texts/text-261.txt +1 -0
- data/assets/texts/text-262.txt +1 -0
- data/assets/texts/text-263.txt +1 -0
- data/assets/texts/text-264.txt +1 -0
- data/assets/texts/text-265.txt +1 -0
- data/assets/texts/text-266.txt +4 -0
- data/assets/texts/text-267.txt +1 -0
- data/assets/texts/text-268.txt +1 -0
- data/assets/texts/text-269.txt +1 -0
- data/assets/texts/text-27.txt +1 -0
- data/assets/texts/text-270.txt +1 -0
- data/assets/texts/text-271.txt +1 -0
- data/assets/texts/text-272.txt +1 -0
- data/assets/texts/text-273.txt +1 -0
- data/assets/texts/text-274.txt +1 -0
- data/assets/texts/text-275.txt +1 -0
- data/assets/texts/text-276.txt +1 -0
- data/assets/texts/text-277.txt +1 -0
- data/assets/texts/text-278.txt +1 -0
- data/assets/texts/text-279.txt +1 -0
- data/assets/texts/text-28.txt +1 -0
- data/assets/texts/text-280.txt +1 -0
- data/assets/texts/text-281.txt +1 -0
- data/assets/texts/text-282.txt +1 -0
- data/assets/texts/text-283.txt +1 -0
- data/assets/texts/text-284.txt +1 -0
- data/assets/texts/text-285.txt +4 -0
- data/assets/texts/text-286.txt +1 -0
- data/assets/texts/text-287.txt +1 -0
- data/assets/texts/text-288.txt +1 -0
- data/assets/texts/text-289.txt +1 -0
- data/assets/texts/text-29.txt +1 -0
- data/assets/texts/text-290.txt +6 -0
- data/assets/texts/text-291.txt +1 -0
- data/assets/texts/text-292.txt +1 -0
- data/assets/texts/text-293.txt +1 -0
- data/assets/texts/text-294.txt +1 -0
- data/assets/texts/text-295.txt +3 -0
- data/assets/texts/text-296.txt +1 -0
- data/assets/texts/text-297.txt +1 -0
- data/assets/texts/text-298.txt +1 -0
- data/assets/texts/text-299.txt +1 -0
- data/assets/texts/text-3.txt +1 -0
- data/assets/texts/text-30.txt +1 -0
- data/assets/texts/text-300.txt +1 -0
- data/assets/texts/text-301.txt +1 -0
- data/assets/texts/text-302.txt +1 -0
- data/assets/texts/text-303.txt +1 -0
- data/assets/texts/text-304.txt +1 -0
- data/assets/texts/text-305.txt +1 -0
- data/assets/texts/text-306.txt +1 -0
- data/assets/texts/text-307.txt +3 -0
- data/assets/texts/text-308.txt +1 -0
- data/assets/texts/text-309.txt +1 -0
- data/assets/texts/text-31.txt +4 -0
- data/assets/texts/text-310.txt +1 -0
- data/assets/texts/text-311.txt +1 -0
- data/assets/texts/text-312.txt +1 -0
- data/assets/texts/text-313.txt +1 -0
- data/assets/texts/text-314.txt +1 -0
- data/assets/texts/text-315.txt +1 -0
- data/assets/texts/text-316.txt +5 -0
- data/assets/texts/text-317.txt +1 -0
- data/assets/texts/text-318.txt +1 -0
- data/assets/texts/text-319.txt +1 -0
- data/assets/texts/text-32.txt +5 -0
- data/assets/texts/text-320.txt +1 -0
- data/assets/texts/text-321.txt +1 -0
- data/assets/texts/text-322.txt +1 -0
- data/assets/texts/text-323.txt +1 -0
- data/assets/texts/text-324.txt +1 -0
- data/assets/texts/text-325.txt +1 -0
- data/assets/texts/text-326.txt +1 -0
- data/assets/texts/text-327.txt +1 -0
- data/assets/texts/text-328.txt +1 -0
- data/assets/texts/text-329.txt +1 -0
- data/assets/texts/text-33.txt +1 -0
- data/assets/texts/text-330.txt +1 -0
- data/assets/texts/text-331.txt +1 -0
- data/assets/texts/text-332.txt +1 -0
- data/assets/texts/text-333.txt +4 -0
- data/assets/texts/text-334.txt +1 -0
- data/assets/texts/text-335.txt +1 -0
- data/assets/texts/text-336.txt +1 -0
- data/assets/texts/text-337.txt +1 -0
- data/assets/texts/text-338.txt +1 -0
- data/assets/texts/text-339.txt +1 -0
- data/assets/texts/text-34.txt +1 -0
- data/assets/texts/text-340.txt +1 -0
- data/assets/texts/text-341.txt +1 -0
- data/assets/texts/text-342.txt +1 -0
- data/assets/texts/text-343.txt +1 -0
- data/assets/texts/text-344.txt +1 -0
- data/assets/texts/text-345.txt +1 -0
- data/assets/texts/text-346.txt +5 -0
- data/assets/texts/text-347.txt +1 -0
- data/assets/texts/text-348.txt +1 -0
- data/assets/texts/text-349.txt +1 -0
- data/assets/texts/text-35.txt +1 -0
- data/assets/texts/text-350.txt +1 -0
- data/assets/texts/text-351.txt +6 -0
- data/assets/texts/text-352.txt +1 -0
- data/assets/texts/text-353.txt +1 -0
- data/assets/texts/text-354.txt +1 -0
- data/assets/texts/text-355.txt +1 -0
- data/assets/texts/text-356.txt +1 -0
- data/assets/texts/text-357.txt +1 -0
- data/assets/texts/text-358.txt +1 -0
- data/assets/texts/text-359.txt +1 -0
- data/assets/texts/text-36.txt +1 -0
- data/assets/texts/text-360.txt +1 -0
- data/assets/texts/text-361.txt +1 -0
- data/assets/texts/text-362.txt +6 -0
- data/assets/texts/text-363.txt +1 -0
- data/assets/texts/text-364.txt +1 -0
- data/assets/texts/text-365.txt +1 -0
- data/assets/texts/text-366.txt +1 -0
- data/assets/texts/text-367.txt +1 -0
- data/assets/texts/text-368.txt +5 -0
- data/assets/texts/text-369.txt +1 -0
- data/assets/texts/text-37.txt +1 -0
- data/assets/texts/text-370.txt +1 -0
- data/assets/texts/text-371.txt +1 -0
- data/assets/texts/text-372.txt +1 -0
- data/assets/texts/text-373.txt +1 -0
- data/assets/texts/text-374.txt +7 -0
- data/assets/texts/text-375.txt +1 -0
- data/assets/texts/text-376.txt +1 -0
- data/assets/texts/text-377.txt +1 -0
- data/assets/texts/text-378.txt +1 -0
- data/assets/texts/text-379.txt +1 -0
- data/assets/texts/text-38.txt +1 -0
- data/assets/texts/text-380.txt +1 -0
- data/assets/texts/text-381.txt +1 -0
- data/assets/texts/text-382.txt +1 -0
- data/assets/texts/text-383.txt +1 -0
- data/assets/texts/text-384.txt +1 -0
- data/assets/texts/text-385.txt +1 -0
- data/assets/texts/text-386.txt +1 -0
- data/assets/texts/text-387.txt +1 -0
- data/assets/texts/text-388.txt +1 -0
- data/assets/texts/text-389.txt +1 -0
- data/assets/texts/text-39.txt +1 -0
- data/assets/texts/text-390.txt +1 -0
- data/assets/texts/text-391.txt +1 -0
- data/assets/texts/text-392.txt +1 -0
- data/assets/texts/text-393.txt +1 -0
- data/assets/texts/text-394.txt +1 -0
- data/assets/texts/text-395.txt +1 -0
- data/assets/texts/text-396.txt +1 -0
- data/assets/texts/text-397.txt +1 -0
- data/assets/texts/text-398.txt +1 -0
- data/assets/texts/text-399.txt +1 -0
- data/assets/texts/text-4.txt +1 -0
- data/assets/texts/text-40.txt +1 -0
- data/assets/texts/text-400.txt +1 -0
- data/assets/texts/text-401.txt +1 -0
- data/assets/texts/text-402.txt +1 -0
- data/assets/texts/text-403.txt +1 -0
- data/assets/texts/text-404.txt +1 -0
- data/assets/texts/text-405.txt +1 -0
- data/assets/texts/text-406.txt +1 -0
- data/assets/texts/text-407.txt +1 -0
- data/assets/texts/text-408.txt +1 -0
- data/assets/texts/text-409.txt +1 -0
- data/assets/texts/text-41.txt +1 -0
- data/assets/texts/text-410.txt +1 -0
- data/assets/texts/text-411.txt +1 -0
- data/assets/texts/text-412.txt +1 -0
- data/assets/texts/text-413.txt +1 -0
- data/assets/texts/text-414.txt +1 -0
- data/assets/texts/text-415.txt +1 -0
- data/assets/texts/text-416.txt +1 -0
- data/assets/texts/text-417.txt +1 -0
- data/assets/texts/text-418.txt +1 -0
- data/assets/texts/text-419.txt +1 -0
- data/assets/texts/text-42.txt +1 -0
- data/assets/texts/text-420.txt +4 -0
- data/assets/texts/text-421.txt +1 -0
- data/assets/texts/text-422.txt +1 -0
- data/assets/texts/text-423.txt +1 -0
- data/assets/texts/text-424.txt +1 -0
- data/assets/texts/text-425.txt +1 -0
- data/assets/texts/text-426.txt +1 -0
- data/assets/texts/text-427.txt +1 -0
- data/assets/texts/text-428.txt +1 -0
- data/assets/texts/text-429.txt +1 -0
- data/assets/texts/text-43.txt +1 -0
- data/assets/texts/text-430.txt +1 -0
- data/assets/texts/text-431.txt +1 -0
- data/assets/texts/text-432.txt +1 -0
- data/assets/texts/text-433.txt +1 -0
- data/assets/texts/text-434.txt +1 -0
- data/assets/texts/text-435.txt +1 -0
- data/assets/texts/text-436.txt +1 -0
- data/assets/texts/text-437.txt +1 -0
- data/assets/texts/text-438.txt +1 -0
- data/assets/texts/text-439.txt +1 -0
- data/assets/texts/text-44.txt +1 -0
- data/assets/texts/text-440.txt +1 -0
- data/assets/texts/text-441.txt +1 -0
- data/assets/texts/text-442.txt +6 -0
- data/assets/texts/text-443.txt +1 -0
- data/assets/texts/text-444.txt +1 -0
- data/assets/texts/text-445.txt +1 -0
- data/assets/texts/text-446.txt +1 -0
- data/assets/texts/text-447.txt +1 -0
- data/assets/texts/text-448.txt +1 -0
- data/assets/texts/text-449.txt +1 -0
- data/assets/texts/text-45.txt +1 -0
- data/assets/texts/text-450.txt +1 -0
- data/assets/texts/text-451.txt +1 -0
- data/assets/texts/text-452.txt +1 -0
- data/assets/texts/text-453.txt +1 -0
- data/assets/texts/text-454.txt +1 -0
- data/assets/texts/text-455.txt +1 -0
- data/assets/texts/text-456.txt +1 -0
- data/assets/texts/text-457.txt +1 -0
- data/assets/texts/text-458.txt +1 -0
- data/assets/texts/text-459.txt +1 -0
- data/assets/texts/text-46.txt +1 -0
- data/assets/texts/text-460.txt +1 -0
- data/assets/texts/text-461.txt +1 -0
- data/assets/texts/text-462.txt +1 -0
- data/assets/texts/text-463.txt +1 -0
- data/assets/texts/text-464.txt +1 -0
- data/assets/texts/text-465.txt +1 -0
- data/assets/texts/text-466.txt +4 -0
- data/assets/texts/text-467.txt +1 -0
- data/assets/texts/text-468.txt +1 -0
- data/assets/texts/text-469.txt +1 -0
- data/assets/texts/text-47.txt +1 -0
- data/assets/texts/text-470.txt +1 -0
- data/assets/texts/text-471.txt +1 -0
- data/assets/texts/text-472.txt +1 -0
- data/assets/texts/text-473.txt +1 -0
- data/assets/texts/text-474.txt +1 -0
- data/assets/texts/text-475.txt +1 -0
- data/assets/texts/text-476.txt +1 -0
- data/assets/texts/text-477.txt +1 -0
- data/assets/texts/text-478.txt +1 -0
- data/assets/texts/text-479.txt +1 -0
- data/assets/texts/text-48.txt +4 -0
- data/assets/texts/text-480.txt +1 -0
- data/assets/texts/text-481.txt +1 -0
- data/assets/texts/text-482.txt +1 -0
- data/assets/texts/text-483.txt +1 -0
- data/assets/texts/text-484.txt +1 -0
- data/assets/texts/text-485.txt +1 -0
- data/assets/texts/text-486.txt +1 -0
- data/assets/texts/text-487.txt +1 -0
- data/assets/texts/text-488.txt +4 -0
- data/assets/texts/text-489.txt +1 -0
- data/assets/texts/text-49.txt +1 -0
- data/assets/texts/text-490.txt +1 -0
- data/assets/texts/text-491.txt +1 -0
- data/assets/texts/text-492.txt +1 -0
- data/assets/texts/text-493.txt +1 -0
- data/assets/texts/text-494.txt +1 -0
- data/assets/texts/text-495.txt +1 -0
- data/assets/texts/text-496.txt +1 -0
- data/assets/texts/text-497.txt +1 -0
- data/assets/texts/text-498.txt +1 -0
- data/assets/texts/text-499.txt +1 -0
- data/assets/texts/text-5.txt +1 -0
- data/assets/texts/text-50.txt +1 -0
- data/assets/texts/text-500.txt +1 -0
- data/assets/texts/text-501.txt +1 -0
- data/assets/texts/text-502.txt +1 -0
- data/assets/texts/text-503.txt +1 -0
- data/assets/texts/text-504.txt +1 -0
- data/assets/texts/text-505.txt +1 -0
- data/assets/texts/text-506.txt +1 -0
- data/assets/texts/text-507.txt +1 -0
- data/assets/texts/text-508.txt +1 -0
- data/assets/texts/text-509.txt +1 -0
- data/assets/texts/text-51.txt +1 -0
- data/assets/texts/text-510.txt +1 -0
- data/assets/texts/text-511.txt +1 -0
- data/assets/texts/text-512.txt +1 -0
- data/assets/texts/text-513.txt +1 -0
- data/assets/texts/text-514.txt +1 -0
- data/assets/texts/text-515.txt +1 -0
- data/assets/texts/text-516.txt +1 -0
- data/assets/texts/text-517.txt +1 -0
- data/assets/texts/text-518.txt +1 -0
- data/assets/texts/text-519.txt +1 -0
- data/assets/texts/text-52.txt +1 -0
- data/assets/texts/text-520.txt +1 -0
- data/assets/texts/text-521.txt +1 -0
- data/assets/texts/text-522.txt +1 -0
- data/assets/texts/text-523.txt +1 -0
- data/assets/texts/text-524.txt +1 -0
- data/assets/texts/text-525.txt +1 -0
- data/assets/texts/text-526.txt +1 -0
- data/assets/texts/text-527.txt +1 -0
- data/assets/texts/text-528.txt +1 -0
- data/assets/texts/text-529.txt +1 -0
- data/assets/texts/text-53.txt +1 -0
- data/assets/texts/text-530.txt +1 -0
- data/assets/texts/text-531.txt +1 -0
- data/assets/texts/text-532.txt +1 -0
- data/assets/texts/text-533.txt +1 -0
- data/assets/texts/text-534.txt +1 -0
- data/assets/texts/text-535.txt +1 -0
- data/assets/texts/text-536.txt +1 -0
- data/assets/texts/text-537.txt +1 -0
- data/assets/texts/text-538.txt +1 -0
- data/assets/texts/text-539.txt +1 -0
- data/assets/texts/text-54.txt +6 -0
- data/assets/texts/text-540.txt +1 -0
- data/assets/texts/text-541.txt +1 -0
- data/assets/texts/text-542.txt +1 -0
- data/assets/texts/text-543.txt +1 -0
- data/assets/texts/text-544.txt +1 -0
- data/assets/texts/text-545.txt +1 -0
- data/assets/texts/text-546.txt +4 -0
- data/assets/texts/text-547.txt +1 -0
- data/assets/texts/text-548.txt +1 -0
- data/assets/texts/text-549.txt +1 -0
- data/assets/texts/text-55.txt +1 -0
- data/assets/texts/text-550.txt +1 -0
- data/assets/texts/text-551.txt +1 -0
- data/assets/texts/text-552.txt +1 -0
- data/assets/texts/text-553.txt +1 -0
- data/assets/texts/text-554.txt +1 -0
- data/assets/texts/text-555.txt +1 -0
- data/assets/texts/text-556.txt +1 -0
- data/assets/texts/text-557.txt +1 -0
- data/assets/texts/text-558.txt +1 -0
- data/assets/texts/text-559.txt +1 -0
- data/assets/texts/text-56.txt +1 -0
- data/assets/texts/text-560.txt +1 -0
- data/assets/texts/text-561.txt +1 -0
- data/assets/texts/text-562.txt +1 -0
- data/assets/texts/text-563.txt +1 -0
- data/assets/texts/text-564.txt +1 -0
- data/assets/texts/text-565.txt +1 -0
- data/assets/texts/text-566.txt +1 -0
- data/assets/texts/text-567.txt +1 -0
- data/assets/texts/text-568.txt +1 -0
- data/assets/texts/text-569.txt +1 -0
- data/assets/texts/text-57.txt +1 -0
- data/assets/texts/text-570.txt +1 -0
- data/assets/texts/text-571.txt +1 -0
- data/assets/texts/text-572.txt +1 -0
- data/assets/texts/text-573.txt +1 -0
- data/assets/texts/text-574.txt +1 -0
- data/assets/texts/text-575.txt +1 -0
- data/assets/texts/text-576.txt +1 -0
- data/assets/texts/text-577.txt +1 -0
- data/assets/texts/text-578.txt +1 -0
- data/assets/texts/text-579.txt +1 -0
- data/assets/texts/text-58.txt +1 -0
- data/assets/texts/text-580.txt +1 -0
- data/assets/texts/text-581.txt +1 -0
- data/assets/texts/text-582.txt +1 -0
- data/assets/texts/text-583.txt +1 -0
- data/assets/texts/text-584.txt +1 -0
- data/assets/texts/text-585.txt +1 -0
- data/assets/texts/text-586.txt +1 -0
- data/assets/texts/text-587.txt +1 -0
- data/assets/texts/text-588.txt +1 -0
- data/assets/texts/text-589.txt +1 -0
- data/assets/texts/text-59.txt +1 -0
- data/assets/texts/text-590.txt +1 -0
- data/assets/texts/text-591.txt +1 -0
- data/assets/texts/text-592.txt +1 -0
- data/assets/texts/text-593.txt +1 -0
- data/assets/texts/text-594.txt +1 -0
- data/assets/texts/text-595.txt +1 -0
- data/assets/texts/text-596.txt +1 -0
- data/assets/texts/text-597.txt +1 -0
- data/assets/texts/text-598.txt +1 -0
- data/assets/texts/text-599.txt +1 -0
- data/assets/texts/text-6.txt +1 -0
- data/assets/texts/text-60.txt +1 -0
- data/assets/texts/text-600.txt +1 -0
- data/assets/texts/text-601.txt +6 -0
- data/assets/texts/text-602.txt +1 -0
- data/assets/texts/text-603.txt +1 -0
- data/assets/texts/text-604.txt +1 -0
- data/assets/texts/text-605.txt +1 -0
- data/assets/texts/text-606.txt +1 -0
- data/assets/texts/text-607.txt +1 -0
- data/assets/texts/text-608.txt +1 -0
- data/assets/texts/text-609.txt +1 -0
- data/assets/texts/text-61.txt +4 -0
- data/assets/texts/text-610.txt +1 -0
- data/assets/texts/text-611.txt +1 -0
- data/assets/texts/text-612.txt +1 -0
- data/assets/texts/text-613.txt +1 -0
- data/assets/texts/text-614.txt +1 -0
- data/assets/texts/text-615.txt +1 -0
- data/assets/texts/text-616.txt +1 -0
- data/assets/texts/text-617.txt +1 -0
- data/assets/texts/text-618.txt +1 -0
- data/assets/texts/text-619.txt +1 -0
- data/assets/texts/text-62.txt +1 -0
- data/assets/texts/text-620.txt +1 -0
- data/assets/texts/text-621.txt +1 -0
- data/assets/texts/text-622.txt +1 -0
- data/assets/texts/text-623.txt +1 -0
- data/assets/texts/text-624.txt +1 -0
- data/assets/texts/text-625.txt +1 -0
- data/assets/texts/text-626.txt +1 -0
- data/assets/texts/text-627.txt +1 -0
- data/assets/texts/text-628.txt +1 -0
- data/assets/texts/text-629.txt +1 -0
- data/assets/texts/text-63.txt +1 -0
- data/assets/texts/text-630.txt +7 -0
- data/assets/texts/text-631.txt +1 -0
- data/assets/texts/text-632.txt +1 -0
- data/assets/texts/text-633.txt +1 -0
- data/assets/texts/text-634.txt +1 -0
- data/assets/texts/text-635.txt +1 -0
- data/assets/texts/text-636.txt +1 -0
- data/assets/texts/text-637.txt +1 -0
- data/assets/texts/text-638.txt +1 -0
- data/assets/texts/text-639.txt +1 -0
- data/assets/texts/text-64.txt +1 -0
- data/assets/texts/text-640.txt +1 -0
- data/assets/texts/text-641.txt +1 -0
- data/assets/texts/text-642.txt +1 -0
- data/assets/texts/text-643.txt +1 -0
- data/assets/texts/text-644.txt +1 -0
- data/assets/texts/text-645.txt +1 -0
- data/assets/texts/text-646.txt +1 -0
- data/assets/texts/text-647.txt +1 -0
- data/assets/texts/text-648.txt +1 -0
- data/assets/texts/text-649.txt +1 -0
- data/assets/texts/text-65.txt +1 -0
- data/assets/texts/text-650.txt +1 -0
- data/assets/texts/text-651.txt +1 -0
- data/assets/texts/text-652.txt +1 -0
- data/assets/texts/text-653.txt +1 -0
- data/assets/texts/text-654.txt +1 -0
- data/assets/texts/text-655.txt +1 -0
- data/assets/texts/text-656.txt +1 -0
- data/assets/texts/text-657.txt +1 -0
- data/assets/texts/text-658.txt +1 -0
- data/assets/texts/text-659.txt +1 -0
- data/assets/texts/text-66.txt +1 -0
- data/assets/texts/text-660.txt +1 -0
- data/assets/texts/text-661.txt +1 -0
- data/assets/texts/text-662.txt +1 -0
- data/assets/texts/text-663.txt +1 -0
- data/assets/texts/text-664.txt +1 -0
- data/assets/texts/text-665.txt +1 -0
- data/assets/texts/text-666.txt +1 -0
- data/assets/texts/text-667.txt +1 -0
- data/assets/texts/text-668.txt +1 -0
- data/assets/texts/text-669.txt +1 -0
- data/assets/texts/text-67.txt +6 -0
- data/assets/texts/text-670.txt +1 -0
- data/assets/texts/text-671.txt +1 -0
- data/assets/texts/text-672.txt +1 -0
- data/assets/texts/text-673.txt +1 -0
- data/assets/texts/text-674.txt +1 -0
- data/assets/texts/text-675.txt +1 -0
- data/assets/texts/text-676.txt +1 -0
- data/assets/texts/text-677.txt +1 -0
- data/assets/texts/text-678.txt +1 -0
- data/assets/texts/text-679.txt +1 -0
- data/assets/texts/text-68.txt +1 -0
- data/assets/texts/text-680.txt +1 -0
- data/assets/texts/text-681.txt +1 -0
- data/assets/texts/text-682.txt +1 -0
- data/assets/texts/text-683.txt +1 -0
- data/assets/texts/text-684.txt +1 -0
- data/assets/texts/text-685.txt +1 -0
- data/assets/texts/text-686.txt +1 -0
- data/assets/texts/text-687.txt +1 -0
- data/assets/texts/text-688.txt +1 -0
- data/assets/texts/text-689.txt +1 -0
- data/assets/texts/text-69.txt +1 -0
- data/assets/texts/text-690.txt +1 -0
- data/assets/texts/text-691.txt +1 -0
- data/assets/texts/text-692.txt +1 -0
- data/assets/texts/text-693.txt +1 -0
- data/assets/texts/text-694.txt +1 -0
- data/assets/texts/text-695.txt +1 -0
- data/assets/texts/text-696.txt +1 -0
- data/assets/texts/text-697.txt +1 -0
- data/assets/texts/text-698.txt +1 -0
- data/assets/texts/text-699.txt +1 -0
- data/assets/texts/text-7.txt +1 -0
- data/assets/texts/text-70.txt +1 -0
- data/assets/texts/text-700.txt +1 -0
- data/assets/texts/text-701.txt +1 -0
- data/assets/texts/text-702.txt +1 -0
- data/assets/texts/text-703.txt +1 -0
- data/assets/texts/text-704.txt +1 -0
- data/assets/texts/text-705.txt +1 -0
- data/assets/texts/text-706.txt +1 -0
- data/assets/texts/text-707.txt +1 -0
- data/assets/texts/text-71.txt +1 -0
- data/assets/texts/text-72.txt +1 -0
- data/assets/texts/text-73.txt +1 -0
- data/assets/texts/text-74.txt +1 -0
- data/assets/texts/text-75.txt +4 -0
- data/assets/texts/text-76.txt +1 -0
- data/assets/texts/text-77.txt +1 -0
- data/assets/texts/text-78.txt +1 -0
- data/assets/texts/text-79.txt +1 -0
- data/assets/texts/text-8.txt +1 -0
- data/assets/texts/text-80.txt +1 -0
- data/assets/texts/text-81.txt +1 -0
- data/assets/texts/text-82.txt +1 -0
- data/assets/texts/text-83.txt +1 -0
- data/assets/texts/text-84.txt +1 -0
- data/assets/texts/text-85.txt +7 -0
- data/assets/texts/text-86.txt +1 -0
- data/assets/texts/text-87.txt +1 -0
- data/assets/texts/text-88.txt +1 -0
- data/assets/texts/text-89.txt +1 -0
- data/assets/texts/text-9.txt +1 -0
- data/assets/texts/text-90.txt +1 -0
- data/assets/texts/text-91.txt +1 -0
- data/assets/texts/text-92.txt +1 -0
- data/assets/texts/text-93.txt +1 -0
- data/assets/texts/text-94.txt +1 -0
- data/assets/texts/text-95.txt +1 -0
- data/assets/texts/text-96.txt +1 -0
- data/assets/texts/text-97.txt +4 -0
- data/assets/texts/text-98.txt +5 -0
- data/assets/texts/text-99.txt +1 -0
- data/lib/need_for_type/display_window.rb +76 -49
- data/lib/need_for_type/file_manager.rb +5 -19
- data/lib/need_for_type/states.rb +2 -1
- data/lib/need_for_type/states/end.rb +30 -0
- data/lib/need_for_type/states/game.rb +32 -25
- data/lib/need_for_type/states/menu.rb +5 -14
- data/lib/need_for_type/states/{score.rb → start.rb} +4 -7
- data/lib/need_for_type/states/state.rb +0 -1
- data/lib/need_for_type/typer.rb +1 -1
- data/lib/need_for_type/version.rb +1 -1
- data/lib/need_for_type/window.rb +34 -7
- metadata +712 -7
- data/assets/easy/1.txt +0 -1
- data/assets/hard/1.txt +0 -1
- data/assets/medium/1.txt +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
When the mind is brought to rest and not allowed to wander, a deep calm pervades body and mind, a state of tranquility which must be experienced to be understood.
|
@@ -0,0 +1 @@
|
|
1
|
+
A few light taps upon the pane made him turn to the window. It had begun to snow again. He watched sleepily the flakes, silver and dark, falling obliquely against the lamplight. The time had come for him to set out on his journey westward.
|
@@ -0,0 +1 @@
|
|
1
|
+
A few light taps upon the pane made him turn to the window. It had begun to snow again. He watched sleepily the flakes, silver and dark, falling obliquely against the lamplight.
|
@@ -0,0 +1 @@
|
|
1
|
+
A few light taps upon the pane made him turn to the window. It had begun to snow again.
|
@@ -0,0 +1 @@
|
|
1
|
+
We don't need no education. We don't need no thought control. No dark sarcasm in the classroom - teachers leave them kids alone! All in all it's just another brick in the wall. "If you don't eat yer meat, you can't have any pudding. How can you have any pudding if you don't eat yer meat?"
|
@@ -0,0 +1 @@
|
|
1
|
+
Ticking away the moments that make up a dull day, you fritter and waste the hours in an off-hand way. Kicking around on a piece of ground in your home town, waiting for someone or something to show you the way.
|
@@ -0,0 +1 @@
|
|
1
|
+
Ticking away the moments that make up a dull day, you fritter and waste the hours in an off-hand way. Kicking around on a piece of ground in your home town, waiting for someone or something to show you the way. Tired of lying in the sunshine, staying home to watch the rain. You are young and life is long, and there is time to kill today. And then, one day you find, ten years have got behind you, no one told you when to run, you missed the starting gun.
|
@@ -0,0 +1 @@
|
|
1
|
+
Trudging slowly over wet sand, back to the bench where your clothes were stolen. This is the coastal town that they forgot to close down. Armageddon - come Armageddon, come.
|
@@ -0,0 +1 @@
|
|
1
|
+
There's sometimes a buggy. How many drivers does a buggy have? So, let's just say I'm driving this buggy, and if you fix your attitude, you can ride along with me. Now you will see me one more time, if you do good. You will see me, two more times, if you do bad.
|
@@ -0,0 +1 @@
|
|
1
|
+
Now did you answer cause you thought that's what I wanted to hear, or did you think about what I said and answer cause you truly believe that to be right?
|
@@ -0,0 +1 @@
|
|
1
|
+
Now I want you to think and stop being a smart aleck. A man's attitude goes some ways - the way his life will be. Is that something you agree with? So since you agree, you must be someone who does not care about the good life.
|
@@ -0,0 +1 @@
|
|
1
|
+
My dog barks some. Mentally you picture my dog, but I have not told you the type of dog which I have. Perhaps you even picture Toto, from "The Wizard of Oz." But I warn you, my dog is always with me. Woof!
|
@@ -0,0 +1 @@
|
|
1
|
+
The streets were cleared by a Critical Mass bike ride and were flooded by activists dressed in second-hand suits with slogans painted on their backs. They danced in the doorsteps of office towers, formed a human chain around the Treasury and held peaceful sit-ins at several banks.
|
@@ -0,0 +1 @@
|
|
1
|
+
It's a sunny, woodsy day in Lumberton, so get those chainsaws out. This is the mighty WOOD - the musical voice of Lumberton. At the sound of the falling tree, it's 9:30. There's a whole lotta wood waiting out there, so let's get going.
|
@@ -0,0 +1 @@
|
|
1
|
+
I had a dream. There was our world, and the world was dark because there weren't any robins, and the robins represented love. And for the longest time, there was this darkness. Then all of a sudden, thousands of robins were set free and they flew down and brought this blinding light of love. I guess it means that there is trouble until the robins come.
|
@@ -0,0 +1 @@
|
|
1
|
+
Now you might ask yourself, if by yourself you mean me, "Stephen, if you don't like books, why did you write one?" You just asked yourself a trick question. I didn't write it. I dictated it. I shouted it into a tape recorder over the Columbus Day weekend, then handed it to my agent and said, "Sell this."
|
@@ -0,0 +1 @@
|
|
1
|
+
I'm telling it like it is. Get used to it or put this book down. Because this book is for America's Heroes. And who are the Heroes? The people who bought this book. People who borrow this book are not Heroes. They are no better than welfare queens mooching off the system like card-carrying library card-carriers. For the record, we're not offering this book to libraries. No free rides.
|
@@ -0,0 +1 @@
|
|
1
|
+
And today, Lady Liberty is under attack from the cable channels, the internet blogs, and the Hollywood celebritocracy, out there spewing "facts" like so many locusts descending on America's crop of ripe, tender values. And as any farmer or biblical scholar will tell you, locusts are damn hard to get rid of.
|
@@ -0,0 +1,7 @@
|
|
1
|
+
In May 1980, Fidel Castro opened the
|
2
|
+
harbor at Mariel, Cuba with the apparent intention of letting some of
|
3
|
+
his people join their relatives in the United States. Within
|
4
|
+
seventy-two hours, 3,000 U.S. boats were headed for Cuba. It soon
|
5
|
+
became evident that Castro was forcing the boat owners to carry back
|
6
|
+
with them not only their relatives, but the dregs of his
|
7
|
+
jails.
|
@@ -0,0 +1 @@
|
|
1
|
+
In the casino, the cardinal rule is to keep them playing and to keep them coming back. The longer they play, the more they lose, and in the end, we get it all. Running a casino is like robbing a bank with no cops around.
|
@@ -0,0 +1 @@
|
|
1
|
+
What? A swallow carrying a coconut? It's not a question of where he grips it! It's a simple question of weight ratios! A five ounce bird could not carry a one pound coconut. Listen - in order to maintain air-speed velocity, a swallow needs to beat its wings forty-three times every second, right?
|
@@ -0,0 +1 @@
|
|
1
|
+
Listen, strange women lyin' in ponds distributin' swords is no basis for a system of government. Supreme executive power derives from a mandate from the masses, not from some farcical aquatic ceremony.
|
@@ -0,0 +1 @@
|
|
1
|
+
Everyone said I was daft to build a castle on a swamp, but I built it all the same, just to show them. It sank into the swamp. So I built a second one. That sank into the swamp. So I built a third. That burned down, fell over, then sank into the swamp. But the fourth one stayed up. And that's what you're going to get, Lad, the strongest castle in all of England.
|
@@ -0,0 +1 @@
|
|
1
|
+
But the two men were not lonely at all. At home they were content to eat and drink, and Singer would talk with his hands eagerly to his friend about all that was in his mind. So the years passed in this quiet way until Singer reached the age of thirty-two.
|
@@ -0,0 +1 @@
|
|
1
|
+
Everyone said I was daft to build a castle on a swamp, but I built it all the same, just to show them. It sank into the swamp. So I built a second one. That sank into the swamp. So I built a third. That burned down, fell over, then sank into the swamp. But the fourth one stayed up!
|
@@ -0,0 +1 @@
|
|
1
|
+
King, eh? Very nice. And how'd you get that, eh? By exploiting the workers. By hanging on to outdated imperialist dogma which perpetuates the economic and social differences in our society.
|
@@ -0,0 +1 @@
|
|
1
|
+
Make sure to secure the door when I am gone. There are many dangerous people who wanna take things from Americans, and also kidnap them. Good night!
|
@@ -0,0 +1 @@
|
|
1
|
+
An essential characteristic of the superhero mythology is, there's the superhero, and there's the alter ego. Batman is actually Bruce Wayne, Spider-Man is actually Peter Parker. When he wakes up in the morning, he's Peter Parker. He has to put on a costume to become Spider-Man. And it is in that characteristic that Superman stands alone. Superman did not become Superman, Superman was born Superman.
|
@@ -0,0 +1 @@
|
|
1
|
+
Well, it just so happens, this hacienda comes with its very own private beach. And this private beach just so happens to look particularly beautiful bathed in moonlight. And there just so happens to be a full moon out tonight.
|
@@ -0,0 +1 @@
|
|
1
|
+
My entire life had been on a predictable trajectory dominated by a couple of university degrees and thirteen years of white-collar employment. My identity was defined by my career. I now planned a radical shift, a big leap into the unknown: from corporate executive to unemployed guy setting up libraries in the Himalayas.
|
@@ -0,0 +1 @@
|
|
1
|
+
Look, you should admit to yourself that Microsoft will miss you for a month or two. Someone will quickly fill the void. It will be like you never worked there. Ask yourself, "Are there thousands lining up to help poor villages build schools and libraries?"
|
@@ -0,0 +1,5 @@
|
|
1
|
+
Is it really necessary to send that
|
2
|
+
email? The more emails you send, the more work others will have to do
|
3
|
+
to prioritize your requests. How many of the things you're mentioning
|
4
|
+
are important? If you have 10 issues to discuss, break them into two
|
5
|
+
groups and focus on the most important group.
|
@@ -0,0 +1 @@
|
|
1
|
+
As if that blind rage had washed me clean, rid me of hope; for the first time, in that night alive with signs and stars, I opened myself to the gentle indifference of the world.
|
@@ -3,78 +3,105 @@ require 'need_for_type/window'
|
|
3
3
|
|
4
4
|
module NeedForType
|
5
5
|
class DisplayWindow < Window
|
6
|
+
OFFSET = 35
|
7
|
+
@@need_for_type_ascii_art =
|
8
|
+
" _ __ __ ____ ______
|
9
|
+
/ | / /__ ___ ____/ / / __/___ _____ /_ __/_ ______ ___
|
10
|
+
/ |/ / _ \\/ _ \\/ __ / / /_/ __ \\/ ___/ / / / / / / __ \\/ _ \\
|
11
|
+
/ /| / __/ __/ /_/ / / __/ /_/ / / / / / /_/ / /_/ / __/
|
12
|
+
/_/ |_/\\___/\\___/\\__,_/ /_/ \\____/_/ /_/ \\__, / .___/\\___/
|
13
|
+
/____/_/
|
14
|
+
"
|
6
15
|
|
7
16
|
def initialize
|
8
17
|
super(Curses.lines, Curses.cols, 0, 0)
|
9
18
|
Curses.curs_set(CURSOR_INVISIBLE)
|
10
19
|
end
|
11
20
|
|
12
|
-
def
|
13
|
-
self.
|
14
|
-
|
15
|
-
|
21
|
+
def render_start
|
22
|
+
self.render_box do
|
23
|
+
y_ascii = (Curses.lines / 2) - 8
|
24
|
+
x_ascii = (Curses.cols / 2) - OFFSET
|
25
|
+
self.render_need_for_type_ascii_art(y_ascii, x_ascii)
|
16
26
|
|
17
|
-
|
18
|
-
|
19
|
-
|
27
|
+
text = "Click ENTER to start playing"
|
28
|
+
y_text = y_ascii + 8
|
29
|
+
x_text = (Curses.cols / 2) - (text.size / 2)
|
30
|
+
self.set_render_pos(y_text, x_text)
|
31
|
+
self.render_text(text, WHITE, NORMAL)
|
32
|
+
end
|
33
|
+
end
|
20
34
|
|
21
|
-
|
22
|
-
|
23
|
-
|
35
|
+
def render_game_text(text, chars_completed, stats, failed = false)
|
36
|
+
color = failed ? RED : YELLOW
|
37
|
+
completed = text[0, chars_completed] || ''
|
38
|
+
remaining = text[chars_completed + 1, text.length] || ''
|
24
39
|
|
25
|
-
|
26
|
-
|
27
|
-
self.
|
40
|
+
self.render_box do
|
41
|
+
# Stats
|
42
|
+
self.render_with_color(GREEN) do
|
43
|
+
render_stats(stats, 2, 4, :horizontal)
|
44
|
+
end
|
28
45
|
|
29
|
-
|
30
|
-
|
31
|
-
self.render_text(
|
46
|
+
# Text
|
47
|
+
self.set_render_pos(4, 4)
|
48
|
+
self.render_text(completed, GREEN, NORMAL)
|
49
|
+
self.render_text(text[chars_completed], color, NORMAL)
|
50
|
+
self.render_text(remaining, WHITE, NORMAL)
|
32
51
|
end
|
33
52
|
end
|
34
53
|
|
35
|
-
def
|
36
|
-
|
37
|
-
|
54
|
+
def render_end(stats, selected_option)
|
55
|
+
self.render_box do
|
56
|
+
self.render_with_color(GREEN) do
|
57
|
+
self.set_render_pos(3, 4)
|
58
|
+
self.addstr("Congratulations you crossed the finish line!")
|
38
59
|
|
39
|
-
|
40
|
-
|
41
|
-
completed = text[0, chars_completed - 1]
|
42
|
-
tail = text[chars_completed + 1, text.length]
|
60
|
+
render_stats(stats, 5, 4, :vertical)
|
61
|
+
end
|
43
62
|
|
44
|
-
|
45
|
-
|
46
|
-
self.
|
47
|
-
|
48
|
-
self.
|
63
|
+
self.set_render_pos(9, 4)
|
64
|
+
mode = standout_mode(0, selected_option)
|
65
|
+
self.render_text("1. Restart", WHITE, mode)
|
66
|
+
|
67
|
+
self.set_render_pos(10, 4)
|
68
|
+
mode = standout_mode(1, selected_option)
|
69
|
+
self.render_text("2. Main Menu", WHITE, mode)
|
70
|
+
|
71
|
+
self.set_render_pos(11, 4)
|
72
|
+
mode = standout_mode(2, selected_option)
|
73
|
+
self.render_text("3. Exit", WHITE, mode)
|
49
74
|
end
|
50
75
|
end
|
51
76
|
|
52
|
-
def
|
53
|
-
|
54
|
-
self.
|
55
|
-
|
56
|
-
if i < chars_completed
|
57
|
-
self.render_text(c, GREEN, NORMAL)
|
58
|
-
elsif i == chars_completed
|
59
|
-
color = failed ? RED : YELLOW
|
60
|
-
self.render_text(c, color, NORMAL)
|
61
|
-
else
|
62
|
-
self.render_text(c, WHITE, NORMAL)
|
63
|
-
end
|
64
|
-
end
|
77
|
+
def render_need_for_type_ascii_art(y = 4, x = 4)
|
78
|
+
@@need_for_type_ascii_art.split("\n").each_with_index do |line, i|
|
79
|
+
self.set_render_pos(y + i, x)
|
80
|
+
self.render_text(line, GREEN, GREEN)
|
65
81
|
end
|
66
82
|
end
|
67
83
|
|
68
|
-
def
|
69
|
-
|
70
|
-
|
71
|
-
self.render_text("Time: #{time.round(2)} sec", GREEN, NORMAL)
|
84
|
+
def standout_mode(option, selected_option)
|
85
|
+
selected_option == option ? STANDOUT : NORMAL
|
86
|
+
end
|
72
87
|
|
73
|
-
|
74
|
-
|
88
|
+
def render_stats(stats, y, x, mode)
|
89
|
+
stats_text = [
|
90
|
+
"Time: #{stats[:total_time].round(2)} sec",
|
91
|
+
"WPM: #{stats[:wpm].round}",
|
92
|
+
"Accuracy: #{stats[:accuracy].round(2)} %"
|
93
|
+
]
|
75
94
|
|
76
|
-
|
77
|
-
self.
|
95
|
+
stats_text.each do |t|
|
96
|
+
self.set_render_pos(y, x)
|
97
|
+
self.addstr(t)
|
98
|
+
|
99
|
+
case mode
|
100
|
+
when :vertical
|
101
|
+
y += 1
|
102
|
+
when :horizontal
|
103
|
+
x += t.size + 4
|
104
|
+
end
|
78
105
|
end
|
79
106
|
end
|
80
107
|
end
|
@@ -2,30 +2,16 @@ module NeedForType
|
|
2
2
|
class FileManager
|
3
3
|
attr_accessor :content
|
4
4
|
|
5
|
-
def initialize(
|
6
|
-
@path = "#{NeedForType::GEM_ROOT}/assets
|
5
|
+
def initialize()
|
6
|
+
@path = "#{NeedForType::GEM_ROOT}/assets/texts/"
|
7
7
|
end
|
8
8
|
|
9
9
|
# Reads random file from difficulty folder
|
10
10
|
def get_random_text
|
11
|
-
|
12
|
-
random_file = rand(1..
|
11
|
+
directory_count = Dir[File.join(@path, '**', '*')].count
|
12
|
+
random_file = rand(1..directory_count)
|
13
13
|
|
14
|
-
|
15
|
-
@content = File.read("#{@path}/#{random_file}.txt").strip
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def difficulty_to_s(difficulty)
|
21
|
-
case difficulty
|
22
|
-
when 0
|
23
|
-
'easy'
|
24
|
-
when 1
|
25
|
-
'medium'
|
26
|
-
when 2
|
27
|
-
'hard'
|
28
|
-
end
|
14
|
+
@content = File.read("#{@path}/text-#{random_file}.txt").strip
|
29
15
|
end
|
30
16
|
end
|
31
17
|
end
|
data/lib/need_for_type/states.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'need_for_type/states/state'
|
2
2
|
require 'need_for_type/states/menu'
|
3
3
|
require 'need_for_type/states/game'
|
4
|
-
require 'need_for_type/states/
|
4
|
+
require 'need_for_type/states/start'
|
5
|
+
require 'need_for_type/states/end'
|
5
6
|
|
6
7
|
module NeedForType
|
7
8
|
module States
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'curses'
|
2
|
+
|
3
|
+
require 'need_for_type/states'
|
4
|
+
|
5
|
+
module NeedForType::States
|
6
|
+
class End < Menu
|
7
|
+
|
8
|
+
def initialize(display_window, stats, difficulty)
|
9
|
+
super(display_window)
|
10
|
+
@difficulty = difficulty
|
11
|
+
@stats = stats
|
12
|
+
@option = 0
|
13
|
+
end
|
14
|
+
|
15
|
+
def update
|
16
|
+
@display_window.render_end(@stats, @option)
|
17
|
+
|
18
|
+
input_worker(3) do
|
19
|
+
case @option
|
20
|
+
when 0
|
21
|
+
return NeedForType::States::Game.new(@display_window, @difficulty)
|
22
|
+
when 1
|
23
|
+
return NeedForType::States::Start.new(@display_window)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
return self
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -10,15 +10,25 @@ module NeedForType::States
|
|
10
10
|
super(display_window)
|
11
11
|
|
12
12
|
@difficulty = difficulty
|
13
|
-
@state = :
|
13
|
+
@state = :start_game
|
14
14
|
@text = ''
|
15
|
+
@word = ''
|
16
|
+
|
17
|
+
@chars_completed = 0
|
18
|
+
@total_taps = 0
|
19
|
+
@correct_taps = 0
|
20
|
+
|
21
|
+
# Stats
|
22
|
+
@stats = { total_time: 0,
|
23
|
+
wpm: 0,
|
24
|
+
accuracy: 100 }
|
15
25
|
end
|
16
26
|
|
17
|
-
# Takes action according to the current @state
|
27
|
+
# Takes action according to the current @state
|
18
28
|
def update
|
19
29
|
case @state
|
20
|
-
when :
|
21
|
-
|
30
|
+
when :start_game
|
31
|
+
handle_start_game
|
22
32
|
when :in_game_get_input
|
23
33
|
handle_in_game_get_input
|
24
34
|
when :in_game_valid_input
|
@@ -32,18 +42,10 @@ module NeedForType::States
|
|
32
42
|
|
33
43
|
private
|
34
44
|
|
35
|
-
def
|
36
|
-
|
37
|
-
@word = ''
|
38
|
-
|
39
|
-
@total_taps = 0
|
40
|
-
@correct_taps = 0
|
41
|
-
|
42
|
-
file_manager = NeedForType::FileManager.new(@difficulty)
|
45
|
+
def handle_start_game
|
46
|
+
file_manager = NeedForType::FileManager.new
|
43
47
|
@text = file_manager.get_random_text
|
44
|
-
@
|
45
|
-
@display_window.render_game_text(@split_text, @chars_completed)
|
46
|
-
|
48
|
+
@display_window.render_game_text(@text, @chars_completed, @stats)
|
47
49
|
@start_time = Time.now
|
48
50
|
|
49
51
|
@state = :in_game_get_input
|
@@ -62,6 +64,8 @@ module NeedForType::States
|
|
62
64
|
@state = :in_game_invalid_input
|
63
65
|
end
|
64
66
|
|
67
|
+
calculate_stats
|
68
|
+
|
65
69
|
return self
|
66
70
|
end
|
67
71
|
|
@@ -81,19 +85,18 @@ module NeedForType::States
|
|
81
85
|
@word += @text[@chars_completed]
|
82
86
|
end
|
83
87
|
|
84
|
-
|
85
|
-
@display_window.render_game_text(@split_text, @chars_completed)
|
88
|
+
@display_window.render_game_text(@text, @chars_completed, @stats)
|
86
89
|
|
87
90
|
@state = :in_game_get_input
|
88
91
|
|
89
92
|
return self
|
90
93
|
end
|
91
94
|
|
92
|
-
# User input is wrong
|
95
|
+
# User input is wrong
|
93
96
|
def handle_in_game_invalid_input
|
94
97
|
Curses.beep
|
95
98
|
|
96
|
-
@display_window.render_game_text(@
|
99
|
+
@display_window.render_game_text(@text, @chars_completed, @stats, true)
|
97
100
|
|
98
101
|
@state = :in_game_get_input
|
99
102
|
|
@@ -101,13 +104,17 @@ module NeedForType::States
|
|
101
104
|
end
|
102
105
|
|
103
106
|
def handle_end_game
|
104
|
-
|
107
|
+
calculate_stats
|
108
|
+
|
109
|
+
return NeedForType::States::End.new(@display_window, @stats, @difficulty)
|
110
|
+
end
|
111
|
+
|
112
|
+
def calculate_stats
|
113
|
+
current_time = Time.now
|
105
114
|
|
106
|
-
total_time =
|
107
|
-
wpm = (@text.split.size * 60) / total_time
|
108
|
-
accuracy = (@correct_taps.to_f / @total_taps.to_f) * 100
|
109
|
-
|
110
|
-
return NeedForType::States::Score.new(@display_window, total_time, wpm, accuracy)
|
115
|
+
@stats[:total_time] = current_time - @start_time
|
116
|
+
@stats[:wpm] = (@text.split.size * 60) / @stats[:total_time]
|
117
|
+
@stats[:accuracy] = (@correct_taps.to_f / @total_taps.to_f) * 100
|
111
118
|
end
|
112
119
|
end
|
113
120
|
end
|