如何修复控制台版石头剪刀布游戏在多轮后结果不显示的问题?

2026-05-07 02:122阅读0评论SEO资源
  • 内容介绍
  • 相关推荐

本文共计764个文字,预计阅读时间需要4分钟。

如何修复控制台版石头剪刀布游戏在多轮后结果不显示的问题?

原文:

在实现控制台版“石头剪刀布(Rock Paper Scissors)”游戏时,一个常见却隐蔽的陷阱是:函数虽返回了新值,但调用后未将返回值重新赋给对应变量。这会导致后续逻辑始终基于初始轮次的 playerSelection 和 computerSelection 运行,造成“结果不更新”“分数不变”“看似重复同一局”的假象。

问题根源在于原始 game() 函数的写法:

function game() { getPlayerChoice(); // ✅ 调用了,但返回值未接收 getComputerChoice(); // ✅ 调用了,但返回值未接收 playRound(playerSelection, computerSelection); // ✅ 执行了,但返回值未保存 updateScore(result); // ❌ result 仍是第一轮的旧值! // … 后续轮次同理 }

由于 getPlayerChoice() 和 getComputerChoice() 都有 return 语句,但调用时未用变量承接,playerSelection 和 computerSelection 的值从未被更新;同理,playRound() 返回的新 result 也未重新赋值,导致 updateScore(result) 始终处理的是初始化时那一局的结果。

阅读全文

本文共计764个文字,预计阅读时间需要4分钟。

如何修复控制台版石头剪刀布游戏在多轮后结果不显示的问题?

原文:

在实现控制台版“石头剪刀布(Rock Paper Scissors)”游戏时,一个常见却隐蔽的陷阱是:函数虽返回了新值,但调用后未将返回值重新赋给对应变量。这会导致后续逻辑始终基于初始轮次的 playerSelection 和 computerSelection 运行,造成“结果不更新”“分数不变”“看似重复同一局”的假象。

问题根源在于原始 game() 函数的写法:

function game() { getPlayerChoice(); // ✅ 调用了,但返回值未接收 getComputerChoice(); // ✅ 调用了,但返回值未接收 playRound(playerSelection, computerSelection); // ✅ 执行了,但返回值未保存 updateScore(result); // ❌ result 仍是第一轮的旧值! // … 后续轮次同理 }

由于 getPlayerChoice() 和 getComputerChoice() 都有 return 语句,但调用时未用变量承接,playerSelection 和 computerSelection 的值从未被更新;同理,playRound() 返回的新 result 也未重新赋值,导致 updateScore(result) 始终处理的是初始化时那一局的结果。

阅读全文