通过对鸿蒙的学习,我通过探索与挑战,做了一个关于石头剪刀布的小游戏
RB软工移211 202119144135陈勃初
一.通过点击按钮进入游戏开始游戏,点击石头,剪刀,布,输入对应的手势 与人机进行对战
二.页面布局,以下为代码
<Image
ohos:height="200vp"
ohos:width="200vp"
ohos:scale_mode="zoom_center"
ohos:layout_alignment="center"
ohos:image_src="$media:enemy"
></Image>
<Image
ohos:top_margin="30vp"
ohos:height="200vp"
ohos:id="$+id:enemy"
ohos:width="200vp"
ohos:scale_mode="zoom_center"
ohos:layout_alignment="center"
ohos:image_src="$media:bu"
></Image>
<DependentLayout
ohos:height="match_content"
ohos:width="match_content"
ohos:margin="20vp"
ohos:layout_alignment="center"
>
<Button
ohos:id="$+id:bu"
ohos:height="40vp"
ohos:width="80vp"
ohos:text="布"
ohos:margin="10vp"
ohos:text_size="27fp"
ohos:background_element="$graphic:capsule_button_element"
></Button>
<Button
ohos:id="$+id:jiandao"
ohos:right_of="$id:bu"
ohos:height="40vp"
ohos:width="80vp"
ohos:background_element="$graphic:capsule_button_element"
ohos:text="剪刀"
ohos:text_size="27fp"
ohos:margin="10vp"
></Button>
<Button
ohos:id="$+id:shitou"
ohos:right_of="$id:jiandao"
ohos:margin="10vp"
ohos:height="40vp"
ohos:width="80vp"
ohos:text="石头"
ohos:text_size="27fp"
ohos:background_element="$graphic:capsule_button_element"
></Button>
</DependentLayout>
<DependentLayout
ohos:height="match_content"
ohos:width="match_content"
ohos:left_margin="145vp">
<Text
ohos:id="$+id:pp"
ohos:height="match_content"
ohos:width="match_content"
ohos:text_size="27fp"
ohos:text="得分:"></Text>
<Text
ohos:id="$+id:defen"
ohos:right_of="$id:pp"
ohos:height="match_content"
ohos:width="match_parent"
ohos:text_size="27fp"
ohos:text="0"></Text>
</DependentLayout>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:shape="rectangle">
<corners
ohos:radius="100"/>
<solid
ohos:color="#007CFD"/>
</shape>
三.以下为核心代码
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:shape="rectangle">
<corners
ohos:radius="100"/>
<solid
ohos:color="#007CFD"/>
</shape>
import com.example.caiquan2.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.Button; import ohos.agp.components.Component; import ohos.agp.components.Image; import ohos.agp.components.Text;
import java.util.Random;
public class MainAbilitySlice extends AbilitySlice { static Button bu; static Button shitou; static Button jiandao; static Text defen; static Image enemy; static Integer core=0; Random random=new Random();
@Override
public void onStart(Intent intent) {
super.onStart(intent);
//给slice 配置xml布局
super.setUIContent(ResourceTable.Layout_mainslice);
initView();
}
public void initView()
{ //通过id搞到相关应用
bu= (Button) findComponentById(ResourceTable.Id_bu);
shitou= (Button) findComponentById(ResourceTable.Id_shitou);
jiandao= (Button) findComponentById(ResourceTable.Id_jiandao);
defen= (Text) findComponentById(ResourceTable.Id_defen);
enemy= (Image) findComponentById(ResourceTable.Id_enemy);
//给石头剪刀布三个按钮绑定单击事件
bu.setClickedListener(this::chuli);
shitou.setClickedListener(this::chuli);
jiandao.setClickedListener(this::chuli);
}
//根据component的不同做出不同处理
private void chuli(Component component)
{ int way;
String name=component.getName();
if(name.equals("Id_shitou"))
way=0;
else if(name.equals("Id_jiandao"))
way=1;
else
way=2;
System.out.println(name+":"+way);
int enemyway=random.nextInt(3);
//0石头 1 剪刀 2 布
System.out.println(enemyway);
if(enemyway==0)
enemy.setPixelMap(ResourceTable.Media_shitou);
else if(enemyway==1)
enemy.setPixelMap(ResourceTable.Media_jiandao);
else
enemy.setPixelMap(ResourceTable.Media_bu);
if(way==0)
{
if(enemyway==1)
core++;
else if(enemyway==2)
core--;
}
else if(way==1)
{
if(enemyway==2)
core++;
else if(enemyway==0)
core--;
}
else
{
if(enemyway==0)
core++;
else if(enemyway==1)
core--;
}
defen.setText(core.toString());
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
四.总结
通过这次作业 我又学到了许多关于鸿蒙的知识,提高了自己