diff --git a/lib/games/tapping_game.dart b/lib/games/tapping_game.dart new file mode 100644 index 00000000..de1a6e59 --- /dev/null +++ b/lib/games/tapping_game.dart @@ -0,0 +1,124 @@ +import 'dart:math'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:maui/util/game_utils.dart'; + +class TappingGame extends StatefulWidget { + const TappingGame({ + key, + this.choice, + this.onGameUpdate, + }) : super(key: key); + final int choice; + final OnGameUpdate onGameUpdate; + + TappingGameState createState() => TappingGameState(); +} + +class TappingGameState extends State { + List intialOffsets = []; + List finalOffsets = []; + List randomOffsets = []; + List widgets = []; + int trackTheClick = 0; + bool initialCalculation = false; + bool clickOnScreenDelay = true; + @override + Widget build(BuildContext context) { + MediaQueryData media = MediaQuery.of(context); + var size = media.size; + var childWidth = size.height / 8; + if (initialCalculation == false) { + var rng = new Random(); + for (int i = 1; i <= 30; i++) { + randomOffsets.add(Offset( + (i ~/ 6) * childWidth, ((5 - 4) / 2 + (i % 6)) * childWidth)); + } + print("lengfht of the offset...${randomOffsets.length}"); + for (int i = 1; i <= 10; i++) { + int min = 1, max = randomOffsets.length - 1; + int randomIndex = min + rng.nextInt(max - min); + print("object..... offsets.....randomIndex...$randomIndex"); + finalOffsets.add(randomOffsets[randomIndex]); + randomOffsets.removeAt(randomIndex); + intialOffsets.add(Offset((i % 2) * size.width, (i % 3) * size.height)); + } + for (int i = 0; i < 10; i++) { + widgets.add(AnimatedPositioned( + duration: Duration.zero, + left: intialOffsets[i].dx, + top: intialOffsets[i].dy, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Container(), + ), + )); + } + } + + return GestureDetector( + onTap: () { + if (trackTheClick < widget.choice && clickOnScreenDelay) { + initialCalculation = true; + setState(() { + clickOnScreenDelay = false; + }); + _buildMovingWidget(); + } + }, + child: Scaffold( + body: Stack( + children: [ + Positioned( + left: size.width / 2, + top: 40.0, + child: Text("clickAnyWhere...${widget.choice}..times")), + widgets.isEmpty + ? Container() + : Stack( + children: widgets, + ) + ], + )), + ); + } + + void _buildMovingWidget() { + setState(() { + setState(() { + intialOffsets.removeAt(trackTheClick); + intialOffsets.insert(trackTheClick, finalOffsets[trackTheClick]); + widgets.removeAt(trackTheClick); + widgets.insert( + trackTheClick, + AnimatedPositioned( + duration: Duration(milliseconds: 1500), + left: intialOffsets[trackTheClick].dx, + top: intialOffsets[trackTheClick].dy, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + height: 100.0, + width: 100.0, + child: Card( + color: Colors.blue, + elevation: 10.0, + child: Center(child: Text("${trackTheClick + 1}..data"))), + ), + ), + )); + if (trackTheClick == widget.choice) { + setState(() { + widget.onGameUpdate(score: 2, max: 2, gameOver: true, star: true); + }); + } + trackTheClick = trackTheClick + 1; + }); + }); + new Future.delayed(const Duration(milliseconds: 1500), () { + setState(() { + clickOnScreenDelay = true; + }); + }); + } +} diff --git a/lib/storyboard.dart b/lib/storyboard.dart index 136491bc..87ef1efe 100644 --- a/lib/storyboard.dart +++ b/lib/storyboard.dart @@ -40,6 +40,7 @@ import 'package:maui/storyboards/games/spin_wheel_game_story.dart'; import 'package:maui/storyboards/games/tables_game_story.dart'; import 'package:maui/storyboards/games/tap_home_story.dart'; import 'package:maui/storyboards/games/tap_wrong_game_story.dart'; +import 'package:maui/storyboards/games/tapping_game_story.dart'; import 'package:maui/storyboards/games/tracing_alphabets_story.dart'; import 'package:maui/storyboards/games/true_false_game_story.dart'; import 'package:maui/storyboards/games/unit_game_story.dart'; @@ -123,6 +124,7 @@ void main() { TablesGameStory(), TapHomeStory(), TapWrongGameStory(), + TappingGameStory(), ThemeMapStory(), TracingAlphabetStory(), TrueFalseGameStory(), diff --git a/lib/storyboards/games/bingo_game_story.dart b/lib/storyboards/games/bingo_game_story.dart index 644cb23d..0b74d740 100644 --- a/lib/storyboards/games/bingo_game_story.dart +++ b/lib/storyboards/games/bingo_game_story.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/bingo_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class BingoGameStory extends FullScreenStory { @@ -9,33 +10,70 @@ class BingoGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: BingoGame( - choices: { - 'A': 'A', - 'B': 'B', - 'C': 'C', - 'D': 'D', - }, - ), - ), - ), - Scaffold( - body: SafeArea( - child: BingoGame( - choices: { - 'A': 'A', - 'B': 'B', - 'C': 'C', - 'D': 'D', - 'E': 'E', - 'F': 'F', - 'G': 'G', - 'H': 'H', - 'I': 'I', - 'J': 'J', - 'K': 'K' + choices: { + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ): DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ): DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ): DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ): DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ), + + // 'A': 'A', + // 'B': 'B', + // 'C': 'C', + // 'D': 'D', }, ), ), ), + // Scaffold( + // body: SafeArea( + // child: BingoGame( + // choices: { + // 'A': 'A', + // 'B': 'B', + // 'C': 'C', + // 'D': 'D', + // 'E': 'E', + // 'F': 'F', + // 'G': 'G', + // 'H': 'H', + // 'I': 'I', + // 'J': 'J', + // 'K': 'K' + // }, + // ), + // ), + // ), ]; } diff --git a/lib/storyboards/games/box_matching_game_story.dart b/lib/storyboards/games/box_matching_game_story.dart index ea7da6b3..d00bae58 100644 --- a/lib/storyboards/games/box_matching_game_story.dart +++ b/lib/storyboards/games/box_matching_game_story.dart @@ -1,6 +1,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:maui/games/box_matching_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class BoxMatchingGameStory extends FullScreenStory { @@ -9,9 +10,83 @@ class BoxMatchingGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: BoxMatchingGame( - choices: BuiltList( - ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B']), - answers: BuiltList(['A', 'B', 'C', 'D']), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + + // 'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B' + ]), + answers: BuiltList([ + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ), + // 'A', 'B', 'C', 'D' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), diff --git a/lib/storyboards/games/fill_in_the_blanks_story.dart b/lib/storyboards/games/fill_in_the_blanks_story.dart index bacb8679..ddeda241 100644 --- a/lib/storyboards/games/fill_in_the_blanks_story.dart +++ b/lib/storyboards/games/fill_in_the_blanks_story.dart @@ -1,6 +1,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:maui/games/fill_in_the_blanks_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; import 'package:tuple/tuple.dart'; @@ -11,8 +12,30 @@ class FillInTheBlanksGameStory extends FullScreenStory { body: SafeArea( child: FillInTheBlanksGame( question: ' Mount Everest is the highest 1_ in the 2_ .', - choices: - BuiltList(['mountain', 'earth', 'chair', 'ball']), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = "mountain" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "earth" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "chair" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "ball" + ..displayType = DisplayTypeEnum.word, + ), + + // 'mountain', 'earth', 'chair', 'ball' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), @@ -22,14 +45,58 @@ class FillInTheBlanksGameStory extends FullScreenStory { child: FillInTheBlanksGame( question: ' The fact is Mount Everest is the highest 1_ in the earth followed by K2,located in the Himalayas.', - choices: BuiltList(['mountain', 'earth', 'chair', 'ball']), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = "mountain" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "earth" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "chair" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "ball" + ..displayType = DisplayTypeEnum.word, + ), + // 'mountain', 'earth', 'chair', 'ball' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ))), Scaffold( body: SafeArea( child: FillInTheBlanksGame( question: 'Lion is the king of the 1_ .', - choices: BuiltList(['jungle', 'earth', 'chair', 'ball']), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = "jungle" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "earth" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "chair" + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = "ball" + ..displayType = DisplayTypeEnum.word, + ), + // 'jungle', 'earth', 'chair', 'ball' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ))) ]; diff --git a/lib/storyboards/games/find_word_game_story.dart b/lib/storyboards/games/find_word_game_story.dart index 1e991c77..589b9642 100644 --- a/lib/storyboards/games/find_word_game_story.dart +++ b/lib/storyboards/games/find_word_game_story.dart @@ -2,6 +2,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/find_word_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class FindWordGameStory extends FullScreenStory { @@ -11,9 +12,78 @@ class FindWordGameStory extends FullScreenStory { body: SafeArea( child: FindWordGame( image: 'assets/accessories/apple.png', - answer: BuiltList(['A', 'P', 'P', 'L', 'E']), - choices: - BuiltList(['A', 'X', 'Y', 'P', 'E', 'B', 'L', 'W']), + answer: BuiltList([ + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'P' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'P' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'L' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'E' + ..displayType = DisplayTypeEnum.letter, + ), + + // 'A', 'P', 'P', 'L', 'E' + ]), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'X' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'Y' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'P' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'E' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'L' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'W' + ..displayType = DisplayTypeEnum.letter, + ), + // 'A', 'X', 'Y', 'P', 'E', 'B', 'L', 'W' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), diff --git a/lib/storyboards/games/jumbled_words_game_story.dart b/lib/storyboards/games/jumbled_words_game_story.dart index 464fe4bc..affff545 100644 --- a/lib/storyboards/games/jumbled_words_game_story.dart +++ b/lib/storyboards/games/jumbled_words_game_story.dart @@ -2,6 +2,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/jumbled_words_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class JumbledWordsGameStory extends FullScreenStory { @@ -10,8 +11,49 @@ class JumbledWordsGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: JumbledWordsGame( - answer: 'A', - choices: BuiltList(['A', 'B', 'C', 'D', 'E', 'F', 'H']), + answer: DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'E' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'F' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'H' + ..displayType = DisplayTypeEnum.letter, + ), + // 'A', 'B', 'C', 'D', 'E', 'F', 'H' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), @@ -19,8 +61,34 @@ class JumbledWordsGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: JumbledWordsGame( - answer: 'A', - choices: BuiltList(['A', 'B', 'C', 'D']), + answer: DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'B' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'C' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'D' + ..displayType = DisplayTypeEnum.letter, + ), + // 'A', 'B', 'C', 'D' + ]), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), diff --git a/lib/storyboards/games/match_the_shape_game_story.dart b/lib/storyboards/games/match_the_shape_game_story.dart index 96534cf7..82d3aea9 100644 --- a/lib/storyboards/games/match_the_shape_game_story.dart +++ b/lib/storyboards/games/match_the_shape_game_story.dart @@ -2,6 +2,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/match_the_shape_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class MatchTheShapeGameStory extends FullScreenStory { @@ -10,8 +11,52 @@ class MatchTheShapeGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: MatchTheShapeGame( - first: BuiltList(['1', '2', '3', '4']), - second: BuiltList(['1', '2', '3', '4']), + first: BuiltList([ + DisplayItem( + (d) => d + ..item = '1' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '2' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '3' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '4' + ..displayType = DisplayTypeEnum.letter, + ), + // '1', '2', '3', '4' + ]), + second: BuiltList([ + DisplayItem( + (d) => d + ..item = '1' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '2' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '3' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '4' + ..displayType = DisplayTypeEnum.letter, + ), + // '1', '2', '3', '4' + ]), ), ), ) diff --git a/lib/storyboards/games/match_with_image_game_story.dart b/lib/storyboards/games/match_with_image_game_story.dart index 16d186a8..705fd151 100644 --- a/lib/storyboards/games/match_with_image_game_story.dart +++ b/lib/storyboards/games/match_with_image_game_story.dart @@ -2,6 +2,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/match_with_image_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class MatchWithImageGameStory extends FullScreenStory { @@ -10,20 +11,52 @@ class MatchWithImageGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: MatchWithImageGame( - images: BuiltList([ - 'assets/accessories/apple.png', - 'assets/accessories/camera.png', - 'assets/accessories/fruit.png' - ]), - choices: BuiltList([ - 'Camera', - 'Fruit', - 'Apple', + // images: BuiltList([ + // 'assets/accessories/apple.png', + // 'assets/accessories/camera.png', + // 'assets/accessories/fruit.png' + // ]), + choices: BuiltList([ + DisplayItem( + (d) => d + ..item = 'Camera' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Fruit' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Apple' + ..displayType = DisplayTypeEnum.word, + ), + + // 'Camera', + // 'Fruit', + // 'Apple', ]), - answers: BuiltList([ - 'Apple', - 'Camera', - 'Fruit', + answers: BuiltList([ + DisplayItem( + (d) => d + ..item = 'Apple' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Camera' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Fruit' + ..displayType = DisplayTypeEnum.word, + ), + + // 'Apple', + // 'Camera', + // 'Fruit', ]), ), ), diff --git a/lib/storyboards/games/memory_game_story.dart b/lib/storyboards/games/memory_game_story.dart index 820e98d8..110ec770 100644 --- a/lib/storyboards/games/memory_game_story.dart +++ b/lib/storyboards/games/memory_game_story.dart @@ -1,6 +1,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:maui/games/memory_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class MemoryGameStory extends FullScreenStory { @@ -9,35 +10,168 @@ class MemoryGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: MemoryGame( - first: BuiltList(['1', '2', '3', '4','5','6','7','8']), - second: BuiltList(['1', '2', '3', '4','5','6','7','8']), - onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, - ), - ), - ), Scaffold( - body: SafeArea( - child: MemoryGame( - first: BuiltList(['1', '2', '3', '4']), - second: BuiltList(['1', '2', '3', '4']), - onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, - ), - ), - ), Scaffold( - body: SafeArea( - child: MemoryGame( - first: BuiltList(['1', '2', '3', '4','5','6']), - second: BuiltList(['1', '2', '3', '4','5','6']), - onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, + first: BuiltList([ + DisplayItem( + (d) => d + ..item = '1' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '2' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '3' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '4' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '5' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '6' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '7' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '8' + ..displayType = DisplayTypeEnum.letter, + ), + + // '1', '2', '3', '4', '5', '6', '7', '8' + ]), + second: BuiltList([ + DisplayItem( + (d) => d + ..item = '1' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '2' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '3' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '4' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '5' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '6' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '7' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '8' + ..displayType = DisplayTypeEnum.letter, + ), + // '1', '2', '3', '4', '5', '6', '7', '8' + ]), + onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), - ),Scaffold( + ), + Scaffold( body: SafeArea( child: MemoryGame( - first: BuiltList(['APPLE','MANGO','GUAVA','PEACH','LICHI','GRAPES',]), - second: BuiltList(['Apple', 'Mange', 'Guava', 'Peach','Lichi','Grapes',]), - onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, + first: BuiltList([ + DisplayItem( + (d) => d + ..item = '1' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '2' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '3' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '4' + ..displayType = DisplayTypeEnum.letter, + ), + + // '1', '2', '3', '4' + ]), + second: BuiltList([ + DisplayItem( + (d) => d + ..item = '1' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '2' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '3' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = '4' + ..displayType = DisplayTypeEnum.letter, + ), + + // '1', '2', '3', '4' + ]), + onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), ), + // Scaffold( + // body: SafeArea( + // child: MemoryGame( + // first: BuiltList(['1', '2', '3', '4','5','6']), + // second: BuiltList(['1', '2', '3', '4','5','6']), + // onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, + // ), + // ), + // ),Scaffold( + // body: SafeArea( + // child: MemoryGame( + // first: BuiltList(['APPLE','MANGO','GUAVA','PEACH','LICHI','GRAPES',]), + // second: BuiltList(['Apple', 'Mange', 'Guava', 'Peach','Lichi','Grapes',]), + // onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, + // ), + // ), + // ), ]; } diff --git a/lib/storyboards/games/moving_text_game_story.dart b/lib/storyboards/games/moving_text_game_story.dart index d58ecc7b..42641356 100644 --- a/lib/storyboards/games/moving_text_game_story.dart +++ b/lib/storyboards/games/moving_text_game_story.dart @@ -19,7 +19,7 @@ class MovingTextGameStory extends FullScreenStory { body: SafeArea( child: MovingTextGame( answers: BuiltList(['क', 'ख', 'ग', 'घ', 'ङ']), - choices: BuiltList(['क', 'ख', 'ग', 'घ' ,'ङ', 'च', 'छ']), + choices: BuiltList(['क', 'ख', 'ग', 'घ', 'ङ', 'च', 'छ']), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), diff --git a/lib/storyboards/games/multiple_choice_game_story.dart b/lib/storyboards/games/multiple_choice_game_story.dart index afecb953..c95255df 100644 --- a/lib/storyboards/games/multiple_choice_game_story.dart +++ b/lib/storyboards/games/multiple_choice_game_story.dart @@ -1,6 +1,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:maui/games/multiple_choice_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class MultipleChoiceGameStory extends FullScreenStory { @@ -10,11 +11,36 @@ class MultipleChoiceGameStory extends FullScreenStory { body: SafeArea( child: MultipleChoiceGame( key: Key('MultipleChoiceGame'), - question: 'The largest land animal is _________________?', - answers: BuiltList([ - 'African Bush Elephant', + question: DisplayItem( + (d) => d + ..item = 'The largest land animal is _________________?' + ..displayType = DisplayTypeEnum.sentence, + ), + // 'The largest land animal is _________________?', + answers: BuiltList([ + DisplayItem( + (d) => d + ..item = 'African Bush Elephant' + ..displayType = DisplayTypeEnum.sentence, + ), + // 'African Bush Elephant', + ]), + choices: BuiltList([ + DisplayItem((d) => d + ..item = 'Lion' + ..displayType = DisplayTypeEnum.word), + DisplayItem( + (d) => d + ..item = 'Whale' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Panther' + ..displayType = DisplayTypeEnum.word, + ), + // 'Lion', 'Whale', 'Panther' ]), - choices: BuiltList(['Lion', 'Whale', 'Panther']), onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, ), ), diff --git a/lib/storyboards/games/rhyme_words_game_story.dart b/lib/storyboards/games/rhyme_words_game_story.dart index 7441b6d4..669f7bca 100644 --- a/lib/storyboards/games/rhyme_words_game_story.dart +++ b/lib/storyboards/games/rhyme_words_game_story.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/finger_game.dart'; import 'package:maui/games/rhyme_words_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class RhymeWordsGameStory extends FullScreenStory { @@ -11,17 +12,57 @@ class RhymeWordsGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: RhymeWordsGame( - questions: BuiltList([ - 'Pin', - 'Pet', - 'Me', - 'Bee', + questions: BuiltList([ + DisplayItem( + (d) => d + ..item = 'Pin' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Pet' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Me' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Bee' + ..displayType = DisplayTypeEnum.word, + ), + // 'Pin', + // 'Pet', + // 'Me', + // 'Bee', ]), - answers: BuiltList([ - 'Win', - 'Wet', - 'We', - 'See', + answers: BuiltList([ + DisplayItem( + (d) => d + ..item = 'Win' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'Wet' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'We' + ..displayType = DisplayTypeEnum.word, + ), + DisplayItem( + (d) => d + ..item = 'See' + ..displayType = DisplayTypeEnum.word, + ), + // 'Win', + // 'Wet', + // 'We', + // 'See', ]), ), ), diff --git a/lib/storyboards/games/sequence_alphabet_game_story.dart b/lib/storyboards/games/sequence_alphabet_game_story.dart index 04281f40..48ce640c 100644 --- a/lib/storyboards/games/sequence_alphabet_game_story.dart +++ b/lib/storyboards/games/sequence_alphabet_game_story.dart @@ -2,6 +2,7 @@ import 'package:built_collection/built_collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/sequence_alphabet_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class SequenceAlphabetGameStory extends FullScreenStory { @@ -10,7 +11,34 @@ class SequenceAlphabetGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: SequenceAlphabetGame( - answers: BuiltList(['A', 'P', 'P', 'L', 'E']), + answers: BuiltList([ + // 'A', 'P', 'P', 'L', 'E' + DisplayItem( + (d) => d + ..item = 'A' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'p' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'P' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'L' + ..displayType = DisplayTypeEnum.letter, + ), + DisplayItem( + (d) => d + ..item = 'E' + ..displayType = DisplayTypeEnum.letter, + ), + ]), ), ), ), diff --git a/lib/storyboards/games/tapping_game_story.dart b/lib/storyboards/games/tapping_game_story.dart new file mode 100644 index 00000000..f52cf761 --- /dev/null +++ b/lib/storyboards/games/tapping_game_story.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:maui/games/tapping_game.dart'; +import 'package:storyboard/storyboard.dart'; + +class TappingGameStory extends FullScreenStory { + @override + List get storyContent => [ + Scaffold( + body: SafeArea( + child: TappingGame( + choice: 8, + onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, + ), + ), + ), + Scaffold( + body: SafeArea( + child: TappingGame( + choice: 5, + onGameUpdate: ({int score, int max, bool gameOver, bool star}) {}, + ), + ), + ), + ]; +} diff --git a/lib/storyboards/games/true_false_game_story.dart b/lib/storyboards/games/true_false_game_story.dart index 81356333..11e08fc5 100644 --- a/lib/storyboards/games/true_false_game_story.dart +++ b/lib/storyboards/games/true_false_game_story.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:maui/games/finger_game.dart'; import 'package:maui/games/true_false_game.dart'; +import 'package:maui/models/display_item.dart'; import 'package:storyboard/storyboard.dart'; class TrueFalseGameStory extends FullScreenStory { @@ -10,8 +11,16 @@ class TrueFalseGameStory extends FullScreenStory { Scaffold( body: SafeArea( child: TrueFalseGame( - question: 'Pin', - answer: 'Win', + question: DisplayItem( + (d) => d + ..item = 'Pin' + ..displayType = DisplayTypeEnum.word, + ), + answer: DisplayItem( + (d) => d + ..item = 'win' + ..displayType = DisplayTypeEnum.word, + ), right_or_wrong: false, ), ), diff --git a/lib/widgets/display_item_widget.dart b/lib/widgets/display_item_widget.dart index ce279f8b..533d264e 100644 --- a/lib/widgets/display_item_widget.dart +++ b/lib/widgets/display_item_widget.dart @@ -40,8 +40,16 @@ class DisplayItemWidget extends StatelessWidget { case DisplayTypeEnum.syllable: break; case DisplayTypeEnum.word: + return AutoSizeText( + displayItem.item, + style: TextStyle(fontSize: 200), + ); break; case DisplayTypeEnum.sentence: + return AutoSizeText( + displayItem.item, + style: TextStyle(fontSize: 200), + ); break; } return Container();