The hardest thing is to give G-d our hearts. We can try so hard to guard our eyes, we can make all sorts of barriers and penalties for ourselves, but if we aren't willing to truly give G-d our hearts, we end up falling again. What does it mean to give G-d our heart? It means that we need to be ready to accept Emunah on ourselves - without any understanding, Emunah that is beyond logic. This is the only way to truly win this battle. The proof of this is, how we keep seeing again and again how using our "mind" and our "logic" alone is not enough. With all that we know and all we understand, we keep falling anyway. This is because G-d wants us to give him our hearts, not just our minds. He wants us to accept true Emunah upon ourselves, Emunah that is above reason. Indeed, only when one's Emunah is stronger than his understanding will his understanding have lasting value and be able to help him. As Chaza"l say "Kol She Yiraso Kodemes LeChochmaso, Chachmaso Miskayemes".