javascript - 反应原生井字游戏
问题描述
我是本地人的新手,所以我想做一个井字游戏,但遇到了一些麻烦。
游戏不检查移动中的胜利我必须再按任何按钮 1 次才能在我的屏幕上显示谁是获胜者的结果。所以这是我检查程序中使用的胜利和 Handerl 的功能
function game(){
if(A1 == kriz && B1 == kriz && C1 == kriz){
konecIgreW1();
}else if(A2 == kriz && B2 == kriz && C2 == kriz){
konecIgreW1();
}else if(A3 == kriz && B3 == kriz && C3 == kriz){
konecIgreW1();
}else if(A1 == kriz && A2 == kriz && A3 == kriz){
konecIgreW1();
}else if(B1 == kriz && B2 == kriz && B3 == kriz){
konecIgreW1();
}else if(C1 == kriz && C2 == kriz && C3 == kriz){
konecIgreW1();
}else if(A1 == kriz && B2 == kriz && C3 == kriz){
konecIgreW1();
}else if(C1 == kriz && B2 == kriz && A3 == kriz){
konecIgreW1();
}else if(A1 == krog && B1 == krog && C1 == krog){
konecIgreW2();
}else if(A2 == krog && B2 == krog && C2 == krog){
konecIgreW2();
}else if(A3 == krog && B3 == krog && C3 == krog){
konecIgreW2();
}else if(A1 == krog && A2 == krog && A3 == krog){
konecIgreW2();
}else if(B1 == krog && B2 == krog && B3 == krog){
konecIgreW2();
}else if(C1 == krog && C2 == krog && C3 == krog){
konecIgreW2();
}else if(A1 == krog && B2 == krog && C3 == krog){
konecIgreW2();
}else if(C1 == krog && B2 == krog && A3 == krog){
konecIgreW2();
}
i++;
if(i == 9){
Alert.alert('Draw', 'Unfortunantly its a Draw',[
{
text: 'Finish',
onPress: () => navigation.goBack()
},
{
text: 'One more',
onPress: oneMore3()
},
], {
cancelable: true,
onDismiss: () => console.warm('New Game has started')
}
)
}
}
const setA1Handller = () => {
if(A1 == ''){
if(navrsti == 'kriz'){
setA1(kriz);
navrsti = 'krog';
}else{
setA1(krog);
navrsti = 'kriz';
}
}
game();
}
const setA2Handller = () => {
if(A2 == ''){
if(navrsti == 'kriz'){
setA2(kriz);
navrsti = 'krog';
}else{
setA2(krog);
navrsti = 'kriz';
}
}
game();
}
const setA3Handller = () => {
if(A3 == ''){
if(navrsti == 'kriz'){
setA3(kriz);
navrsti = 'krog';
}else{
setA3(krog);
navrsti = 'kriz';
}
}
game();
}
const setB1Handller = () => {
if(B1 == ''){
if(navrsti == 'kriz'){
setB1(kriz);
navrsti = 'krog';
}else{
setB1(krog);
navrsti = 'kriz';
}
game();
}
}
const setB2Handller = () => {
if(B2 == ''){
if(navrsti == 'kriz'){
setB2(kriz);
navrsti = 'krog';
}else{
setB2(krog);
navrsti = 'kriz';
}
game();
}
}
const setB3Handller = () => {
if(B3 == ''){
if(navrsti == 'kriz'){
setB3(kriz);
navrsti = 'krog';
}else{
setB3(krog);
navrsti = 'kriz';
}
game();
}
}
const setC1Handller = () => {
if(C1 == ''){
if(navrsti == 'kriz'){
setC1(kriz);
navrsti = 'krog';
}else{
setC1(krog);
navrsti = 'kriz';
}
game();
}
}
const setC2Handller = () => {
if(C2 == ''){
if(navrsti == 'kriz'){
setC2(kriz);
navrsti = 'krog';
}else{
setC2(krog);
navrsti = 'kriz';
}
game();
}
}
const setC3Handller = () => {
if(C3 == ''){
if(navrsti == 'kriz'){
setC3(kriz);
navrsti = 'krog';
}else{
setC3(krog);
navrsti = 'kriz';
}
game();
}
return(
<View style={styles.body}>
<Text style={styles.text}>
Player 1: {Player1} {"\n"}
Player 2: {Player2}
</Text>
<Text style={styles.text}>
{Player1score}: {Player2score}
</Text>
<Pressable
onPress={onPressHandler}
style={({pressed}) => ({ backgroundColor: pressed ? '#ddd' : '#0f0'})}
>
<Text style={styles.text}>
Go Back
</Text>
</Pressable>
<View style={styles.container}>
<View style={styles.mcontainer}>
<TouchableOpacity style={styles.box} onPress={setA1Handller}>
<Text style={styles.kk}>
{A1}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.box} onPress={setB1Handller}>
<Text style={styles.kk}>
{B1}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.box} onPress={setC1Handller}>
<Text style={styles.kk}>
{C1}
</Text>
</TouchableOpacity>
</View>
<View style={styles.mcontainer}>
<TouchableOpacity style={styles.box} onPress={setA2Handller}>
<Text style={styles.kk}>
{A2}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.box} onPress={setB2Handller}>
<Text style={styles.kk}>
{B2}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.box} onPress={setC2Handller}>
<Text style={styles.kk}>
{C2}
</Text>
</TouchableOpacity>
</View>
<View style={styles.mcontainer}>
<TouchableOpacity style={styles.box} onPress={setA3Handller}>
<Text style={styles.kk}>
{A3}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.box} onPress={setB3Handller}>
<Text style={styles.kk}>
{B3}
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.box} onPress={setC3Handller}>
<Text style={styles.kk}>
{C3}
</Text>
</TouchableOpacity>
</View>
</View>
</View>
)
解决方案
推荐阅读
- java - Maven 多模块项目不会因编译错误而失败
- mongodb - 使用 mongodb 聚合框架计算数组中的相似项
- reactjs - 将正确的属性传递给弹出通知
- python - 客户与公司的关系
- mysql - 生成组合并确定出现最多的组合
- nativescript - 如何从定义的布局字符串从js设置gridlayout
- javascript - 在 onclick="method" 构造上使用名为 all() 的函数是否有任何限制?
- vue.js - VueJS组件之间如何复用axios调用得到的数据?
- javascript - 如何使链接在悬停状态下跟随光标达到定义的距离?
- ios - 使用 CoreData 保存包含字典的数组