0
点赞
收藏
分享

微信扫一扫

android studio 写剪刀石头布游戏双方都是真人

用Android Studio开发一个双人剪刀石头布游戏

在这篇文章中,我们将探讨如何使用Android Studio开发一个双人模式的剪刀石头布游戏。游戏的核心在于玩家之间的互动,因此我们将重点关注用户界面的设计和游戏逻辑的实现。

游戏概述

剪刀石头布是一项简单但经典的游戏,玩家通过选择剪刀、石头或布来进行对决。游戏规则如下:

  • 剪刀胜布(剪刀切布)
  • 布胜石头(布包石头)
  • 石头胜剪刀(石头砸剪刀)

在双人游戏中,每位玩家将通过界面输入自己的选择,然后系统会决定胜者。

类图设计

我们将使用以下类来实现游戏:

classDiagram
class Player {
+String name
+String choice
+void makeChoice(String choice)
}

class Game {
+Player player1
+Player player2
+String determineWinner()
}

类的解释

  • Player: 表示每一位玩家,包含玩家的名字和选择。
  • Game: 表示游戏本身,包含两个玩家,并有一个方法来决定赢家。

项目结构

在Android Studio中,我们将创建一个新的项目,包含以下结构:

/app
/src
/main
/java
/com.example.rockpaperscissors
Player.java
Game.java
MainActivity.java
/res
/layout
activity_main.xml

布局文件

首先,我们需要定义用户界面。在 res/layout/activity_main.xml 中,我们可以使用以下XML代码创建一个简单的界面:

<LinearLayout xmlns:android=
android:layout_width=match_parent
android:layout_height=match_parent
android:orientation=vertical
android:gravity=center>


<TextView
android:id=@+id/player1_name
android:layout_width=wrap_content
android:layout_height=wrap_content
android:text=Player 1 Name />


<Spinner
android:id=@+id/player1_choice
android:layout_width=wrap_content
android:layout_height=wrap_content
android:entries=@array/choices />


<TextView
android:id=@+id/player2_name
android:layout_width=wrap_content
android:layout_height=wrap_content
android:text=Player 2 Name />


<Spinner
android:id=@+id/player2_choice
android:layout_width=wrap_content
android:layout_height=wrap_content
android:entries=@array/choices />


<Button
android:id=@+id/start_game
android:layout_width=wrap_content
android:layout_height=wrap_content
android:text=Start Game />


<TextView
android:id=@+id/result
android:layout_width=wrap_content
android:layout_height=wrap_content />

</LinearLayout>

同时,我们需要在res/values/strings.xml中添加可选项:

<resources>
<string name=app_name>Rock Paper Scissors</string>
<string-array name=choices>
<item>Rock</item>
<item>Paper</item>
<item>Scissors</item>
</string-array>
</resources>

Player.java

在这个类中,我们将实现玩家的选择功能:

public class Player {
private String name;
private String choice;

public Player(String name) {
this.name = name;
}

public void makeChoice(String choice) {
this.choice = choice;
}

public String getName() {
return name;
}

public String getChoice() {
return choice;
}
}

Game.java

在这个类中,我们将实现赢家的判断逻辑:

public class Game {
private Player player1;
private Player player2;

public Game(Player player1, Player player2) {
this.player1 = player1;
this.player2 = player2;
}

public String determineWinner() {
String choice1 = player1.getChoice();
String choice2 = player2.getChoice();

if (choice1.equals(choice2)) {
return It's a draw!;
} else if ((choice1.equals(Rock) && choice2.equals(Scissors)) ||
(choice1.equals(Scissors) && choice2.equals(Paper)) ||
(choice1.equals(Paper) && choice2.equals(Rock))) {
return player1.getName() + wins!;
} else {
return player2.getName() + wins!;
}
}
}

MainActivity.java

最后,在主活动中,我们将整合所有组件,处理用户的输入并显示结果:

public class MainActivity extends AppCompatActivity {
private EditText player1EditText;
private EditText player2EditText;
private Spinner player1ChoiceSpinner;
private Spinner player2ChoiceSpinner;
private TextView resultTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

player1EditText = findViewById(R.id.player1_name);
player2EditText = findViewById(R.id.player2_name);
player1ChoiceSpinner = findViewById(R.id.player1_choice);
player2ChoiceSpinner = findViewById(R.id.player2_choice);
resultTextView = findViewById(R.id.result);

Button startGameButton = findViewById(R.id.start_game);
startGameButton.setOnClickListener(view -> startGame());
}

private void startGame() {
String player1Name = player1EditText.getText().toString();
String player2Name = player2EditText.getText().toString();
String player1Choice = player1ChoiceSpinner.getSelectedItem().toString();
String player2Choice = player2ChoiceSpinner.getSelectedItem().toString();

Player player1 = new Player(player1Name);
player1.makeChoice(player1Choice);
Player player2 = new Player(player2Name);
player2.makeChoice(player2Choice);

Game game = new Game(player1, player2);
String result = game.determineWinner();
resultTextView.setText(result);
}
}

总结

通过上述步骤,我们成功地创建了一个简单的双人剪刀石头布游戏。玩家可以通过简单的用户界面输入自己的名字以及选择。游戏逻辑在 Game 类中实现,使得游戏的胜负判断简单明了。

希望通过这篇文章,您可以对Android Studio中的游戏开发有更深入的理解。下一步,您可以尝试为游戏添加更多的功能,比如计分界面、更复杂的动画效果,或者网络对战等。这将是一个不断学习和调整的过程,希望您能继续探索并创造出更有趣的项目!

举报

相关推荐

0 条评论