Toggle custom fields?

You could do this with jquery.

I have a similar code on use which you could probably easily edit to your needs:

load the admin js (I load css too but you can remove that)

function wpse181868_admin_css_js() {
    wp_register_style( 'bones_admin_css', get_template_directory_uri() . '/library/css/admin.css', false );
    wp_enqueue_style( 'bones_admin_css' );

    //adding scripts file in the footer
    wp_enqueue_script( 'admin_js', get_stylesheet_directory_uri() . '/library/js/admin.js', array( 'jquery' ), '', true );
}
add_action( 'admin_enqueue_scripts', 'wpse181868_admin_css_js' );

and then in the js check and show stuff as needed (I show different boxes for different post formats)

jQuery(document).ready(function($) {
    function checkFormat() {
        $('#attachments-gallery_attachments').hide();
        $('#featured_video').hide();
        if($('input[name=post_format]:checked', '#formatdiv').val() == "gallery") { $('#attachments-gallery_attachments').show(); }
        if($('input[name=post_format]:checked', '#formatdiv').val() == "video") { $('#featured_video').show(); }
    }

    $('#formatdiv input[type="radio"]').live('click', checkFormat);
    checkFormat();
});

EDIT:
In you theme’s functions.php add this code

function wpse181868_admin_js() { ?>
    <script type="text/javascript">
    jQuery(document).ready(function($) {
        var $input = $('<input type="button" id="s_s" value="Show score" />');
        $('input[name^="meta["]').each(function(){
            var val = $(this).val();
            if(val == "score") {
                var valueTD = $(this).parent().siblings();
                $(valueTD.find('textarea')).hide();
                $input.appendTo($(valueTD));
                $('#s_s').click(function(){ $(valueTD.find('textarea')).show(); $input.remove(); });
            }
        });
    });
    </script>
<?php }
add_action('admin_footer', 'wpse181868_admin_js');