React(JavaScript)刽子手游戏多单词支持:空格处理与显示优化
解决刽子手游戏多单词模式的显示与判定问题
1. 修改字符渲染逻辑,保留空格显示
在遍历字符时单独处理空格:如果当前字符是空格,直接渲染空格(可添加样式保证单词间隔),否则继续原有的字母/横线逻辑。修改后的代码如下:
{answer.split('').map((letter, index) => { // 处理空格:直接显示空格,不渲染横线 if (letter.trim() === '') { return <Text key={index} style={styles.space}> </Text>; } const l = letter.toUpperCase(); return ( <Text key={index} style={[{color: activeColors.textcolor}, styles.text]}> {correctLetters.includes(l) ? l : '-'} </Text> ) })}
给空格添加样式,确保单词间的间隔更明显:
const styles = StyleSheet.create({ // 原有样式... space: { width: 20, // 可调整此值控制空格宽度 marginHorizontal: 5, }, text: { fontSize: 24, marginHorizontal: 3, // 其他原有文字样式 } });
2. 调整胜利判定逻辑,排除空格
过滤掉答案中的空格,仅检查所有非空格字母是否都被猜对:
// 移除空格后,判断剩余所有字母是否都在已猜对列表中 const isGameWon = answer .split('') .filter(char => char.trim() !== '') .every(char => correctLetters.includes(char.toUpperCase()));
使用isGameWon变量判断游戏是否胜利,空格将不再影响判定结果。
内容的提问来源于stack exchange,提问作者LOTUSMS
相关产品推荐
相关产品推荐

