React--井字棋实战(7)

本文档展示了如何修改Game组件的render方法,包括展示历史步数、处理游戏状态及玩家信息。通过点击事件实现棋局回溯功能,并动态显示当前游戏的获胜者或下一位玩家。代码中结合了游戏逻辑与用户界面的交互,优化了游戏体验。

修改Game组件中的render方法

render() {
        const history = this.state.history;
        const current = history[history.length - 1];
        const winner = calculateWinner(current.juzi);
        const moves = history.map((step, move) => {
            const said = move ?
                '开始移动' + move : '开始游戏';
            return ( <
                li >
                <
                button onClick = {
                    () => this.eatJuzi(move)
                } > { said } <
                /button>        </li >
            )
        })
        let flag;
        if (flag) {
            flag = '获胜者:' + winner;
        } else {
            flag = '下一个玩家:' + (this.state.juziIsNext ? '大橘子' : '小橘子')
        }
        return ( <
            div className = "game" >
            <
            div className = "game-board" >
            <
            Board juzi = { current.juzi }
            onClick = {
                (i) => {
                    this.juziClick(i)
                }
            }
            / > < /
            div > <
            div className = "game-info" >
            <
            div > { flag } < /div> <
            ol > { moves } < /ol> < /
            div > <
            /div>
        );
    }

在这里插入图片描述
在这里插入图片描述

先完成以上操作

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈工程师MrL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值